Ce petit jeu est la conception de cours Java de ma sœur et moi, et c'est aussi le premier projet Java que j'ai réalisé. Il convient aux débutants. J'espère que cela peut aider les enfants qui sont troublés par la conception de cours Java ~~~
1. Le jeu doit être mis en œuvre
1. Concevez le cadre principal et l'interface.
2. Utilisez l'interface ActionListener pour réaliser la surveillance des événements boutonnés.
3. Redémarrez la mise en œuvre de la fonction.
4. Implémentation de la fonction d'échecs.
5. Implémentation de la fonction de sortie.
6. Définition des points d'échecs dans les échecs.
7. Utilisez l'interface MouseListener pour implémenter la surveillance des événements et implémenter toutes les méthodes de l'interface.
8. Lorsque la souris se déplace vers le point d'intersection sur la planche et qu'il n'y a pas de pièces d'échecs sur le point, elle peut devenir une petite forme de main.
9. Lorsque vous cliquez sur l'échecteur, utilisez l'instruction IF pour déterminer si le point est à l'intersection et utilisez l'instruction foreach et getX () et gety () dans la classe d'échecs pour traverser la position de chaque pièce d'échecs pour déterminer si le point a des pièces d'échecs.
10. Lorsqu'il est déterminé que vous pouvez mettre un sous-marin au point cliqué, lors du dessin d'une pièce, utilisez la boucle pour traverser chaque point existant et utilisez le setColor de la classe graphique pour définir la couleur, et utilisez la méthode de remplissage de la classe graphique pour définir la taille de la forme.
11. Lorsque vous dessinez la pièce d'échecs, vous devez juger le gagnant et perdre dans le temps. Utilisez l'index et pour la boucle pour parcourir les directions de la dernière pièce d'échecs. S'il y a des pièces d'échecs sur la même ligne droite avec un certain nombre de pièces d'échecs supérieures ou égales à cinq, c'est celle représentée par la pièce d'échecs actuelle.
12. Lorsque le gagnant est décidé, les informations correspondantes peuvent être apparues.
2. Implémentation du code fonctionnel
2.1 Entrez dans le jeu
public static void main (String [] args) {startChessjframe f = new StartChessJFrame (); // Créer le cadre principal f.setVisible (true); // montre la trame principale}2.2 Initialisation, définissez certaines quantités à utiliser.
Échecteur d'échecs privé (// Panneau de combat Barre d'outils du panneau privé; // Panneau de barre d'outils Bouton privé StartButton; // Définir le bouton de démarrage Bouton privé Backbutton; // Réglez le bouton de regret Bouton privé Exitbutton; // Réglez le bouton de sortie
2.3 Méthode de construction d'interface (Framework de jeu)
public startChessJFrame () {Settitle ("Standalone GoJi"); // Définit le titre d'échecs de l'échecs = new échasse (); // initialiser l'objet du panneau, créer et ajouter le menu MyItemListener Lis = new MyItemListener (); // Initialize the Button Event Average Class Internal Class Button Butter = New Panel (); // instance Toolar Bar startButton = newart "); Backbutton = nouveau bouton ("Répondre"); eXitButton = new Button ("Exit"); // Initialize Toolbar.SetLayout (new FlowLayout (FlowLayout.Left)); // Utilisez FlowLayout to Layout Toolbar.Add (Backbutton); Toolbar.Add (startButton); Toolbar.Add (EXITBUTTON); // Ajouter trois boutons au panneau d'outils startButton.addactionListener (LIS); Backbutton.AddactionListener (LIS); exitbutton.addactionListener (lis); // Enregistrez les trois événements de bouton pour écouter l'événement ADD (barre d'outils, borderlayout.south); // mise en place du panneau d'outils au sud de l'interface, c'est-à-dire, ajouter (Chessboard);2.4 Implémentation et surveillance des bouton (méthode de construction interne)
MyItemListener Lis = new MyItemListener (); // Initialisez la classe interne de la barre d'outils de l'écouteur des événements de bouton = new Panel (); // Instancier la barre d'outils startButton = new Button ("redémarrer"); Backbutton = nouveau bouton ("Répondre"); eXitButton = new Button ("exit"); // initialize toolbar.setLayout (new FlowLayout (FlowLayout.Left)); // Layout the Toolbar.Add (Backbutton); Toolbar.Add (startButton); Toolbar.Add (EXITBUTTON); // Ajouter trois boutons au panneau d'outils startButton.addactionListener (LIS); Backbutton.AddactionListener (LIS); exitbutton.addactionListener (LIS); // Enregistrez les trois événements de bouton pour écouter les événements2.5 Écoute des événements de bouton
classe privée MyItemListener implémente ActionListener {public void ActionPerformed (ActionEvent e) {objet obj = e.getsource (); // Obtenez la source de l'événement if (obj == startButton) {System.out.println ("start ..."); // re-redémarrer // jfiveframe.tthis classe inner références la classe externe Chasseboard Chassboard.Restartame (); } else if (obj == exitButton) {System.exit (0); // terminer l'application} else if (obj == backbutton) {System.out.println ("repentez l'échec ..."); // repentir Chessboard.goback (); }}}2.6 Redémarrer la fonction de la fonction du bouton
public void restartGame () {// Clear Chess Pièces pour (int i = 0; i <ChessList.length; i ++) ChessList [i] = null; / * Restaurer les valeurs de variables liées au jeu * / isback = true; gameover = false; // si le jeu se termine ChessCount = 0; // Le nombre de pièces d'échecs sur la carte actuelle est repeint (); }2.7 Implémentation de la fonction du bouton d'échecs
public void goback () {if (ChessCount == 0) return; ChessList [ChessCount-1] = null; ChessCount--; if (ChessCount> 0) {xIndex = ChessList [ChessCount-1] .getX (); yindex = ChessList [ChessCount-1] .gety (); } isback =! isback; repeindre(); }2.8 Lorsque l'échecteur devient plus grand ou plus petit au besoin, la fenêtre doit changer en conséquence.
// Dimension: à l'intérieur de la classe d'échecs rectangulaire Dimension publique getPreferRedSize () {return new dimension (margin * 2 + grid_span * cols, margin * 2 + grid_span * lignes); } pack (); // Taille adaptative à l'intérieur de la classe StartChessboard2.9 Définition des pièces d'échecs
import java.awt. *; Point de classe publique {private int x; // x Valeur d'index de la pièce d'échecs dans la carte d'échecs private int y; // y valeur d'index de la pièce d'échecs dans la couleur privée de la carte d'échecs; // Couleur publique static int diamètre = 30; // Diamètre Point public (int x, int y, couleur couleur) {this.x = x; this.y = y; this.color = couleur; } // Get x Index Valeur de la pièce d'échecs dans la planche d'échecs public int getX () {return x; } // Obtenez la valeur d'index Y de la pièce d'échecs dans la planche d'échecs public int gety () {return y; } // Obtenez la couleur de la pièce d'échecs Couleur publique Couleur GetColor () {return Color; }} 3. Implémentation de code de pièce fonctionnelle
3.1 Initialisation, définissez certaines quantités à utiliser.
margin d'int statique publique = 30; // mariage public static int grid_span = 35; // espacement grid public static int static rows = 18; // nombre de lignes d'échecs publics statics static = 18; // nombre de colonnes d'échecs [] de l'échec de l'échecl = nouveau point [(lignes + 1) * (cols + 1)]; // initialiser le noir élément vers le bœuf à nulr bœuf = cols + 1)]; Échecs premier gameover = false; // le jeu se termine int à l'échelleur; // le nombre de pièces d'échec
3.2 Construction de la méthode de l'objet d'échecs
public Chessboard () {SetBackground (Color.light_Gray); // Définissez la couleur d'arrière-plan sur Gray AddMouseListener (this); // Ajouter l'événement AddMousmotionListener (New MousemotionListener () {// Anonymous Internal class @Override public Void Mousemove x1 = (e.getx () - margin + grid_span / 2) / grid_span; if (x1 <0 || x1> lignes || y1 <0 || y1> cols || gameover || findchess (x1, y1)) {// Le jeu a terminé et ne peut pas être abandonné; forme} else {setCursor (nouveau curseur (cursor.hand_cursor)); // défini sur la forme de la main}} @Override public void MouseDragged (MouseEvent e) {}}); }3.3 Configurez l'écouteur de la souris et rendez la main plus petite (à l'intérieur de la méthode de construction)
AddMousmotionListener (new MousMotionListener () {// Classe interne anonyme @Override public void MouseMoved (Mouseevent E) {int x1 = (e.getx () - margin + grid_span / 2) / grid_span; int y1 = (e.gety () - margin + grid_span / 2) / grid_span; Cliquez sur un index de grille if (x1 <0 || x1> lignes || y1 <0 || y1> cols || gameover || findchess (x1, y1)) {// Le jeu a terminé et ne peut pas être déposé; Cursor (cursor.default_cursor)); // défini sur la forme par défaut} else {setCursor (nouveau curseur (cursor.hand_cursor)); // défini sur la forme de la main}} @Override public void mouseDragged (MouseEvent e) {}});3.4 Événement d'appui de la souris lorsque vous cliquez sur l'échec
public void Mousprimé (Mouseevent E) {// if (gameover) est appelé lorsque le bouton de la souris est enfoncé sur le composant // Le jeu est terminé et ne peut pas être renvoyé; String colorname = isback? "Black": "Échecs blancs"; xindex = (e.getx () - margin + grid_span / 2) / grid_span; yindex = (e.gety () - margin + grid_span / 2) / grid_span; // convertir la position de coordonnée de la souris cliquez en un index de grille if (xindex <0 || xindex> lignes || yindex <0 || yindex> cors) // la pièce d'échec tombe à l'extérieur de l'échec et ne peut pas être retournée; if (findchess (xindex, yindex)) // La pièce d'échecs existe déjà en position x, y, donc vous ne pouvez pas être retourné; Point ch = nouveau point (xindex, yindex, isback? Colore.black: colore.white); ChessList [ChessCount ++] = ch; repeain (); // informer le système pour repeindre if (iswin ()) {String msg = string.format ("Félicitations,% s win ~", colorname); JOptionPane.showMessageDialog (this, msg); gameOver = true; } else if (ChessCount == (Cols + 1) * (lignes + 1)) {String msg = string.format ("Chess Drum est assez bon, grand ~"); JOptionPane.showMessageDialog (this, msg); gameOver = true; } isback =! isback; }3.5 Dessinez un échec, des pièces d'échecs et des cadres rouges
public void peintComponent (graphiques g) {super.paintComponent (g); // dessiner des échecs pour (int i = 0; i <= lignes; i ++) {// dessiner la ligne horizontale g.drawline (margin, margin + i * grid_span, margin + cols * grid_span, margin + i * grid_span); } pour (int i = 0; i <= cols; i ++) {// dessiner la ligne droite g.drawline (margin + i * grid_span, margin, margin + i * grid_span, margin + lignes * grid_span); } / * Dessiner des pièces d'échecs * / for (int i = 0; i <ChessCount; i ++) {int xpos = ChessList [i] .getx () * grid_span + margin; // les coordonnées x de la grille croisée int ypos = l'échelle g.setColor (ChessList [i] .getColor ()); // définir la couleur g.filloval (xpos-point.diamètre / 2, ypos-point.diamètre / 2, point.diamètre, point.diamètre); if (i == ChessCount-1) {g.setColor (Color.red); // Marquez la dernière pièce en tant que rouge g.drawrect (xpos-point.diamètre / 2, ypos-point.diamètre / 2, point.diamètre, point.diamètre); }}3.6 Juge Win or Loss
/ * Juge quel côté gagne * / privé boolean iswin () {int continuCount = 1; // le nombre de pièces d'échecs continues pour (int x = xindex-1; x> = 0; x -) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, yindex, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex + 1; x <= lignes; x ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, yindex, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne le rendement vrai; } else continueCount = 1; // pour (int y = yindex-1; y> = 0; y -) {// Recherchez verticalement pour colorer c = isback? Color.Black: Color.White; if (getChess (xindex, y, c)! = null) {continuCount ++; } else se briser; } pour (int y = yindex + 1; y <= lignes; y ++) {// Regardez vers le bas dans la couleur verticale Color C = Isback? Color.Black: Color.White; if (getChess (xindex, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne le rendement vrai; } else continueCount = 1; // pour (int x = xindex + 1, y = yindex-1; y> = 0 && x <= cols; x ++, y -) {// Regardez la couleur inférieure droite c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex-1, y = yindex + 1; y <= lignes && x> = 0; x -, y ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne. Retour Vrai; } else continueCount = 1; // pour (int x = xindex-1, y = yindex-1; y> = 0 && x> = 0; x -, y -) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex + 1, y = yindex + 1; y <= lignes && x <= cols; x ++, y ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne le rendement vrai; } else continueCount = 1; retourne false; }3.7 La boîte de message correspondante apparaît (à l'intérieur de la fonction de presse de la souris)
if (iswin ()) {String msg = string.format ("Félicitations,% s win ~", colorname); JOptionPane.showMessageDialog (this, msg); gameOver = true; } else if (ChessCount == (cols + 1) * (lignes + 1)) // track {String msg = string.format ("Chess Drum est assez bon, super ~"); JOptionPane.showMessageDialog (this, msg); gameOver = true; }3.8 Une fonction utilisée ci-dessus pour déterminer s'il y a des pièces d'échecs à un certain point
Boolean FindChess privé (int x, int y) {for (point c: ChessList) {if (c! = null && c.getx () == x && c.gety () == y) return true; } return false; }3.9 Étant donné que cette classe d'échecs implémente l'interface d'écoute de souris MonSeListener, toutes les méthodes de l'interface doivent être réécrites. Les autres méthodes sont les suivantes
@Override public void MouseClicked (Mouseevent e) {// appelé lorsque le bouton de la souris est cliqué (appuyé et libéré) sur le composant} @Override public void MouseLele tourn @Override public void MouseExit (Mouseevent e) {// appelé lorsque la souris quitte le composant}4. Résultats de l'opération
V. Résumé du code
Le jeu a trois classes au total, l'une est l'interface startChessjframe, l'une est l'échecs d'échecs d'échecs, et l'autre est le point de classe d'échecs
Classe 5.1startchessjframe
package Chess.lcc.com; importer javax.swing. *; import java.awt.event. *; import java.awt. *; / * * Framework principal de Gozi, Classe de démarrage du programme * / classe publique StartChessJFrame étend JFrame {Échecs d'échecs privés d'échec Goji "); // Définissez le titre Chessboard = new Chessboard (); // Initialisez l'objet Panel, créez et ajoutez le menu MyItemListener LIS = new MyItemListener (); // Initialisez le bouton ÉVECTEUR ÉVECTEUR CLASS INTERNALLE CLASS TOLLABAR = NOUVEAU PANNEL (); // Instance de la barre d'outils StartButton = New Button (" Restart "); Backbutton = nouveau bouton ("Répondre"); eXitButton = new Button ("Exit"); // Initialize Toolbar.SetLayout (new FlowLayout (FlowLayout.Left)); // Utilisez FlowLayout to Layout Toolbar.Add (Backbutton); Toolbar.Add (startButton); Toolbar.Add (EXITBUTTON); // Ajouter trois boutons au panneau d'outils startButton.addactionListener (LIS); Backbutton.AddactionListener (LIS); exitbutton.addactionListener (lis); // Enregistrez les trois événements de bouton pour écouter pour l'événement ADD (barre d'outils, BorderLayout.South); // mise en place du panneau d'outils au sud de l'interface, c'est-à-dire, Add (Chessboard); classe privée MyItemListener implémente ActionListener {public void ActionPerformed (ActionEvent e) {objet obj = e.getsource (); // Obtenez la source de l'événement if (obj == startButton) {System.out.println ("redémarrer ..."); // start // jfiveframe.this classe innerte références de la classe Outter Class Chessboard.RestartaGame (); } else if (obj == exitButton) {System.exit (0); // terminer l'application} else if (obj == backbutton) {System.out.println ("Répondre Chess ..."); // Répondre Chessboard.goback (); }}} public static void main (string [] args) {startChessjframe f = new startChessjframe (); // Créer le cadre principal f.setVisible (true); // montre la trame principale}} Classe 5.2CHESS
package Chess.lcc.com; importer javax.swing. *; import java.awt. *; Importer java.awt.event.mouseListener; Importer java.awt.event.mousmotionListener; Importer java.awt.event.mousevent; / * Group-Chess-Chessboard Classe * / classe publique Chessboard étend Jpanel implémente MouseListener {public static int margin = 30; // mariage public static int grid_span = 35; // grid espacement public static int. Point [(lignes + 1) * (cols + 1)]; // initialiser chaque élément de tableau à null booléen isback = true; // le démarrage par défaut est le premier échec de Black First Gameover = false; // est le jeu terminé int chessCount; // le nombre de pièces d'échec SetBackground (Color.light_Gray); // Définit la couleur d'arrière-plan sur AddMouseListener (ceci); // Ajouter un écouteur d'événement addMousmotionListener (new MousMotionListener () {// Anonymous Internal class @Override public Void MouseMoved (Mouseevent e) {int x1 = (e.getx () - margin + grid_span / 2) / gred_span; Intre y1 = (e.gety () - margin + grid_span / 2) / grid_span; // convertir la position de coordonnée de la souris cliquez sur un index de grille if (x1 <0 || x1> lignes || y1 <0 || y1> cols || gibier || findchess (x1, y1)) {// Le jeu a terminé et ne peut pas être abandonné; Dropped; Il y a des pièces d'échecs dans la position x et y, vous ne pouvez donc pas être SetCursor (nouveau curseur (cursor.default_cursor); // Défini sur la forme par défaut} else {SetCursor (nouveau curseur (curseur } / * Dessiner * / public void peintComponent (graphics g) {super.paintComponent (g); // dessiner des échecs pour (int i = 0; i <= lignes; i ++) {// dessiner la ligne horizontale g.drawline (margin, margin + i * grid_span, margin + cols * grid_span, margin + i * grid_span); } pour (int i = 0; i <= cols; i ++) {// dessiner une ligne droite g.drawline (margin + i * grid_span, margin, margin + i * grid_span, margin + lignes * grid_span); } / * Dessiner des pièces d'échecs * / for (int i = 0; i <ChessCount; i ++) {int xpos = ChessList [i] .getx () * grid_span + margin; // x coordonnées de la grille croisée int ypos = ChessList [i] .gety () * grid_span + margin; // la coordonnée y coordonnée du great Crossing Grid. g.setColor (ChessList [i] .getColor ()); // définir la couleur g.filloval (xpos-point.diamètre / 2, ypos-point.diamètre / 2, point.diamètre, point.diamètre); if (i == ChessCount-1) {g.setColor (Color.red); // Inscrivez la dernière pièce en tant que rouge g.drawrect (xpos-point.diamètre / 2, ypos-point.diamètre / 2, point.diamètre, point.diamètre); }}} @Override public void Mousreprim (MouseEvent e) {// if (gameover) est appelé lorsque le bouton de la souris est appuyé sur le composant // Le jeu s'est terminé, vous ne pouvez pas le retourner; String colorname = isback? "Black": "Échecs blancs"; xindex = (e.getx () - margin + grid_span / 2) / grid_span; yindex = (e.gety () - margin + grid_span / 2) / grid_span; // convertir la position de coordonnée de la souris cliquez en un index de grille if (xindex <0 || xindex> lignes || yindex <0 || yindex> cors) // la pièce d'échec tombe à l'extérieur de l'échec et ne peut pas être retournée; if (findchess (xindex, yindex)) // La pièce d'échecs existe déjà en position x, y, donc vous ne pouvez pas être retourné; Point ch = nouveau point (xindex, yindex, isback? Colore.black: colore.white); ChessList [ChessCount ++] = ch; repeain (); // informer le système pour repeindre if (iswin ()) {String msg = string.format ("Félicitations,% s win ~", colorname); JOptionPane.showMessageDialog (this, msg); gameOver = true; } else if (ChessCount == (Cols + 1) * (lignes + 1)) {String msg = string.format ("Chess Drum est assez bon, grand ~"); JOptionPane.showMessageDialog (this, msg); gameOver = true; } isback =! isback; } @Override public void MouseClicked (MouseEvent e) {// appelé lorsque le bouton de la souris est cliqué (appuyé et libéré) sur le composant} @Override public void Mouselelent Composant} @Override public void MouseExit (Mouseevent e) {// appelé lorsque la souris quitte le composant} privé booléen findchess (int x, int y) {for (point c: ChessList) {if (c! = null && c.getx () == x && c.gety () == y) return; } return false; } / * Juger quel côté gagne * / private booléen iswin () {int continuCount = 1; // le nombre de pièces d'échecs continues pour (int x = xindex-1; x> = 0; x -) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, yindex, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex + 1; x <= lignes; x ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, yindex, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne le rendement vrai; } else continueCount = 1; // pour (int y = yindex-1; y> = 0; y -) {// Recherchez verticalement pour colorer c = isback? Color.Black: Color.White; if (getChess (xindex, y, c)! = null) {continuCount ++; } else se briser; } pour (int y = yindex + 1; y <= lignes; y ++) {// Regardez vers le bas dans la couleur verticale Color C = Isback? Color.Black: Color.White; if (getChess (xindex, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne le rendement vrai; } else continueCount = 1; // pour (int x = xindex + 1, y = yindex-1; y> = 0 && x <= cols; x ++, y -) {// Regardez la couleur inférieure droite c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex-1, y = yindex + 1; y <= lignes && x> = 0; x -, y ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juger le nombre de dossiers est supérieur ou égal à cinq, ce qui signifie que ce côté gagne. Retour Vrai; } else continueCount = 1; // pour (int x = xindex-1, y = yindex-1; y> = 0 && x> = 0; x -, y -) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } pour (int x = xindex + 1, y = yindex + 1; y <= lignes && x <= cols; x ++, y ++) {// recherchez la couleur c = isback? Color.Black: Color.White; if (getChess (x, y, c)! = null) {continuCount ++; } else se briser; } if (continuCount> = 5) {// juge que le nombre de dossiers est supérieur ou égal à cinq, cela signifie que ce côté gagne le rendement vrai; } else continueCount = 1; retourne false; } Private Point GetChess (int xindex, int yindex, couleur couleur) {pour (point c: ChessList) {if (c! = null && c.getx () == xindex && c.gety () == yindex && c.getColor () == Color) return c; } return null; } public void restartGame () {// effacer la pièce d'échecs pour (int i = 0; i <ChessList.length; i ++) ChessList [i] = null; / * Restaurer la valeur de variable liée au jeu * / isback = true; gameover = false; // si le jeu se termine ChessCount = 0; // Le nombre de pièces d'échecs sur la carte actuelle est repeint (); } public void goback () {if (ChessCount == 0) return; ChessList [ChessCount-1] = null; ChessCount--; if (ChessCount> 0) {xIndex = ChessList [ChessCount-1] .getX (); yindex = ChessList [ChessCount-1] .gety (); } isback =! isback; repeindre(); } // Dimension: dimension publique rectangle getPreferRedSize () {return new dimension (margin * 2 + grid_span * cols, margin * 2 + grid_span * lignes); }} Classe 5.3 Point
package Chess.lcc.com; import java.awt. *; Point de classe publique {private int x; // x Valeur d'index de la pièce d'échecs dans la carte d'échecs private int y; // y valeur d'index de la pièce d'échecs dans la couleur privée de la carte d'échecs; // Couleur publique static int diamètre = 30; // Diamètre Point public (int x, int y, couleur couleur) {this.x = x; this.y = y; this.color = couleur; } // Get x Index Valeur de la pièce d'échecs dans la planche d'échecs public int getX () {return x; } // Obtenez la valeur d'index Y de la pièce d'échecs dans la planche d'échecs public int gety () {return y; } // Obtenez la couleur de la pièce d'échecs Couleur publique Couleur GetColor () {return Color; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.