Este pequeño juego es el diseño del curso Java de mi hermana y yo, y también es el primer proyecto Java que he hecho. Es adecuado para principiantes. Espero que pueda ayudar a aquellos niños que están preocupados por el diseño del curso Java ~~~
1. El juego debe implementarse
1. Diseñe el marco y la interfaz principales.
2. Use la interfaz ActionListener para realizar el monitoreo de los eventos de botones.
3. Reinicie la implementación de la función.
4. Implementación de la función de ajedrez.
5. Implementación de la función de salida.
6. Definición de puntos de ajedrez en el tablero de ajedrez.
7. Use la interfaz MouseListener para implementar el monitoreo de eventos e implementar todos los métodos en la interfaz.
8. Cuando el mouse se mueve al punto de intersección en el tablero y no hay piezas de ajedrez en el punto, puede convertirse en una pequeña forma de la mano.
9. Al hacer clic en el tablero de ajedrez, use la instrucción IF para determinar si el punto está en la intersección, y use la instrucción foreach y getx () y gety () en la clase de ajedrez para atravesar la posición de cada pieza de ajedrez para determinar si el punto tiene piezas de ajedrez.
10. Cuando se determine que puede colocar un submarino en el punto de clic, al dibujar una pieza, use el bucle for para atravesar cada punto existente y usar el setcolor de la clase de gráficos para establecer el color y use el método Filloval de la clase de gráficos para establecer el tamaño de forma.
11. Al dibujar la pieza de ajedrez, debes juzgar al ganador y perder a tiempo. Use el índice y para el bucle para atravesar las direcciones de la última pieza de ajedrez. Si hay piezas de ajedrez en la misma línea recta con una serie de piezas de ajedrez mayores o iguales a cinco, esa es la representada por la pieza de ajedrez actual.
12. Cuando se decide el ganador, la información correspondiente puede aparecer.
2. Implementación del código funcional
2.1 Entra en el juego
public static void main (string [] args) {startchessjFrame n.2.2 Inicialización, defina algunas cantidades que se utilizarán.
placa de ajedrez de ajedrez privada; // Barra de herramientas del panel privado del panel de combatir; // Barra de herramientas Panel botón privado startButton; // Establecer el botón Inicio Botón Privado BackButton; // Establezca el botón de arrepentimiento Botón Privado ExitButton; // Establecer el botón de salida
2.3 Método de construcción de interfaz (marco de juego)
public startchessjFrame () {settitle ("standalone goji"); // Establezca el title Chessboard = new Chessboard (); // Inicialice el objeto del panel, cree y agregue el menú myItemListener lis = new MyItEmListener (); // Inicializar el Eventer de clase interna Botoner Buttoner Tool Bar = New Panel (); // Instance La Barra de la herramienta Bar StartButton = New Botone ("" Buttonize Buttoner; "" "Buttoner Buttoner;" "Buttoner);" Buttoner; "Buttoner;" "") backButton = botón nuevo ("respuesta"); exitButton = new Button ("Exit"); // Inicializar la barra de herramientas.setLayout (new FlowLayout (FlowLayout.Ltft)); // Use FlowLayout para Layout Tool Bar.add (BackButton); Barra de herramientas.Add (StartButton); Barra de herramientas BackButton.AddactionListener (LIS); exitButton.addactionListener (lis); // Registre los eventos de tres botones para escuchar el evento add (barra de herramientas, borderLayout.South); // Diseño el panel de herramientas al sur de la interfaz, es decir, add (ajustboard); // agregue el objeto del panel al formulario setDefaulteOperation (jframe.exit_on_close); // set el interface} (state state state state ();2.4 Implementación y monitoreo de botones (método de construcción interna)
MyItemListener lis = new MyItemListener (); // Inicializar la clase interna del botón Event Listener Tool Bar = new Panel (); // Instanciar la barra del panel de herramientas startButton = new Button ("reiniciar"); backButton = botón nuevo ("respuesta"); exitButton = new Button ("Salir"); // Inicializar la barra de herramientas Barra de herramientas.Add (StartButton); Barra de herramientas BackButton.AddactionListener (LIS); exitButton.addactionListener (LIS); // Registre los eventos de tres botones para escuchar eventos2.5 Escuchar eventos de botones
Clase privada myItemListener implementa ActionListener {public void ActionPerformed (ActionEvent e) {object obj = e.getSource (); // Obtener la fuente de eventos if (obj == startButton) {system.out.println ("inicio ..."); // remart // jfiveframe. } else if (obj == ExitButton) {System.exit (0); // finaliza la aplicación} else if (obj == backButton) {System.out.println ("Arregletos de ajuste ..."); // Arrepent Chessboard.goback (); }}}2.6 Implementación de la función del botón de reinicio
public void reinSartGame () {// Clear Chess Pieces para (int i = 0; i <ChessList.length; i ++) ChessList [i] = null; /*Restaurar valores variables relacionados con el juego*/ isback = true; GameOver = false; // si el juego termina ChessCount = 0; // El número de piezas de ajedrez en el tablero actual es repintado (); }2.7 Implementación de la función del botón de ajedrez
public void Goack () {if (ChessCount == 0) return; Lista de ajedrez [ChessCount-1] = NULL; Chesscount--; if (ChessCount> 0) {xIndex = ChessList [CHESSCOUNT-1] .getx (); yIndex = ChessList [ChessCount-1] .gety (); } isback =! Isback; repintado (); }2.8 Cuando el tablero de ajedrez se vuelve más grande o más pequeño según sea necesario, la ventana debe cambiar en consecuencia.
// dimensión: dentro de la clase de tablero de ajedrez rectangular dimensiones públicas getPreferredSize () {return new dimension (margen*2+grid_span*cols, margen*2+grid_span*filas); } pack (); // tamaño adaptativo dentro de la clase Startchessboard2.9 Definición de piezas de ajedrez
import java.awt.*; Punto de clase pública {private int x; // x Valor de índice de la pieza de ajedrez en el tablero de ajedrez privado int y; // y y y el valor de índice de la pieza de ajedrez en el tablero de ajedrez color de color privado; // color public static int diámetro = 30; // punto público de diámetro (int x, int y, color color) {this.x = x; this.y = y; this.color = color; } // Obtener x valor de índice de la pieza de ajedrez en el tablero de ajedrez public int getx () {return x; } // Obtener el valor de índice y de la pieza de ajedrez en el tablero de ajedrez public int gety () {return y; } // Obtener la pieza de ajedrez Color Public Color getColor () {return color; }} 3. Implementación de código de pieza funcional
3.1 Inicialización, defina algunas cantidades que se utilizarán.
Public static int margin = 30; // matrimonio público static int grid_span = 35; // Grid Spacing public static int rows = 18; // Número de filas de tablero de ajedrez. Black Achess First GameOver = false; // ¿El juego finaliza int thessCount; // el número de piezas de ajedrez en el tablero de ajedrez actual int xindex, yindex; // índice de la pieza de ajedrez que acaba de jugar
3.2 Método de construcción del objeto de tablero de ajedrez
public Chessboard () {Segetbackground (color.light_gray); // Establezca el color de fondo en gris addMouseListener (this); // agregue el oyente de eventos addmousEmotionListener (new MouseMotionListener () {// clase interna anónima @Override public void mousemoved (mouseevent e) {intent x1 = (e.getx ()-margen+grid_span/2)/grid_span; if (x1 <0 || x1> filas || y1 <0 || y1> cols || gameover || findchess (x1, y1)) {// El juego ha terminado y no se puede dejar caer fuera forma} else {setCursor (nuevo cursor (cursor.hand_cursor)); // establecer la forma de mano}} @Override public void MousedRagged (mouseevent e) {}}); }3.3 Configure el oyente del mouse y haga la mano más pequeña (dentro del método de construcción)
addMousEmotionListener (new MouseMotionListener () {// clase interna anónima @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; Haga clic en un índice de cuadrícula si (x1 <0 || x1> filas || y1 <0 || y1> cols || gameover || findchess (x1, y1)) {// El juego ha terminado y no se puede dejar caer ( Cursor (cursor.default_cursor)); // establecer en forma predeterminada} else {setCursor (new Cursor (cursor.hand_cursor))); // establecido en forma de mano}} @Override public void MousedRagged (mouseEvent e)}}});3.4 Evento de presión del mouse Al hacer clic en el tablero de ajedrez
public void mousePressed (mouseevent e) {// if (gameover) se llama cuando el botón del mouse se presiona en el componente // el juego ha terminado y no se puede devolver; String Colorname = Isback? "Negro": "Ajedrez blanco"; xindex = (e.getx ()-margen+grid_span/2)/grid_span; yindex = (e.gety ()-margen+grid_span/2)/grid_span; // Convierta la posición coordinada del clic en un índice de cuadrícula if (xindex <0 || xindex> filas || yindex <0 || yindex> cols) // La pieza de Chess cae fuera de la placa de ajuste y no se puede devolver; if (findchess (xindex, yindex)) // La pieza de ajedrez ya existe en la posición x, y, por lo que no se puede devolver; Punto ch = nuevo punto (xindex, yindex, isback? Color.black: color.white); Listra de ajedrez [ChessCount ++] = ch; repinter (); // notificar al sistema que repinte if (iswin ()) {string msg = string.format ("Felicitaciones, %s win ~", colorname); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; } else if (ChessCount == (cols+1)*(filas+1)) {string msg = string.format ("El tambor de ajedrez es bastante bueno, genial ~"); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; } isback =! Isback; }3.5 Dibuja un tablero de ajedrez, piezas de ajedrez y marcos rojos
public void PaintComponent (Graphics g) {super.PaintComponent (g); // Dibuja Chessboard para (int i = 0; i <= Rows; i ++) {// dibujar línea horizontal g.drawline (margen, margen+i*grid_span, margen+cols*grid_span, margen+i*grid); } for (int i = 0; i <= cols; i ++) {// dibujar línea recta g.drawline (margen+i*grid_span, margen, margen+i*grid_span, margen+filas*grid_span); }/*Dibuja piezas de ajedrez*/para (int i = 0; i <ChessCount; i ++) {int xPos = ChessList [i] .getx ()*grid_span+margin; // Las coordenadas x de la cuadrícula cruzando int ypos = list de ajedrez [i] .gety ()*grid_span+margin; // las coordinas de gran G.SetColor (ChessList [i] .getColor ()); // Establecer el color G.Filloval (xPOS-Point.Diameter/2, YPOS-Point.Diameter/2, Point.Diameter, Point.Diameter); if (i == ChessCount-1) {G.SetColor (color.red); // Marque la última pieza como Red G.Drawrect (XPOS-Point.Diameter/2, YPOS-Point.Diameter/2, Point.Diameter, Point.diameter); }}3.6 Juez o pérdida
/*Juzga qué lado gana*/private boolean iswin () {int continuecount = 1; // El número de piezas de ajedrez continuas para (int x = xindex-1; x> = 0; x-) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, yindex, c)! = null) {continuecount ++; } el más ruptura; } para (int x = xindex+1; x <= filas; x ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, yindex, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana el retorno verdadero; } else continúauecount = 1; // para (int y = yindex-1; y> = 0; y-) {// ¿Busca verticalmente el color c = isback? Color.black: color.white; if (getChess (xindex, y, c)! = null) {continuecount ++; } el más ruptura; } para (int y = yindex+1; y <= filas; y ++) {// mira hacia abajo en dirección vertical color c = isback? Color.black: color.white; if (getChess (xindex, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana el retorno verdadero; } else continúauecount = 1; // for (int x = xindex+1, y = yindex-1; y> = 0 && x <= cols; x ++, y-) {// Mira hacia abajo en el color inferior derecho c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } for (int x = xindex-1, y = yindex+1; y <= file && x> = 0; x-, y ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana. Devolver verdadero; } else continúauecount = 1; // for (int x = xindex-1, y = yindex-1; y> = 0 && x> = 0; x-, y-) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } para (int x = xindex+1, y = yindex+1; y <= filas && x <= cols; x ++, y ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana el retorno verdadero; } else continúauecount = 1; devolver falso; }3.7 aparece el cuadro de mensaje correspondiente (dentro de la función de prensa del mouse)
if (iswin ()) {string msg = string.format ("Felicitaciones, %s win ~", colorname); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; } else if (ChessCount == (cols+1)*(filas+1)) // Track {String msg = string.format ("El tambor de ajedrez es bastante bueno, genial ~"); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; }3.8 Una función utilizada anteriormente para determinar si hay piezas de ajedrez en cierto punto
Private Boolean findchess (int x, int y) {for (punto c: thesslist) {if (c! = null && c.getx () == x && c.gety () == y) return true; } return false; }3.9 Debido a que esta clase de tablero de ajedrez implementa la interfaz de escucha del mouse Monselistener, todos los métodos en la interfaz deben reescribirse. Los otros métodos son los siguientes
@Override public void mouseClicked (mouseEvent e) {// llamado cuando se hace clic en el botón del mouse (presionado y lanzado) en el componente} @Override public void Mousereleded (MouseeVent E) {/// @Override public void mouseExited (mouseevent e) {// llamado cuando el mouse deja el componente}4. Resultados de la operación
V. Resumen del código
El juego tiene tres clases en total, una es la interfaz startchessjframe, una es el tablero de ajedrez de la clase de ajedrez, y el otro es el punto de clase de sujeto de ajedrez
5.1StartChessjFrame Clase
paquete de ajuste.lcc.com; import javax.swing.*; import java.awt.event.*; import java.awt.*; /** El marco principal de Gozi, clase de inicio del programa*/clase public startchessjFrame extiende jframe {private Chessboard Chessboard; // Fight Panel Private Panel Barbar; // Toolbar Panel Botón privado StartButton; // Establecer el botón de inicio Botón Privado Bootbutton; // Establezca el botón privado Botón de láspil. Goji "); // Establezca el título Chessboard = new Chessboard (); // Inicializa el objeto del panel, crea y agregue menú myItemListener lis = new MyItemListener (); // Inicializar el botón Event Listener Interna Tool Barra = new Panel (); // Instancia de la barra de herramientas startButton = New Button (" reiniciar ");; backButton = botón nuevo ("respuesta"); exitButton = new Button ("Exit"); // Inicializar la barra de herramientas.setLayout (new FlowLayout (FlowLayout.Ltft)); // Use FlowLayout para Layout Tool Bar.add (BackButton); Barra de herramientas.Add (StartButton); Barra de herramientas BackButton.AddactionListener (LIS); exitButton.addactionListener (lis); // Registre los eventos de tres botones para escuchar el evento Add (Barda de herramientas, BorderLayout.South); // Diseño el panel de herramientas al sur de la interfaz, es decir, add (ACHESSBOard); // Agregar el objeto del panel al formulario setDefaulteperation (jframe.exit_on_close); // set la interfaze a la interfaz de forma de formulario; Clase privada myItemListener implementa ActionListener {public void ActionPerformed (ActionEvent e) {object obj = e.getSource (); // Obtener la fuente de eventos if (obj == startButton) {system.out.println ("reiniciar ..."); // inicio // jfiveframe.this referencias de la clase externa el tablero de la clase externa. } else if (obj == ExitButton) {System.exit (0); // finalizar la aplicación} else if (obj == backButton) {system.out.println ("responder ajedrez ..."); // responder thessboard.goback (); }}} public static void main (string [] args) {startchessjFrame f = new startChessJFrame (); // Cree el marco principal F.SetVisible (true); // Muestre el marco principal}} 5.2Chessboard Clase
paquete de ajuste.lcc.com; import javax.swing.*; import java.awt.*; import java.awt.event.mouselistener; import java.awt.event.MousemotionListener; import java.awt.event.mousevent; /*Group-Class-Chessboard Class*/Public Class Chessboard extiende Jpanel implementa MouseListener {public static int margin = 30; // matrimonio público estático intbrid_span = 35; // espaciado de cuadrícula espaciando públicamente intentos static int rows = 15; // Número de flujos de ajedrez pública intactar con cols = 15; // número de columnas de tablero de cartón [] listas de rayos nuevos = nuevos listas de listón = nuevo. Punto [(filas+1)*(cols+1)]; // Inicializar cada elemento de matriz a nulo boolean isback = verdadero; // El inicio predeterminado es el ajedrez negro primer juegover = false; // es el juego terminado int ChessCount; // el número de piezas de ajedrez en el tablero de ajedrez actual int xindex, yindex; // el índice de la pieza de ajedrez jugada solo se jugó con el tablero de chess chess () {{{{{{{{{{{{{{{{ setBackground(Color.LIGHT_GRAY);//Set the background color to yellow addMouseListener(this);//Add event listener addMouseMotionListener(new MouseMotionListener() {//Anonymous internal class @Override public void mouseMoved(MouseEvent e) { int x1=(e.getX()-MARGIN+GRID_SPAN/2)/GRID_SPAN; int y1 = (e.gety ()-margen+grid_span/2)/grid_span; // Convertir la posición coordinada del clic del mouse en un índice de cuadrícula if (x1 <0 || x1> filas || y1 <0 || y1> cols || gameover || findchess (x1, y1)) {// el juego ha terminado y no se puede caer; caídos; }/*Draw*/public void PaintComponent (Graphics g) {super.PaintComponent (g); // Draw Chessboard para (int i = 0; i <= Rows; i ++) {// Draw Horizontal Line G.Drawline (Margin, Margin+I*Grid_Span, Margin+cols*GRID_SPAN, MARGIN+I*GRUDLINE; } para (int i = 0; i <= cols; i ++) {// dibuja una línea recta G.Drawline (margen+i*grid_span, margen, margen+i*grid_span, margen+filas*grid_span); }/*Dibujar piezas de ajedrez*/para (int i = 0; i <ChessCount; i ++) {int xpos = ChessList [i] .getx ()*grid_span+margin; // x coordenadas de la cross de cuadrícula int ypos = list [i] .gety ()*grid_span+margin; // las y coordenadas de la grid G.SetColor (ChessList [i] .getColor ()); // Establecer el color G.Filloval (xPOS-Point.Diameter/2, YPOS-Point.Diameter/2, Point.Diameter, Point.Diameter); if (i == ChessCount-1) {G.SetColor (color.red); // Regístrese en la última pieza como Red G.Drawrect (XPOS-Point.Diameter/2, YPOS-Point.Diameter/2, Point.Diameter, Point.Diameter); }}} @Override public void mousePressed (MouseEvent E) {// if (GameOver) se llama cuando el botón del mouse se presiona en el componente // El juego ha terminado, no puede devolverlo; String Colorname = Isback? "Negro": "Ajedrez blanco"; xindex = (e.getx ()-margen+grid_span/2)/grid_span; yindex = (e.gety ()-margen+grid_span/2)/grid_span; // Convierta la posición coordinada del clic en un índice de cuadrícula if (xindex <0 || xindex> filas || yindex <0 || yindex> cols) // La pieza de Chess cae fuera de la placa de ajuste y no se puede devolver; if (findchess (xindex, yindex)) // La pieza de ajedrez ya existe en la posición x, y, por lo que no se puede devolver; Punto ch = nuevo punto (xindex, yindex, isback? Color.black: color.white); Listra de ajedrez [ChessCount ++] = ch; repinter (); // notificar al sistema que repinte if (iswin ()) {string msg = string.format ("Felicitaciones, %s win ~", colorname); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; } else if (ChessCount == (cols+1)*(filas+1)) {string msg = string.format ("El tambor de ajedrez es bastante bueno, genial ~"); JOptionPane.ShowMessEdialog (this, msg); GameOver = True; } isback =! Isback; } @Override public void mouseClicked (mouseEvent e) {// llamado cuando se hace clic en el botón del mouse (presionado y lanzado) en el componente} @Override public void mousereled (mouseEvent e) {/// cuando el botón de mouse se lanza en el componente} @Override public mouse bousevent (mouseevent e) {// llamado el botón de mouse se lanza en el componente} @Override mouse bousevent (mouseevent e) {// llamado el botón de mouse se lanza en el componente} @Override mouse bousevent (mouseevent e) {////////////1ts en el mouse en el mono componente} @Override public void MouseExited (MouseEvent E) {// llamado cuando el mouse deja el componente} boolean privado FindChess (int x, int y) {para (punto c: ChessList) {if (c! = null && c.getx () == x && c.gety () == y) devuelve verdadero; } return false; }/*Juzga qué lado gana*/private boolean iswin () {int continuecount = 1; // El número de piezas de ajedrez continuas para (int x = xindex-1; x> = 0; x-) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, yindex, c)! = null) {continuecount ++; } el más ruptura; } para (int x = xindex+1; x <= filas; x ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, yindex, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana el retorno verdadero; } else continúauecount = 1; // para (int y = yindex-1; y> = 0; y-) {// ¿Busca verticalmente el color c = isback? Color.black: color.white; if (getChess (xindex, y, c)! = null) {continuecount ++; } el más ruptura; } para (int y = yindex+1; y <= filas; y ++) {// mira hacia abajo en dirección vertical color c = isback? Color.black: color.white; if (getChess (xindex, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana el retorno verdadero; } else continúauecount = 1; // for (int x = xindex+1, y = yindex-1; y> = 0 && x <= cols; x ++, y-) {// Mira hacia abajo en el color inferior derecho c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } for (int x = xindex-1, y = yindex+1; y <= file && x> = 0; x-, y ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga el número de registros es mayor o igual a cinco, lo que significa que este lado gana. Devolver verdadero; } else continúauecount = 1; // for (int x = xindex-1, y = yindex-1; y> = 0 && x> = 0; x-, y-) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } para (int x = xindex+1, y = yindex+1; y <= filas && x <= cols; x ++, y ++) {// ¿Busca el color c = isback? Color.black: color.white; if (getChess (x, y, c)! = null) {continuecount ++; } el más ruptura; } if (continúaunt> = 5) {// juzga que el número de registros es mayor o igual a cinco, significa que este lado gana el retorno verdadero; } else continúauecount = 1; devolver falso; } Private Point getChess (int xindex, int yindex, color color) {for (punto c: ChessList) {if (c! = null && c.getx () == xindex && c.gety () == yindex && c.getColor () == color) return c; } return null; } public void reintartgame () {// borra la pieza de ajedrez para (int i = 0; i <ChessList.length; i ++) ChessList [i] = null; /*Restaurar el valor variable relacionado con el juego*/ isback = true; GameOver = false; // si el juego termina ChessCount = 0; // El número de piezas de ajedrez en el tablero actual es repintado (); } public void goback () {if (ChessCount == 0) return; Lista de ajedrez [ChessCount-1] = NULL; Chesscount--; if (ChessCount> 0) {xIndex = ChessList [CHESSCOUNT-1] .getx (); yIndex = ChessList [ChessCount-1] .gety (); } isback =! Isback; repintado (); } // dimensión: rectangle public dimension getPreferredSize () {return new dimension (margen*2+grid_span*cols, margen*2+grid_span*filas); }} Clase de 5.3 puntos
paquete de ajuste.lcc.com; import java.awt.*; Punto de clase pública {private int x; // x Valor de índice de la pieza de ajedrez en el tablero de ajedrez privado int y; // y y y el valor de índice de la pieza de ajedrez en el tablero de ajedrez color de color privado; // color public static int diámetro = 30; // punto público de diámetro (int x, int y, color color) {this.x = x; this.y = y; this.color = color; } // Obtener x valor de índice de la pieza de ajedrez en el tablero de ajedrez public int getx () {return x; } // Obtener el valor de índice y de la pieza de ajedrez en el tablero de ajedrez public int gety () {return y; } // Obtener la pieza de ajedrez Color Public Color getColor () {return color; }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.