El artículo anterior habla sobre Java que implementa el juego de ajedrez de Gozi (2) dibujando el tablero de ajedrez, y se ha dibujado el tablero de ajedrez. A continuación, necesitamos implementar la función de control, las funciones principales:
1) Elija una pieza de ajedrez
2) Dibuja piezas de ajedrez
3) Juez al ganador
4) Intercambiar ajedrez
Date cuenta de la parte del dibujo de la pieza del ajedrez
---------------------------------------------------------------------------------------------------
Primero, defina una clase de Piece de ajedrez. Esta clase tiene dos atributos: el color de la pieza (0- significa negro y 1 significa blanco), y si hacer un movimiento (planeo usar una matriz bidimensional para almacenar la información de giro de la pieza del ajedrez)
Chessman.java
paquete xchen.test.simplegoBang; Public Class Chessman {private int color; // 1-White, 0-Black Private Boolean colocado = falso; Public Chessman (int color, boolean colocado) {this.color = color; this. -colgado = colocado; } public boolean getplaced () {return colocado; } public void setplaced (boolean colocado) {this.placed = colocado; } public int getColor () {return color; } public void setColor (int color) {this.color = color; }} Luego hemos dibujado la parte del código del tablero de ajedrez en la parte anterior y agregamos el código para dibujar piezas de ajedrez. Usé dos piezas de ajedrez (una blanca y otra negra, ubicada en el tablero de ajedrez [8, 8], [7, 7]) para probar el código para dibujar piezas de ajedrez.
DrawChessboard.java
paquete xchen.test.simplegoBang; import java.awt.graphics; import java.awt.graphics2d; import java.awt.RadialGradientPaint; import java.awt.image; import java.awt.toolkit; import java.awt.color; import javax.swing.jpanel; Public Class DrawChessboard se extiende jpanel {final static int black = 0; Final static int white = 1; public int ChessColor = Black; Imagen pública Boardimg; Final privado int filas = 19; Chessman [] [] ChessStatus = New Chessman [filas] [filas]; public drawChessboard () {boardImg = Toolkit.getDefaultToolkit (). getImage ("res/drawable/Chessboard2.png"); if (boardimg == null) system.err.println ("Png no existe"); // Test Draw Chessman Part Simple Chessman Chessman = New Chessman (0, verdadero); Chessstatus [7] [7] = Chessman; Chessman Chessman2 = nuevo Chessman (1, verdadero); Chessstatus [8] [8] = Chessman2; // Test Draw Chessman Parte Simple} @Override Protected void PaintComponent (Graphics g) {// TODO Método generado automático stub super.paintComponent (g); int imgwidth = boardimg.getheight (this); int imgheight = boardimg.getWidth (this); int fwidth = getWidth (); int fheight = getheight (); int x = (fwidth-imgwidth)/2; int y = (fheight-imgheight)/2; G.Drawimage (Boardimg, X, Y, Null); int margen = x; int span_x = imgwidth/filas; int span_y = imgheight/filas; // Dibuja la línea horizontal para (int i = 0; i <filas; i ++) {g.drawline (x, y+i*span_y, fwidth-x, y+i*span_y); } // dibujar línea vertical para (int i = 0; i <shows; i ++) {g.drawline (x+i*span_x, y, x+i*span_x, fheight-y); } // Dibuja piezas de ajedrez para (int i = 0; i <shows; i ++) {for (int j = 0; j <shows; j ++) {if (thessStatus [i] [j]! = Null && ChessStatus [i] [j] .getplaced () == true) {System.Println ("dibujar chessman"+i+"" "" "" "" "J); int pos_x = x+i*span_x; int pos_y = y+j*span_y; int Chessman_Width = 20; flotante radio_b = 20; flotante radio_w = 50; flotante [] fracciones = new float [] {0f, 1f}; java.awt.color [] colores_b = new java.awt.color [] {color.black, color.white}; Color [] colores_w = nuevo color [] {color.white, color.black}; Pintura radialgradientPaint; if (ChessStatus [i] [j] .getColor () == 1) {System.out.println ("Dibuja el ajedrez blanco"); pintar = nuevo RadialGradientPaint (pos_x-chessman_width/2f, pos_y-chessman_width/2f, radius_w*2, fracciones, colores_w); } else {System.out.println ("dibujar ajedrez negro"); pintura = nuevo RadialGradientPaint (pos_x-chessman_width/2f, pos_y-chessman_width/2f, radius_b*2, fracciones, colores_b); } ((Graphics2d) g) .SetPaint (pintura); ((Graphics2d) g) .Filloval (pos_x-chessman_width/2, pos_y-chessman_width/2, Chessman_width, Chessman_width); }}}}}}}} El código del módulo principal permanece sin cambios
Main.java
paquete xchen.test.simplegoBang; import java.awt.container; import javax.swing.jframe; importar xchen.test.SimpleGobang.DrawChessboard; Public Class Main extiende JFrame {DrawChessboard private DrawChessboard; public main () {drawChessboard = new DrawChessboard (); // Marco de título Settitle ("Stand-Alone goji"); Contenedor contenedorpane = getContentPane (); ContainerPane.Add (DrawChessboard); } public static void main (string [] args) {main m = new main (); M.Setsize (800, 800); M.SetVisible (verdadero); }}¡Ejecutarlo!
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.