( ) ;
String spelare = " X " ,
offentlig TicTacToeGame ( ) { }
public void checkWinner ( ) { }
public void actionPerformed ( ActionEvent e ) { }
public static void main ( String [] args ) {new TicTacToeGame ( ) ; } } Addera 3
Bygg konstruktorn . Detta är den metod med samma namn som klassen själv , i detta fall , " TicTacToeGame ( ) . " Det kallas konstruktören , eftersom det används för att bygga upp programmet och förbereda det kan drivas . Klistra in följande kod för att bygga det :
offentlig TicTacToeGame ( ) { //Setup en JFrame window.super ( ) ;
//Använd ett rutnät layout med tre kolumner och tre rader , eftersom detta är TicTacToe , this.setLayout ( ny GridLayout ( 3,3 ) ) ;
//Fyll varje utrymme på nätet med en button.for ( int x = 0 , x < 9 , x + + ) { JButton temp = new Button ( " - " ) ; squares.add ( temp ) ; temp.addActionListener ( this); this.add ( temp ) ;}
//ändra storlek på fönstret för att göra allting , //och göra användargränssnittet
4
Skapa " actionPerformed "-metoden. Denna metod kallas när användaren gör något i din ansökan . Det ger dig en " ActionEvent " objekt , och du kan inspektera det här objektet för att ta reda på vad användaren gjorde , och agera därefter . Klistra in denna kod :
public void actionPerformed ( ActionEvent e ) { //För alla knappar i spelet grid.for ( JButton square : kvadrater ) { //Om knappen klickas var källan till händelsen . om ( square.equals ( e.getSource ( ) ) ) { //Ställ in knappen på spelarens brev , X eller O.square.setText ( spelare ) ,
//Byt till nästa spelares tur . om ( player.equals ( " X " ) ) spelare = " O " , annars spelare = " X " ; }
}
//Kontrollera om någon har won.checkWinner ( ) ;
}
5
Skapa " checkWinner " metoden genom att klistra in följande kod :
public void checkWinner ( ) {
//Hämta innehållet i board.String [ ] board = new String [ 9 ] ,
//Ställ vinnaren till det tomma utrymmet , - String vinnare = " - " " . " ;
for (int x = 0 , x < 9 , x + +) { board [ x ] = squares.get (x) gettext (); System.out.println ( x + . ":" + kartong [ x ] ) ; }
//Kontrollera om översta raden är full av samma bokstav //Om det är så att spelaren har won.if ( board [ 0 ] lika med ( board [ 1]. ) && . . board [ 0 ] lika med ( kartong [ 2 ] ) ) { vinnare = kartong [ 0 ] ;} . annars //Middle Rowif ( . board [ 3 ] är lika med ( kartong [ 4 ] ) && board [ 3 ] är lika med ( kartong [ ,"5 ] ) ) { vinnare = kartong [ 3 ] ;} . . annars //Bottom rowif ( board [ 6 ] är lika med ( kartong [ 7 ] ) && board [ 6 ] är lika med ( kartong [ 8 ] ) ) { vinnare = kartong [ ,"6 ] ; } else //Vänster columnif ( . . board [ 0 ] lika med ( kartong [ 3 ]) && board [ 0 ] lika med ( kartong [ 6 ] ) ) { vinnare = kartong [ 0 ] ; } else //Middle columnif ( . . board [ 1 ] är lika med ( kartong [ 4 ] ) && board [ 1 ] är lika med ( kartong [ 7 ] ) ) { vinnare = kartong [ 1 ] ;} . annars //Höger columnif ( board [ 2 ] är lika med ( board . [ 5 ] ) && board [ 6 ] är lika med ( kartong [ 8 ] ) ) { vinnare = kartong [ 2 ] ;} . annars //Top - Vänster, Mitten Botten höger Diagonalif ( board [ 0 ] lika med ( kartong [ 4 . ]) && board [ 0 ] lika med ( kartong [ 8 ] ) ) { vinnare = kartong [ 0 ] ;} . annars //Top -höger , mitten , nere till vänster Diagonalif ( board [ 2 ] är lika med ( kartong [ 4 ] ) . && board [ 2 ] är lika med ( kartong [ 6 ] ) ) { vinnare = kartong [ 2 ] ; }
//Om vinnaren inte är det tomma utrymmet " - , " //då någon har vunnit . Gratulera dem //och avsluta game.if ( winner.equals ( " - " ) ) { JOptionPane.showMessageDialog ( rootPane , " Vinnaren är " + vinnaren ) , System.exit ( 0 ) ;} }
Addera