O artigo anterior fala sobre Java implementando o jogo de xadrez Gozi (2) desenhando o quadro de xadrez, e o tabuleiro de xadrez foi desenhado. Em seguida, precisamos implementar a função de controle, as principais funções:
1) Escolha uma peça de xadrez
2) Desenhe peças de xadrez
3) Julgue o vencedor
4) Trocar xadrez
Perceba a parte da peça de xadrez desenhando primeiro
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primeiro, defina uma classe de xadrez. Esta aula tem dois atributos: a cor da peça (0- significa preto e 1- significa branco) e se deve fazer um movimento (pretendo usar uma matriz bidimensional para armazenar as informações de curva da peça de xadrez)
Chessman.java
pacote xchen.test.simplegobang; classe pública Chessman {private int color; // 1-white, 0-Black Private Boolean colocado = false; public chessman (int cor, boolean colocado) {this.color = color; this.placed = colocado; } public boolean getPlaced () {return colocado; } public void SetPlaced (boolean colocado) {this.Placed = Placed; } public int getColor () {return color; } public void setColor (int cor) {this.color = color; }} Em seguida, desenhamos a parte do código do quadro de xadrez na parte anterior e adicionamos o código para desenhar peças de xadrez. Usei duas peças de xadrez (uma branca e uma preta, localizada no tabuleiro de xadrez [8, 8], [7, 7]) para testar o código para desenhar peças de xadrez.
Drawchessboard.java
pacote xchen.test.simplegobang; importar java.awt.graphics; importar java.awt.graphics2d; importar java.awt.RadialGradientPaint; importar java.awt.image; importar java.awt.toolkit; importar java.awt.color; importar javax.swing.jpanel; classe pública drawchessboard estende jpanel {final estático int preto = 0; estático final Int branco = 1; public int chesscolor = preto; Public Image Boardimg; Final Private Int linhas = 19; Chessman [] [] chessstatus = novo chessman [linhas] [linhas]; public drawchessboard () {boardimg = Toolkit.getDefaultToolkit (). getImage ("res/drawable/chessboard2.png"); if (boardimg == null) system.err.println ("png não existe"); // Teste Desenhe Chessman Part Simple Chessman Chessman = New Chessman (0, True); chessstatus [7] [7] = chessman; Chessman Chessman2 = New Chessman (1, verdadeiro); chessstatus [8] [8] = chessman2; // Teste Desenhe o Chessman Part simples} @Override Protected Void PaintComponent (Gráfico G) {// TODO Método Auto-Gerado 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 margem = x; int span_x = imgwidth/linhas; int span_y = imgheight/linhas; // desenhe linha horizontal para (int i = 0; i <linhas; i ++) {g.drawline (x, y+i*span_y, fwidth-x, y+i*span_y); } // desenhe linha vertical para (int i = 0; i <linhas; i ++) {g.drawline (x+i*span_x, y, x+i*span_x, fHeight-y); } // desenha peças de xadrez para (int i = 0; i <linhas; i ++) {for (int j = 0; j <linhas; j ++) {if (chessstatus [i] [j]! int pos_x = x+i*span_x; int pos_y = y+j*span_y; int chessman_width = 20; float raius_b = 20; float raius_w = 50; float [] frações = novo float [] {0f, 1f}; java.awt.color [] colors_b = new java.awt.color [] {color.black, color.white}; Color [] colors_w = nova cor [] {color.white, color.black}; Tinta radialgradientepaint; if (chessstatus [i] [j] .getColor () == 1) {System.out.println ("Draw White Chess"); Paint = new RadialGradientPaint (POS_X-CHESSMAN_WIDTH/2F, POS_Y-CHESSMAN_WIDTH/2F, RADIUS_W*2, FRAÇÕES, COLORS_W); } else {System.out.println ("Draw Black Chess"); Paint = new RadialGradientPaint (POS_X-CHESSMAN_WIDTH/2F, POS_Y-CHESSMAN_WIDTH/2F, RADIUS_B*2, FRAÇÕES, COLORS_B); } ((Graphics2d) g) .SetPaint (tinta); ((Graphics2d) G) .Filoval (POS_X-CHESSMAN_WIDTH/2, POS_Y-CHESSMAN_WIDTH/2, CHESSMAN_WIDTH, CHESSMAN_WIDTH); }}}}}}}} O código principal do módulo permanece inalterado
Main.java
pacote xchen.test.simplegobang; importar java.awt.container; importar javax.swing.jframe; importar xchen.test.simplegobang.drawchessboard; A classe pública principal estende JFrame {private Drawchessboard drawchessboard; public main () {drawchessboard = new DrawChessboard (); // título de quadro Settitle ("Goji independente"); ContainerPane de contêiner = getContentPane (); Containerpane.add (DrawChessboard); } public static void main (string [] args) {main m = new main (); M.SetSize (800, 800); M.Setvisible (True); }}Execute!
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.