Quand j'étais sur le point d'apprendre la programmation Javagui, j'ai écrit un petit jeu Goji.
Actuellement, seule une version autonome a été mise en œuvre et tout est simplement produit. Si vous avez des questions, veuillez me donner quelques conseils.
Les pièces d'échecs et les pièces d'échecs ici ne sont pas des images, et elles sont toutes dessinées en utilisant des graphiques en Java.
Le code source a été soumis à GitHub, cliquez ici sur le code source GitHub
La liste suivante des catégories d'échecs Gozi:
import java.awt.borderlayout; importer java.awt.color; import java.awt.connainer; import java.awt.graphics; import java.awt.event.mouseevent; import java.awt.event.mouseListener; import java.util.vector; import javax.swing.jframe; import; javax.swing.joptionpane; la classe publique cinqInarow étend JFrame implémente MouseListener {vector v = new vector (); // Toutes les informations d'échecs pour chaque étape vectorielle blanc = new vector (); // Vector d'information des échecs blancs noir = nouveau vecteur (); // Black Chess Information Boolean B; // Utilisé pour juger si le drapeau blanc ou les échecs noirs Int Whitecount, BlackCount; // Calculez le nombre d'étapes d'échecs de regret int w = 25; // taille d'espacement int px = 100, py = 100; // la taille de la carte int pxw = px + w, pyw = py + w; int largeur = w * 16, hauteur = w * 16; int vline = largeur + px; // la longueur de la ligne verticale int hline = hauteur + py; // Longueur de la ligne horizontale / ** * Méthode de construction * / public FiveInarow () {Super ("auto-alone goji"); this.setDefaultCloseOperation (jframe.exit_on_close); // Contracter le conteneur Con = this.getContentPane (); con.setLayout (new BorderLayout ()); this.addmouseListener (this); // ajouter l'écouteur this.setSize (600, 600); // définir la taille du formulaire this.setbackground (Color.Orange); this.setVisible (true); } / ** * Dessiner des pièces d'échecs et des pièces d'échecs * @param e * / public void peinture (graphiques g) {g.ClearRect (0, 0, this.getWidth (), this.getheight ()); // effacer le bilan g.setColor (Color.Black); // Draw the Grid Color G.Drawrect (px, py, width, height); G.Drawstring ("Mini jeu Gozi autonome, clic droit aux échecs, bienvenue à l'utilisation", 180, 70); pour (int i = 0; i <15; i ++) {g.drawline (pxw + i * w, py, pxw + i * w, hline); // chaque ligne horizontale et verticale g.drawline (px, pyw + i * w, vline, pyw + i * w); } pour (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 ("Il y a déjà un échec!"); } else {v.add (x + "-" + y); this.repaint (); if (v.size ()% 2 == 0) {Black.add (x + "-" + y); this.victory (x, y, noir); // system.out.println ("échec noir"); } else {white.add (x + "-" + y); this.victory (x, y, blanc); // System.out.println ("Échecs blanc"); } // system.out.println (e.getx () + "-" + e.gety ()); }} else {// system.out.println (e.getx () + "-" + e.gety () + "|" + x + "-" + y + "/ t dépasse la limite"); }} if (e.getButton () == E.Button3) {// Méthode pour cliquer avec le bouton droit sur les échecs // System.out.println ("cliquez avec le bouton droit aux échecs - échecs"); if (v.isempty ()) {joptionpane.showMessageDialog (ceci, "il n'y a pas d'échecs à regretter"); } else {if (v.size ()% 2 == 0) {// juger si c'est un échec blanc regrette les échecs, ou les échecs noirs regrettent le blackCount ++ des échecs; if (BlackCount> 3) {joptionpane.showMessageDialog (ceci, "les échecs noirs ont regretté 3 étapes"); } else {v.Remove (v.lastelement ()); this.repaint (); }} else {whiteCount ++; if (whiteCount> 3) {joptionpane.showMessageDialog (ceci, "les échecs noirs ont regretté 3 étapes"); } else {v.Remove (v.lastelement ()); this.repaint (); }}}}}}} / ** * Méthode pour juger la victoire * @param x * @param y * @param contient * / private void Victory (int x, int y, vector contient) {int cv = 0; // Nombre de pièces d'échecs dans le sens vertical int ch = 0; // Nombre de pièces d'échecs horizontales int CI1 = 0; // Nombre de pièces d'échecs dans la direction de la pente 1 int ci2 = 0; // Nombre de pièces d'échecs dans la direction de la pente 2 // Calculez le nombre de pièces d'échecs dans la direction horizontale pour (int i = 1; i <5; i ++) {if (contenant.contains ((x + i) + "-" + y)) {ch ++; } else {break; }} pour (int i = 1; i <5; i ++) {if (contenant.contains ((xi) + "-" + y)) {ch ++; } else {break; }} // Calculez le nombre de pièces d'échecs dans la direction verticale pour (int i = 1; i <5; i ++) {if (contenant.contains (x + "-" + (y + i))) {cv ++; } else {break; }} pour (int i = 1; i <5; i ++) {if (contenant.contains (x + "-" + (yi)))) {cv ++; } else {break; }} // Calculez le nombre de pièces d'échecs dans la direction inclinée à 45 ° pour (int i = 1; i <5; i ++) {if (contenant.contains ((x + i) + "-" + (y + i)))) {ci1 ++; } else {break; }} pour (int i = 1; i <5; i ++) {if (contenant.contains ((xi) + "-" + (yi))) {ci1 ++; } else {break; }} // Calculez le nombre de pièces d'échecs dans la direction de la pente 135 ° pour (int i = 1; i <5; i ++) {if (contenant.contains ((x + i) + "-" + (yi)))) {ci2 ++; } else {break; }} pour (int i = 1; i <5; i ++) {if (contenu.contains ((x + i) + "-" + (yi))) {ci2 ++; } else {break; }} pour (int i = 1; i <5; i ++) {if (contenant.contains ((xi) + "-" + (y + i))) {ci2 ++; } else {break; }} if (ch> = 4 || cv> = 4 || ci1> = 4 || ci2> = 4) {System.out.println (v.size () + "étape"); if (v.size ()% 2 == 0) {// juger s'il est noir ou blanc de gagner joptionpane.showMessagealialog (null, "noir"); } else {joptionpane.showMessageDialog (null, "blanc"); } this.v.clear (); this.black.clear (); this.white.clear (); this.repaint (); }} @Override public void muouseentered (mouseevent e) {// Todo Méthode générée automatiquement Stub} @Override public void MouseExit (Mouseevent e) {// Todo Généré Auto-généré Stub} @Override Public Void Mousreprim (MouseEvent E) {// TODO Généré par la méthode générée automatique Mousprimé (MouseEvent E) {// TODO Méthode générée automatique Stub} @Override public void MouseLelent (Mouseevent E) {// TODO Méthode générée automatiquement Stub}}PS: Je prévois d'écrire une autre version en ligne de Goji, mais malheureusement, je ne connais pas grand-chose sur Internet à Java. Je dois étudier pendant un certain temps avant de continuer à le terminer et à tester mes résultats d'apprentissage personnel.
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.