Als ich Javagui -Programmierung lernen wollte, schrieb ich ein kleines Spiel Goji.
Derzeit wurde nur eine eigenständige Version implementiert, und alles wird einfach produziert. Wenn Sie Fragen haben, geben Sie mir bitte einen Rat.
Die Schachbrett- und Schachstücke hier sind keine Bilder, und sie werden alle mit Grafiken in Java gezeichnet.
Der Quellcode wurde an GitHub übermittelt. Klicken Sie hier zum GitHub -Quellcode
Die folgende Liste der Gozi -Schachkategorien:
importieren java.awt.borderlayout; import Java.awt.color; import Java.awt.container; Import Java.awt.graphics; Import Java.awt.event.mouseevent; Import Java.awt.Event.mouselistener; javax.swing.joptionpane; öffentliche Klasse fünfinarow erweitert JFrame implementiert Mouselistener {vector v = new vector (); // alle Schachinformationen für jeden Schritt Vektor White = New Vector (); // White Chess Information Vector Black = New Vector (); // Schwarze Schachinformationen Boolean B; // wurde verwendet, um zu beurteilen, ob die weiße Flagge oder das schwarze Schach in Int WhiteCount, BlackCount; // Berechnen Sie die Anzahl der Bedauern Schachschritte int w = 25; // Abstandsgröße int px = 100, py = 100; // die Größe der Platine int pxw = px + w, pyw = py + w; int width = w * 16, Höhe = W * 16; int vline = width + px; // Die Länge der vertikalen Linie int hline = Höhe + Py; // Länge der horizontalen Linie/***Konstruktionsmethode*/public fiveinarow () {Super ("Stand-Alone Goji"); this.setDefaultCloseOperation (jframe.exit_on_close); // Button Container con = this.getContentPane (); con.setLayout (New BorderLayout ()); this.addmouselistener (this); // Hörer this.setSize (600, 600); // Setzen Sie die Formulargröße this.setbackground (color.orange); this.setvisible (true); }/*** Schachbrett und Schachstücke zeichnen* @param e*/public void Paint (Graphics g) {g.clearRect (0, 0, this.getWidth (), this.getheight ()); // Löschen Sie das Artboard G.SetColor (Farbe.Black) // Zeichnen Sie die GRID -Farbe G. Drawct (px, py, py, height, height, height, height, height, hauthaut, hauthaut, hauthaut, hauthaut, hauthaut, hauthaut, hauthaut -grid color g. G.Drawstring ("eigenständiges Gozi-Mini-Spiel, klicken Sie mit der rechten Maustaste, um Schach zu bedauern, willkommen zu verwenden", 180, 70); für (int i = 0; i <15; i ++) {g.drawline (pxw+i*w, py, pxw+i*w, hline); // jede horizontale und vertikale Linie g.drawline (px, pyw+i*w, vline, pyw+i*w); } für (int x = 0; x <v.size (); x ++) {String str = (string) v.get (x); String 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, 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 ("Es gibt bereits ein Schach!"); } else {v.add (x+"-"+y); this.Repaint (); if (v.size () % 2 == 0) {schwarz.add (x+"-"+y); this.victory (x, y, schwarz); // System.out.println ("schwarzes Schach"); } else {white.add (x+"-"+y); dieses. } // system.out.println (e.getX ()+"-"+e.gety ()); }} else {// system.out.println (e.getX ()+"-"+e.gety ()+"|"+x+"-"+y+"/t überschreitet die Grenze"); }} if (e.getButton () == e.button3) {// Methode, um mit der rechten Maustaste auf das Schach // system.out.println ("mit der rechten Maustaste auf das Schach zu klicken"); if (v.isempty ()) {joptionpane.showmessagedialog (this, "Es gibt kein Schach zu bedauern"); } else {if (v.size () % 2 == 0) {// urteilen, ob es sich um ein weißes Schach handelt, das das Schach bedauert, oder schwarzes Schach, das den Schach BlackCount ++ bereut; if (BlackCount> 3) {joptionpane.showmessagedialog (dies, "schwarzes Schach hat 3 Schritte bereut"); } else {v.remove (v.LastElement ()); this.Repaint (); }} else {whiteCount ++; if (whiteCount> 3) {joptionpane.showMessagedialog (dies hat "schwarzes Schach 3 Schritte" bereut); } else {v.remove (v.LastElement ()); this.Repaint (); }}}}}}} / ** * Methode, den Sieg zu beurteilen * @param x * @param y * @param enthält * / private void Victory (int x, int y, vector enthält) {int cv = 0; // Anzahl der Schachstücke in vertikaler Richtung int ch = 0; // Anzahl der horizontalen Schachstücke int ci1 = 0; // Anzahl der Schachstücke in Hangrichtung 1 int ci2 = 0; // Anzahl der Schachstücke in der Steigungrichtung 2 // Berechnen Sie die Anzahl der Schachstücke in horizontaler Richtung für (int i = 1; i <5; i ++) {if (contain.contains ((x+i)+"-"+y)) {ch ++; } else {break; }} für (int i = 1; i <5; i ++) {if (contain.contains ((xi)+"-"+y)) {ch ++; } else {break; }} // Berechnen Sie die Anzahl der Schachstücke in vertikaler Richtung für (int i = 1; i <5; i ++) {if (contain.contains (x+"-"+(y+i)) {cv ++; } else {break; }} für (int i = 1; i <5; i ++) {if (contain.contains (x+"-"+(yi))) {cv ++; } else {break; }} // Berechnen Sie die Anzahl der Schachstücke in der 45 ° -Scheiung für (int i = 1; i <5; i ++) {if (contain.contains ((x+i)+"-"+(y+i)) {CI1 ++; } else {break; }} für (int i = 1; i <5; i ++) {if (contain.contains ((xi)+"-"+(yi))) {ci1 ++; } else {break; }} // Berechnen Sie die Anzahl der Schachstücke in der 135 ° -Schange-Richtung für (int i = 1; i <5; i ++) {if (contain.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} für (int i = 1; i <5; i ++) {if (contain.contains ((x+i)+"-"+(yi)) {ci2 ++; } else {break; }} für (int i = 1; i <5; i ++) {if (contain.contains ((xi)+"-"+(y+i)) {ci2 ++; } else {break; }} if (ch> = 4 || cv> = 4 || ci1> = 4 || ci2> = 4) {System.out.println (v.size ()+"Schritt"); if (v.Size () % 2 == 0) {// urteilen, ob es schwarz oder weiß ist, JoptionPane.showMessagedialog (null, "schwarz") zu gewinnen; } else {joptionpane.showMessagedialog (null, "weiß"); } this.v.clear (); this.black.clear (); this.white.clear (); this.Repaint (); }} @Override public void mausented (MouseEvent e) {// Todo Auto-Generated-Methode Stub} @Override public void mousexited (MouEeEvent e) {// toDo auto-generierter Methode Stub} @override public void mouseressed (mousevent e) { / todo-modi-uaDrouved @{ / todo-kartuiertem modrevresed (modisevent e) { / todo-kartuatmodus} { / todo-modiGenrouTed (modisevent e) { / todo-modr. MouseSpressed (MouseEvent E) {// Todo automatisch generierter Methode Stub} @Override public void mouSereleased (MouseEvent e) {// Todo Auto-generierter Methode Stub}}}}}}}}}PS: Ich habe vor, eine weitere Online -Version von Goji zu schreiben, aber leider weiß ich nicht viel über das Internet in Java. Ich muss eine Weile studieren, bevor ich es weiter vervollständige und meine persönlichen Lernergebnisse testen kann.
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.