L'article précédent parle de la mise en œuvre de Java en tenant compte du jeu d'échecs Gozi (2) dessinant l'échecteur, et l'échecteur a été dessiné. Ensuite, nous devons implémenter la fonction de contrôle, les fonctions principales:
1) Choisissez une pièce d'échecs
2) Dessiner des pièces d'échecs
3) juger le gagnant
4) Échecs d'échange
Réalisez d'abord la partie du dessin de la pièce d'échecs
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tout d'abord, définissez une classe d'échecs. Cette classe a deux attributs: la couleur de la pièce (0- signifie noir et 1- moyen blanc), et s'il faut bouger (je prévois d'utiliser un tableau bidimensionnel pour stocker les informations de virage de la pièce d'échecs)
Chessman.java
Package xchen.test.simplegobang; classe publique Chessman {private int couleur; // 1-blanc, 0-noir privé boolean placé = false; public Chessman (int couleur, booléen placé) {this.color = couleur; this.placed = placé; } public boolean getplace () {return placé; } public void setplaced (booléen placé) {this.placed = placé; } public int getColor () {return couleur; } public void setColor (int colore) {this.color = couleur; }} Ensuite, nous avons dessiné la partie de code de l'échecteur dans la pièce précédente et ajouté le code pour dessiner des pièces d'échecs. J'ai utilisé deux pièces d'échecs (un blanc et un noir, situé dans les échecs [8, 8], [7, 7]) pour tester le code pour dessiner des pièces d'échecs.
Drawchessboard.java
Package xchen.test.simplegobang; import java.awt.graphics; import java.awt.graphics2d; Importer java.awt.radialgradientpaint; import java.awt.image; import java.awt.toolkit; import java.awt.color; import javax.swing.jpanel; La classe publique Drawchessboard étend JPanel {final static int noir = 0; Final Static int blanc = 1; public int chesscolor = noir; Image publique BoardImg; lignes int privées finales = 19; Chessman [] [] Chessstatus = new Chessman [lignes] [lignes]; public drawchessboard () {boardimg = toolkit.getDefaultToolkit (). getImage ("Res / Drawable / Chessboard2.png"); if (boardimg == null) System.err.println ("png n'existe pas"); // Test dessiner Chessman partie simple Chessman Chessman = new Chessman (0, true); Chessstatus [7] [7] = Chessman; Chessman Chessman2 = New Chessman (1, true); Chessstatus [8] [8] = Chessman2; // Test Draw Chessman Part Simple} @Override Protected void PaintComponent (Graphics G) {// TODO Méthode générée automatique 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 margin = x; int span_x = imgwidth / lignes; int span_y = imgheight / lignes; // dessine la ligne horizontale pour (int i = 0; i <lignes; i ++) {g.drawline (x, y + i * span_y, fwidth-x, y + i * span_y); } // dessiner une ligne verticale pour (int i = 0; i <lignes; i ++) {g.drawline (x + i * span_x, y, x + i * span_x, fheight-y); } // dessiner des pièces d'échecs pour (int i = 0; i <lignes; i ++) {pour (int j = 0; j <lignes; j ++) {if (Chessstatus [i] [j]! = Null && chessstatus [i] [j] .getplaced () == true) {system.out.println ("dessiner chessman" + i + "" + j); int pos_x = x + i * span_x; int pos_y = y + j * span_y; int Chessman_Width = 20; float radius_b = 20; float radius_w = 50; float [] fractions = new float [] {0f, 1f}; java.awt.color [] couleurs_b = new java.awt.color [] {color.black, colore.white}; Couleur [] couleurs_w = new Color [] {Color.white, Color.Black}; Peinture radialgradientpaint; if (Chessstatus [i] [j] .getColor () == 1) {System.out.println ("Draw White Chess"); peinture = new RadialgradIentPaint (pos_x-chessman_width / 2f, pos_y-chessman_width / 2f, radius_w * 2, fractions, couleurs_w); } else {System.out.println ("Draw Black Chess"); peinture = new RadialgradIentPaint (pos_x-bessman_width / 2f, pos_y-bessman_width / 2f, radius_b * 2, fractions, couleurs_b); } ((Graphics2d) g) .setpaint (peinture); ((Graphics2d) g) .Filloval (pos_x-chessman_width / 2, pos_y-chessman_width / 2, Chessman_width, Chessman_width); }}}}}}}} Le code du module principal reste inchangé
Main.java
Package xchen.test.simplegobang; Importer Java.awt.Container; import javax.swing.jframe; import xchen.test.simplegobang.Drawchessboard; La classe publique Main étend JFrame {Private Drawchess Drawchessboard; public main () {drawchessboard = new Drawchessboard (); // Cadre Title Setttitle ("autonome goji"); Conteneur ContainerPane = getContentPane (); ContainerPane.Add (Drawchessboard); } public static void main (String [] args) {main m = new Main (); M.SetSize (800, 800); M.SetVisible (vrai); }}Exécutez-le!
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.