();
String spiller = " X ";
offentlig TicTacToeGame ( ) { }
public void checkWinner ( ) { }
public void ( ActionEvent e ) { }
public static void main ( String [] args ) { new TicTacToeGame ( ) ; } }
3
Bygg konstruktøren . Dette er den fremgangsmåte med samme navn som den klasse selv, i dette tilfellet " TicTacToeGame ( ) ". Det kalles konstruktøren , fordi den brukes til å bygge programmet og forberede det som skal kjøres. Lim inn følgende kode for å bygge det : en
offentlig TicTacToeGame ( ) { //Setup en JFrame window.super ();
//Bruk en grid layout, med tre kolonner og tre rader , siden dette er TicTacToe , this.setLayout ( ny GridLayout (3,3 ));
//Fyll hver plass på rutenettet med en button.for ( int x = 0 ; x < 9 , x + + ) { JButton temp = new JButton ( "- "); squares.add ( temp) ; temp.addActionListener (denne) ; this.add ( temp) ;}
//Endre størrelsen på vinduet for å gjøre alt passform, //og gjøre brukergrensesnittet
4
Opprett " actionPerformed " metoden. Denne metoden kalles når brukeren gjør noe i programmet. Det gir deg en " ActionEvent " objektet , og du kan inspisere dette objektet for å finne ut hva brukeren gjorde, og reagere deretter . Lim inn denne koden : en
public void ( ActionEvent e ) { //For alle knappene i spillet grid.for ( JButton firkant : firkanter) { //Hvis knappen klikket var kilden til hendelsen . if ( square.equals ( e.getSource ( ) ) ) { //Sett knappen til spillerens brev , X eller O.square.setText ( spiller) ;
//Endre til neste spillers tur . if ( player.equals ( "X" ) ) spiller = " O" , ellers spiller = " X "; }
}
//Sjekk for å se om noen har won.checkWinner ();
}
5
Lag " checkWinner "-metoden ved å lime inn følgende kode :
public void checkWinner ( ) {
//Get innholdet i board.String [ ] board = new String [ 9 ];
//Sett vinneren til den tomme plassen , - String vinneren = "-" " . ";
for ( int x = 0 ; x < 9 , x + + ) { board [ x ] = squares.get ( x ) gettext (); System.out.println ( x + . ":" + board [ x ] ) ; }
//Sjekk om den øverste raden er full av det samme brevet //Hvis det er, så denne spilleren har won.if (styret [ 0 ] lik ( styret [ 1 ] .) && . . styret [ 0 ] er lik (styret [ 2 ] ) ) { vinneren = styret [ 0 ]; } . else //Midt Rowif ( . styret [ 3 ] er lik (styret [ 4 ] ) && styret [ 3 ] er lik (styret [ ,"5 ] ) ) { vinneren = styret [ 3 ]; } . . else //bunn rowif (styret [ 6 ] er lik (styret [ 7 ] ) && styret [ 6 ] er lik (styret [ 8 ] ) ) { vinneren = styret [ ,"6 ]; } else //Venstre columnif ( . . styret [ 0 ] er lik (styret [ 3 ] ) && styret [ 0 ] er lik (styret [ 6 ] ) ) { vinneren = styret [ 0 ]; } else //Midt columnif ( . . styret [ 1 ] er lik (styret [ 4 ] ) && styret [ 1 ] er lik (styret [ 7 ] ) ) { vinneren = styret [ 1 ]; } . else //Høyre columnif (styret [ 2 ] er lik (styret . [ 5] ) && styret [ 6 ] er lik (styret [ 8 ] ) ) { vinneren = styret [ 2 ]; } . else //Høyt Venstre, Midten Nederst til høyre Diagonalif (styret [ 0 ] er lik (styret [ 4 . ] ) && styret [ 0 ] er lik (styret [ 8 ] ) ) { vinneren = styret [ 0 ]; } . else //Høyt Høyre , Middle , nederst til venstre Diagonalif (styret [ 2 ] er lik (styret [ 4 ] ) . && styret [ 2 ] er lik (styret [ 6 ] ) ) { vinneren = styret [ 2 ]; }
//Hvis vinneren ikke er mellomrom "- ", //så noen har vunnet . Gratulere dem //og avslutte game.if ( winner.equals ( "-" ) ! ) { JOptionPane.showMessageDialog ( rootPane , "The winner is " + vinner) ; System.exit ( 0 ) ;} }