Cuando estaba a punto de aprender la programación de Javagui, escribí un goji de juego pequeño.
Actualmente, solo se ha implementado una versión independiente, y todo se produce simplemente. Si tiene alguna pregunta, dame algún consejo.
El tablero de ajedrez y las piezas de ajedrez aquí no son imágenes, y todas se dibujan usando gráficos en Java.
El código fuente se ha enviado a GitHub, haga clic aquí con el código fuente de GitHub
La siguiente lista de categorías de ajedrez de Gozi:
import java.awt.borderlout; import java.awt.color; import java.awt.container; import java.awt.graphics; import java.awt.event.MouseeVent; import java.awt.event.mouseListener; import java.util.vector; import javax.swing.JfraM javax.swing.JOptionPane; clase pública Fiveinarow extiende jframe implementa mouselistener {vector v = new vector (); // Toda la información de ajedrez para cada paso vector white = new Vector (); // Información de ajedrez blanca vector negro = new Vector (); // Información de ajedrez negro booleano B; // solía juzgar si la bandera blanca o el ajedrez negro int Whitecount, BlackCount; // Calcule el número de pasos de ajedrez de arrepentimiento int w = 25; // tamaño de espacio int px = 100, py = 100; // el tamaño del tablero int pxw = px + w, pyw = py + w; int ancho = w * 16, altura = w * 16; int vline = ancho + px; // La longitud de la línea vertical int hline = altura + py; // Longitud de la línea horizontal/***Método de construcción*/public Fiveinarow () {super ("Stand-Alone goji"); this.setDefaultCloseOperation (jframe.exit_on_close); // Cerrar contenedor de botón con = this.getContentPane (); con.setLayout (new BorderLayout ()); this.AddMousElistener (this); // Agregar oyente this.setsize (600, 600); // Establezca el tamaño de formulario this.setBackground (color.Orange); this.setVisible (verdadero); }/*** Dibuja el tablero de ajedrez y las piezas de ajedrez* @param e*/public void Paint (Graphics g) {G.Clearrect (0, 0, this.getWidth (), this.getheight ()); // Borrar el Artboard G.SetColor (color.black); // Dibuja el color grid g.drawRect (px, py, altura, altura); G.DrawString ("Mini juego de gozi independiente, haga clic con el botón derecho para lamentar el ajedrez, bienvenido a usar", 180, 70); para (int i = 0; i <15; i ++) {g.drawline (pxw+i*w, py, pxw+i*w, hline); // cada línea horizontal y vertical g.drawline (px, pyw+i*w, vline, pyw+i*w); } for (int x = 0; x <v.size (); x ++) {string str = (string) v.get (x); Cadena tmp [] = str.split ("-"); int a = integer.parseInt (tmp [0]); int b = integer.parseInt (tmp [1]); a = a * w + px; b = b * w + py; if (x%2 == 0) {g.setColor (color.white); } else {g.setColor (color.black); } g.fillarc (aw/2, bw/2, w, w, w, 0, 360); }} @Override public void MouseClicked (MouseEvent E) {if (e.getButton () == E.Button1) {int x = e.getx (); int y = e.gety (); x = (x - x % w) + (x % w> w / 2? W: 0); y = (y - y % w) + (y % w> w / 2? W: 0); x = (x - px) / w; y = (y - py) / w; if (x> = 0 && y> = 0 && x <= 16 && y <= 16) {if (v.contains (x+"-"+y)) {System.out.println ("¡Ya hay un ajedrez!"); } else {v.add (x+"-"+y); this.Repaint (); if (v.size () % 2 == 0) {black.add (x+"-"+y); this.victory (x, y, negro); // System.out.println ("Ajedrez negro"); } else {white.add (x+"-"+y); this.victory (x, y, blanco); // system.out.println ("ajedrez blanco"); } // system.out.println (E.getx ()+"-"+e.gety ()); }} else {// system.out.println (e.getx ()+"-"+e.gety ()+"|"+x+"-"+y+"/t excede el límite"); }} if (e.getButton () == E.Button3) {// Método para hacer clic derecho en el ajedrez // System.out.println ("Haga clic con el botón derecho en el ajedrez: Ajedrez"); if (v.isEmpty ()) {joptionPane.ShowMessEdialog (esto, "No hay ajedrez para arrepentirse"); } else {if (v.size () % 2 == 0) {// juzga si es un ajedrez blanco que lamenta el ajedrez, o el ajedrez negro que se arrepiente de que el ajedrez BlackCount ++; if (BlackCount> 3) {JOptionPane.ShowMessEdialog (esto, "Black Achess ha lamentado 3 pasos"); } else {v.remove (v.lastelement ()); this.Repaint (); }} else {whitecount ++; if (whitecount> 3) {joptionPane.ShowMessEdialog (esto, "Black Achess ha lamentado 3 pasos"); } else {v.remove (v.lastelement ()); this.Repaint (); }}}}}}} / ** * Método para juzgar la victoria * @param x * @param y * @param contiene * / private void victory (int x, int y, vector contiene) {int cv = 0; // número de piezas de ajedrez en dirección vertical int ch = 0; // número de piezas de ajedrez horizontales int ci1 = 0; // número de piezas de ajedrez en la dirección de la pendiente 1 int ci2 = 0; // Número de piezas de ajedrez en la dirección de la pendiente 2 // Calcule el número de piezas de ajedrez en dirección horizontal para (int i = 1; i <5; i ++) {if (contre.contains ((x+i)+"-"+y)) {ch ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contre.contains ((xi)+"-"+y)) {ch ++; } else {break; }} // Calcule el número de piezas de ajedrez en la dirección vertical para (int i = 1; i <5; i ++) {if (contener.contains (x+"-"+(+i))) {cv ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contre.contains (x+"-"+(yi))) {cv ++; } else {break; }} // Calcule el número de piezas de ajedrez en la dirección inclinada de 45 ° para (int i = 1; i <5; i ++) {if (contener.contains ((x+i)+"-"+(y+i))) {ci1 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contre.contains ((xi)+"-"+(yi))) {ci1 ++; } else {break; }} // Calcule el número de piezas de ajedrez en la dirección de la pendiente de 135 ° para (int i = 1; i <5; i ++) {if (contener.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contre.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contre.contains ((xi)+"-"+(y+i))) {ci2 ++; } else {break; }} if (ch> = 4 || cv> = 4 || ci1> = 4 || ci2> = 4) {system.out.println (v.size ()+"paso"); if (v.size () % 2 == 0) {// juzga si es blanco o negro para ganar joptionPane.showMessEdialog (nulo, "negro"); } else {joptionPane.showMessEdialog (nulo, "blanco"); } this.v.clear (); this.black.clear (); this.white.clear (); this.Repaint (); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void MousePressed (MouseEvent E) {// TODO Auto Generado Método STUB} @Override Void MouserElEded (MouseEvent E) {// TODO Auto Generado Stub}}PD: Planeo escribir otra versión en línea de Goji, pero desafortunadamente no sé mucho sobre Internet en Java. Tengo que estudiar por un tiempo antes de continuar completándolo y probar mis resultados de aprendizaje personal.
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.