Archer Inc
New member
Java
המשחק הבא אמור להיות גרסא שלדית ביותר של איקס-עיגול. הבעיה? הכפתורים לא משנים את שמם בלחיצה, כאילו לא הגדרתי תגובה לפעולה. מה עושים? (לגבי הפונקציה Game(), אני יודע שצריך להוציא את מקרה הכפתור הריק מחוץ לתחום, אז נא לא להעיר על זה).
המשחק הבא אמור להיות גרסא שלדית ביותר של איקס-עיגול. הבעיה? הכפתורים לא משנים את שמם בלחיצה, כאילו לא הגדרתי תגובה לפעולה. מה עושים? (לגבי הפונקציה Game(), אני יודע שצריך להוציא את מקרה הכפתור הריק מחוץ לתחום, אז נא לא להעיר על זה).
import java.awt.*; import java.io.*; import java.awt.event.*; public class XOgame extends Frame implements ActionListener { Button b1=new Button(" "); Button b2=new Button(" "); Button b3=new Button(" "); Button b4=new Button(" "); Button b5=new Button(" "); Button b6=new Button(" "); Button b7=new Button(" "); Button b8=new Button(" "); Button b9=new Button(" "); Button[][] matriza=new Button[3][3]; boolean win=false; boolean turn=true; public boolean Game() { String name=matriza[0][0].getName(); boolean row=false, line=false; for(int k=0; k<3;k++) for(int j=0; j<3;j++) { if (matriza[k][j].getName()!=name) line=true; if ((j==2)&&(!line)) { win=true; } if (matriza[j][k].getName()!=name) row=true; if ((j==2)&&(!row)) { win=true; } if ((row)&&(line)) j=3; } if((matriza[0][0].getName()==matriza[1][1].getName())&&(matriza[0][0].getName()==matriza[2][2].getName())) win=true; if((matriza[0][2].getName()==matriza[1][1].getName())&&(matriza[0][2].getName()==matriza[2][0].getName())) win=true; return(win); } public void actionPerformed(ActionEvent event) { Button button=(Button) event.getSource(); if (turn) { button.setName("X"); turn=false; } else { button.setName("Y"); turn=true; } if(Game()) System.out.println("OWNED") ; } public XOgame(String caption) { super(caption); setLayout(new GridLayout(0,3)); add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); matriza[0][0]=b1; matriza[0][1]=b2; matriza[0][2]=b3; matriza[1][0]=b4; matriza[1][1]=b5; matriza[1][2]=b6; matriza[2][0]=b7; matriza[2][1]=b8; matriza[2][2]=b9; pack(); setVisible(true); } public static void main(String[] args) { XOgame xo=new XOgame("XO"); } }