Im vorherigen Artikel geht es darum, dass Java die beiden Gozi -Schachspiele (2) das Schachbrett zeichnet, und das Schachbrett wurde gezogen. Als nächstes müssen wir die Steuerfunktion, die Hauptfunktionen, implementieren:
1) Wählen Sie ein Schachstück
2) Schachstücke zeichnen
3) Beurteilen Sie den Gewinner
4) Schach austauschen
Erkenne zuerst den Teil des Schachstücks Zeichnung
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Definieren Sie zuerst eine Schachklasse. Diese Klasse hat zwei Attribute: die Farbe des Stücks (0- bedeutet schwarz und 1- bedeutet weiß) und ob ich einen Schritt machen soll (ich habe vor, ein zweidimensionales Array zu verwenden, um die Turninformationen des Schachstücks zu speichern)
Chessman.java
Paket xchen.test.simlegobang; öffentliche Klasse Chessman {private int color; // 1-White, 0-schwarz private boolean platziert = false; public chessman (int color, boolean platziert) {this.color = color; this.placed = platziert; } public boolean getPlace () {return platziert; } public void setPlate (boolean platziert) {this.placed = platziert; } public int getColor () {return color; } public void setColor (int color) {this.color = color; }} Dann haben wir den Code -Teil des Schachbretts im vorherigen Teil gezeichnet und den Code zum Zeichnen von Schachstücken hinzugefügt. Ich benutzte zwei Schachstücke (ein Weiß und ein Schwarz, im Schachbrett [8, 8], [7, 7]), um den Code zum Zeichnen von Schachstücken zu testen.
Drawchessboard.java
Paket xchen.test.simlegobang; importieren 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; öffentliche Klasse Drawchessboard erweitert jpanel {endgültige statische int schwarz = 0; endgültige statische int weiß = 1; public int chesscolor = schwarz; öffentliches Image Boardimg; endgültige private intreihen = 19; Chessman [] [] schachstatus = neuer Schachmann [Zeilen] [Zeilen]; public drawchessboard () {boardimg = toolkit.getDefaulttoolkit (). getImage ("res/Drawable/chessboard2.png"); if (boardimg == null) system.err.println ("PNG nicht existieren"); // testen zeichnen chessman Teil einfacher chessman chessman = new chessman (0, true); Schachstatus [7] [7] = Chessman; Chessman Chessman2 = neuer Chessman (1, wahr); Schachstatus [8] [8] = Chessman2; // Testen Sie den Chessman Part Simple} @Override Protected void PaintComponent (Graphics g) {// Todo automatisch generierte Methode 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/Zeilen; int span_y = imgHeight/Zeilen; // Horizontale Zeile für (int i = 0; i <Zeilen; i ++) {g.drawline (x, y+i*span_y, fwidth-x, y+i*span_y); } // vertikale Zeile zeichnen (int i = 0; i <Zeilen; i ++) {g.drawline (x+i*span_x, y, x+i*span_x, fheight-y); } // Schachstücke zeichnen für (int i = 0; i <Zeilen; i ++) {für (int j = 0; j <Zeilen; j ++) {if (chessstatus [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 [] fraktions = new float [] {0f, 1f}; java.awt.color [] colors_b = new java.awt.color [] {color.black, color.white}; Color [] colors_w = new color [] {color.white, color.black}; RadialgradientPaint -Farbe; if (chessstatus [i] [j] .getColor () == 1) {System.out.println ("weißes Schach zeichnen"); Paint = new radialgradientPaint (POS_X-CHESSMAN_WIDTH/2F, POS_Y-CHESSMAN_WIDTH/2F, radius_w*2, Fraktionen, Colors_W); } else {System.out.println ("Schwarzes Schach zeichnen"); Paint = new radialgradientPaint (POS_X-CHESSMAN_WIDTH/2F, POS_Y-CHESSMAN_WIDTH/2F, radius_b*2, Fraktionen, Colors_B); } ((Graphics2d) g) .setPaint (Farbe); ((Graphics2d) g) .filloval (pos_x-chessman_width/2, pos_y-chessman_width/2, chessman_width, chessman_width); }}}}}}}} Der Hauptmodulcode bleibt unverändert
Main.java
Paket xchen.test.simlegobang; import Java.awt.Container; importieren javax.swing.jframe; import xchen.test.simlegobang.drawchessboard; öffentliche Klasse Main erweitert JFrame {private Drawchessboard Drawchessboard; public main () {drawchStboard = new Drawchessboard (); // Rahmen Titel settitle ("Stand-Alone Goji"); Container ContainerPane = getContentPane (); Containerpane.add (Drawchessboard); } public static void main (String [] args) {main m = new Main (); M.Setsize (800, 800); m.setvisible (true); }}Lauf es!
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.