Δημιουργήστε μια κλάση που ονομάζεται TicTacToeGame . Εάν χρησιμοποιείτε ένα περιβάλλον ανάπτυξης Java , όπως Netbeans , θα υπάρχει μια επιλογή στο μενού Αρχείο για αυτό . Διαφορετικά , απλά δημιουργήστε ένα αρχείο κειμένου και ονομάστε το 2
Επικολλήστε τον παρακάτω κώδικα μέσα στο αρχείο " TicTacToeGame.java . " :
Java.awt.GridLayout εισαγωγής ? Java εισαγωγής . awt.event.ActionEvent ? java.awt.event.ActionListener εισαγωγής ? java.util.ArrayList εισαγωγής ? javax.swing.JButton εισαγωγής ? javax.swing.JFrame εισαγωγής ? javax.swing.JOptionPane εισαγωγής ?
δημόσιο κατηγορία TicTacToeGame επεκτείνει JFrame υλοποιεί ActionListener {
ArrayList String παίκτης = " X " ? δημόσια TicTacToeGame ( ) { } public void checkWinner ( ) { } δημόσια άκυρη actionPerformed ( ActionEvent ε) { } δημόσια στατική άκυρη κύρια ( String [ ] args ) { νέα TicTacToeGame ( ) ? } } Φτιάξτε τον κατασκευαστή . Αυτή είναι η μέθοδος με το ίδιο όνομα όπως και η ίδια η τάξη, σε αυτή την περίπτωση , " TicTacToeGame (). " Καλείται ο κατασκευαστής , επειδή χρησιμοποιείται για την κατασκευή του προγράμματος και να το προετοιμάσει για να τρέξει . Επικολλήστε τον παρακάτω κώδικα για να χτίσει : δημόσια TicTacToeGame ( ) { //στήσετε ένα window.super JFrame ( ) ? //Χρησιμοποιήστε μια διάταξη πλέγματος , με τρεις στήλες και τρεις γραμμές , δεδομένου ότι αυτό είναι TicTacToe , this.setLayout ( νέα GridLayout ( 3,3 ) ) ? //Γεμίστε κάθε χώρο στο πλέγμα με ένα button.for ( int x = 0 ? x <9 ? x + + ) { JButton temp = νέα JButton ( " - " ) ? squares.add ( temp ) ? temp.addActionListener ( αυτή)? this.add ( temp ) ? } //Αλλαγή μεγέθους του παραθύρου για να κάνει τα πάντα σε φόρμα , //και να κάνει το περιβάλλον εργασίας χρήστη Φτηνές 4 Δημιουργήστε τη μέθοδο " actionPerformed " . Αυτή η μέθοδος καλείται όταν ο χρήστης κάνει κάτι μέσα από την εφαρμογή σας . Σας παρέχει με ένα " ActionEvent " αντικείμενο , και μπορείτε να επιθεωρήσει αυτό το αντικείμενο για να μάθετε τι έκανε ο χρήστης , και να αντιδράσουν ανάλογα . Επικολλήστε αυτόν τον κώδικα : public void actionPerformed ( ActionEvent ε) { //Για όλα τα κουμπιά στην grid.for παιχνίδι ( JButton πλατεία : τετράγωνα) { //Εάν το κουμπί πατηθεί ήταν η πηγή της εκδήλωσης . εάν ( square.equals ( e.getSource ( ) ) ) { //Ρυθμίστε το κουμπί στην επιστολή του παίκτη , Χ ή O.square.setText ( παίκτης) ? //Αλλαγή για τη σειρά του επόμενου παίκτη . εάν ( player.equals ( "Χ" ) ) παίκτης = " O " ? αλλιώς παίκτης = " X " ? } } //Ελέγξτε για να δείτε αν κάποιος έχει won.checkWinner ( ) ? } Δημιουργήστε τη μέθοδο " checkWinner " με την επικόλληση τον παρακάτω κωδικό : public void checkWinner ( ) { //Πάρτε τα περιεχόμενα του board.String [ ] του σκάφους = new String [ 9] ? //Ορίστε το νικητή στο κενό διάστημα , " - . " νικητής String = " - " ? για ( int x = 0 ? x <9 ? x + + ) { board [ x ] = squares.get ( x ) gettext ( ) ? System.out.println ( x + . " : " + board [ x ] ) ? } //Ελέγξτε εάν η κορυφαία σειρά είναι γεμάτη από την ίδια επιστολή //Αν είναι , τότε αυτός ο παίκτης έχει won.if ( board [ 0 ] ισούται με ( board [ 1 ]). && . . board [ 0 ] ισούται με ( σκάφους [ 2 ] ) ) { νικητής = board [ 0 ] ? } else //Μέσης Rowif ( . διοικητικό συμβούλιο [ 3 ] ισούται με ( board [ 4 ] ) && board [ 3 ] ισούται με ( διοικητικού συμβουλίου [ . ,". board [ 0 ] isoútai me ( skáfous [ 2 ] ) ) { niki̱tí̱s = board [ 0 ] ?̱ } else //Mési̱s Rowif ( . dioiki̱tikó symvoúlio [ 3 ] isoútai me ( board [ 4 ] ) && board [ 3 ] isoútai me ( dioiki̱tikoú symvoulíou [ . 5 ] ) ) { = νικητής του σκάφους [ 3 ] ? } . . αλλού //Κάτω rowif ( board [ 6 ] ισούται με ( board [ 7 ] ) && board [ 6 ] ισούται με ( board [ 8 ] ) ) { = νικητής του σκάφους [ ,"5 ] ) ) { = niki̱tí̱s tou skáfous [ 3 ] ?̱ } . . alloú //Káto̱ rowif ( board [ 6 ] isoútai me ( board [ 7 ] ) && board [ 6 ] isoútai me ( board [ 8 ] ) ) { = niki̱tí̱s tou skáfous [ 6 ] ? } else //Αριστερά columnif ( . . board [ 0 ] ισούται με ( διοικητικού συμβουλίου [ 3 ] ) && board [ 0 ] ισούται με ( διοικητικού συμβουλίου [ 6 ] ) ) { νικητής = board [ 0 ] ? } else //Μέση columnif ( . διοικητικό συμβούλιο [ 1 ] ισούται με ( board [ 4 ] ) && board [ 1 ] ισούται με ( board [ 7 ] ) . ) { = νικητής του σκάφους [ 1 ] ? } . αλλού //Δεξί columnif (πίνακας [ 2 ] ισούται με ( διοικητικού συμβουλίου . [ 5 ] ) && board [ 6 ] ισούται με ( board [ 8 ] ) ) { = νικητής του σκάφους [ 2 ] ? } . αλλού //Top - Αριστερά, Μέση , Κάτω δεξιά Diagonalif ( board [ 0 ] ισούται με ( συμβούλιο [ 4 ] ) && board [ 0 ] ισούται με ( board [ 8 ] ) ) { νικητής = board [ 0 ] ? } . . αλλού //Top - Δεξιά , Μέσης , Κάτω Αριστερά Diagonalif ( board [ 2 ] ισούται με ( board [ 4 ] ) && σκάφους [ 2 ] ισούται με ( διοικητικού συμβουλίου [ 6 ] ) ) { = νικητής του σκάφους [ 2 ] ? } . //Αν ο νικητής δεν είναι το κενό διάστημα " - " //τότε κάποιος έχει κερδίσει . ( ! Winner.equals ( " - " ) ) να τους συγχαρούμε //και στο τέλος της game.if { JOptionPane.showMessageDialog ( rootPane , " Ο νικητής είναι " + νικητή ) ? System.exit ( 0 ) ? } }
εικόνων 3
5
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα