Quando eu estava prestes a aprender a programação Javagui, escrevi um pequeno jogo Goji.
Atualmente, apenas uma versão independente foi implementada e tudo é simplesmente produzido. Se você tiver alguma dúvida, me dê alguns conselhos.
O tabuleiro de xadrez e as peças de xadrez aqui não são imagens e todas são desenhadas usando gráficos em Java.
O código -fonte foi enviado ao Github, clique aqui para o código -fonte do GitHub
A lista a seguir de categorias de xadrez Gozi:
importar java.awt.borderlayout; importar java.awt.color; importar java.awt.container; importar java.awt.graphics; importar java.awt.event.mouseevent; import java.awt.event.MouseListener; import.java.util.Vector; javax.swing.JOptionPane; Public Class Cincoinarow estende JFrame implementa MouseListener {Vector V = new Vector (); // Todas as informações de xadrez para cada etapa vetor branco = new Vector (); // vetor de informações de xadrez branco preto = novo vetor (); // Informações sobre xadrez preto booleano B; // costumava julgar se a bandeira branca ou o xadrez preto int whitecount, BlackCount; // calcule o número de etapas de xadrez de arrependimento int w = 25; // tamanho de espaçamento int px = 100, py = 100; // o tamanho da placa int pxw = px + w, pyw = py + w; int width = W * 16, altura = W * 16; int vline = largura + px; // o comprimento da linha vertical int hline = altura + py; // comprimento da linha horizontal/***Método de construção*/public Fiveinarow () {super ("Goji independente"); this.setDefaultCloseoperation (jframe.exit_on_close); // Fechar o contêiner do botão con = this.getContentPane (); Con.SetLayout (new BorderLayout ()); this.addmouseListener (this); // Adicione o ouvinte this.SetSize (600, 600); // Defina o tamanho do formulário. this.setVisible (true); }/*** Desenhá a placa de xadrez e as peças de xadrez* @param e*/public void Paint (gráficos g) {g.clearrect (0, 0, this.getwidth (), this.gethEight ()); // limpe o g.dwrect G.setColor (color.black); G.DrawString ("Mini Goli Stand-Alone, clique com o botão direito do mouse para se arrepender do xadrez, bem-vindo ao uso", 180, 70); para (int i = 0; i <15; i ++) {g.drawline (pxw+i*w, py, pxw+i*w, hline); // cada linha horizontal e vertical g.drawline (px, pyw+i*w, vline, pyw+i*w); } para (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 ("já existe um xadrez!"); } else {v.add (x+"-"+y); this.Repaint (); if (v.size () % 2 == 0) {preto.add (x+"-"+y); this.victory (x, y, preto); // system.out.println ("xadrez preto"); } else {white.add (x+"-"+y); this.victory (x, y, branco); // system.out.println ("xadrez branco"); } // System.out.println (e.getx ()+"-"+e.gety ()); }} else {// System.out.println (e.getx ()+"-"+e.gety ()+"|"+x+"-"+y+"/t excede o limite"); }} if (e.getButton () == E.Button3) {// Método para clicar com o botão direito do mouse no xadrez // System.out.println ("Clique com o botão direito do mouse no xadrez"); if (v.isEmpty ()) {JoptionPane.ShowMessagedialog (isto, "não há xadrez para se arrepender"); } else {if (v.size () % 2 == 0) {// julga se é um xadrez branco que se arrepende do xadrez, ou o xadrez preto se arrependendo do xadrez preto BlackCount ++; if (BlackCount> 3) {JoptionPane.showMessagedialog (isto, "O xadrez preto lamentou 3 etapas"); } else {v.Remove (v.LastElement ()); this.Repaint (); }} else {whitecount ++; if (whitecount> 3) {joptionpane.showMessagedialog (isto, "o xadrez preto lamentou 3 etapas"); } else {v.Remove (v.LastElement ()); this.Repaint (); }}}}}}} / ** * Método para julgar a vitória * @param x * @param y * @param // número de peças de xadrez na direção vertical int ch = 0; // Número de peças de xadrez horizontal int Ci1 = 0; // número de peças de xadrez na direção da inclinação 1 int ci2 = 0; // Número de peças de xadrez na direção da inclinação 2 // Calcule o número de peças de xadrez na direção horizontal para (int i = 1; i <5; i ++) {if (conter.contains ((x+i)+"-"+y)) {ch ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contenha.contains ((xi)+"-"+y)) {ch ++; } else {break; }} // Calcule o número de peças de xadrez na direção vertical para (int i = 1; i <5; i ++) {if (contenha.contains (x+"-"+(y+i))) {cv ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contenha.contains (x+"-"+(yi))) {cv ++; } else {break; }} // Calcule o número de peças de xadrez na direção inclinada de 45 ° para (int i = 1; i <5; i ++) {if (contenha.contains ((x+i)+"-"+(y+i))) {ci1 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contenha.contains ((xi)+"-"+(yi))) {ci1 ++; } else {break; }} // Calcule o número de peças de xadrez na direção da inclinação de 135 ° para (int i = 1; i <5; i ++) {if (contenha.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contenha.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} para (int i = 1; i <5; i ++) {if (contenha.contains ((xi)+"-"+(y+i))) {Ci2 ++; } else {break; }} if (ch> = 4 || cv> = 4 || ci1> = 4 || ci2> = 4) {system.out.println (v.size ()+"step"); if (v.size () % 2 == 0) {// julgar se é preto ou branco para ganhar JoptionPane.ShowMessagedialog (nulo, "preto"); } else {JoptionPane.showMessagedialog (null, "White"); } this.v.clear (); this.black.clear (); this.white.clear (); this.Repaint (); }} @Override public void MouseEntered (mouseevent e) {// TODO Método Geral Goletomado} @Override public void mouseexited (mouseevent e) {// Método a @AmToToTride Auto-gestoDro-TuB-GORIDR AUTOODROUD AUTROOD AUTOMUDO AUTOMUDO AUTO AUTOMUDO AUMOOD-GOURODRIDEAD (Mousevent E) { MousePressed (Mouseevent e) {// ToDO Method Stub} @Override public void MousereledEd (Mouseevent e) {// ToDO GEERATEADO MÉTODO}}}PS: pretendo escrever outra versão on -line do Goji, mas infelizmente não sei muito sobre a Internet em Java. Tenho que estudar por um tempo antes de continuar a concluí -lo e testar meus resultados de aprendizado pessoal.
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.