Когда я собирался изучать программирование Javagui, я написал маленькую игру Goji.
В настоящее время была реализована только отдельная версия, и все просто производится. Если у вас есть какие -либо вопросы, пожалуйста, дайте мне несколько советов.
Шахматные и шахматные кусочки здесь не изображения, и все они нарисованы с использованием графики в Java.
Исходный код был отправлен в GitHub, нажмите здесь, чтобы GitHub Source Code
Следующий список категорий шахмат Gozi:
Импорт java.awt.borderlayout; import java.awt.color; import java.awt.container; импорт java.awt.graphics; импорт java.awt.event.mouseevent; импорт java.awt.event.mouseListener; импорт java.Util.vector; импорт. javax.swing.joptionpane; открытый класс FiveInarow расширяет JFrame реализует MouseListener {Vector v = new Vector (); // Вся шахматная информация для каждого шага -вектора White = new Vector (); // Белый шахматный вектор Black = new Vector (); // черная шахматная информация логическая B; // используется, чтобы судить, является ли белый флаг или черный шахмат Int WhiteCount, BlackCount; // Рассчитайте количество шахматных шагов сожаления int w = 25; // размер интерната int px = 100, py = 100; // размер платы int pxw = px + w, pyw = py + w; int width = W * 16, высота = W * 16; int vline = width + px; // длина вертикальной линии int hline = height + py; // длина горизонтальной линии/***Метод строительства*/public fiveInarow () {super ("отдельный годжи"); this.setDefaultCloseoPeration (jframe.exit_on_close); // Кнопка Close Container con = this.getContentPane (); con.setlayout (new Borderlayout ()); this.addmouseListener (это); // добавить прослушиватель this.setsize (600, 600); // Установить размер формы this.setbackground (color.orange); this.setvisible (true); }/*** Нарисуйте шахматную плату и шахматные кусочки* @param e*/public void paint (графика g) {g.clearrect (0, 0, this.getwidth (), this.getheight ()); // Очистить артборд G.setcolor (цвет. G.DrawString («Mandone Antone Gozi Mini Game, щелкнуть правой кнопкой мыши, чтобы сожалеть о шахматах, добро пожаловать», 180, 70); for (int i = 0; i <15; i ++) {g.drawline (pxw+i*w, py, pxw+i*w, hline); // каждая горизонтальная и вертикальная линия g.drawline (px, pyw+i*w, vline, pyw+i*w); } for (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 ("Уже есть шахматы!"); } else {v.add (x+"-"+y); this.repaint (); if (v.size () % 2 == 0) {black.add (x+"-"+y); this.victory (x, y, black); // system.out.println ("черные шахматы"); } else {white.add (x+"-"+y); this.victory (x, y, white); // system.out.println ("Белые шахматы"); } // System.out.println (e.getx ()+"-"+e.gety ()); }} else {// System.out.println (e.getx ()+"-"+e.gety ()+"|"+x+"-"+y+"/t превышает границу"); }} if (e.getbutton () == e.button3) {// Метод для правой кнопки «Шахматы // system.out.println» («Щелкните правой кнопкой мыши шахмат-шахматы»); if (v.isempty ()) {joptionpane.showmessageDialog (это, "нет шахмат, чтобы сожалеть"); } else {if (v.Size () % 2 == 0) {// Судья, является ли это белым шахматом, сожалеющим о шахматах, или черные шахматы сожалеют о шахмате BlackCount ++; if (blackcount> 3) {joptionpane.showmessageDialog (это, «Черные шахматы сожалели 3 шага»); } else {v.remove (v.lastelement ()); this.repaint (); }} else {WhiteCount ++; if (WhiteCount> 3) {joptionPane.showmessageDialog (это, «Черные шахматы сожалели 3 шага»); } else {v.remove (v.lastelement ()); this.repaint (); }}}}}}} / ** * Метод для оценки победы * @param x * @param y * @param содержит * / private void Victory (int x, int y, вектор содержит) {int cv = 0; // количество шахматных кусочков в вертикальном направлении int ch = 0; // количество горизонтальных шахматных кусочков int ci1 = 0; // количество шахматных кусочков в направлении наклона 1 int ci2 = 0; // Количество шахматных кусочков в направлении наклона 2 // Рассчитайте количество шахматных кусочков в горизонтальном направлении для (int i = 1; i <5; i ++) {if (содержит.contains ((x+i)+"-"+y)) {ch ++; } else {break; }} for (int i = 1; i <5; i ++) {if (sack.contains ((xi)+"-"+y)) {ch ++; } else {break; }} // Рассчитайте количество шахматных кусочков в вертикальном направлении для (int i = 1; i <5; i ++) {if (sange.contains (x+"-"+(y+i)))) {cv ++; } else {break; }} for (int i = 1; i <5; i ++) {if (sack.contains (x+"-"+(yi))) {cv ++; } else {break; }} // Рассчитайте количество шахматных кусочков в наклонном направлении 45 ° для (int i = 1; i <5; i ++) {if (sack.contains ((x+i)+"-"+(y+i))) {ci1 ++; } else {break; }} for (int i = 1; i <5; i ++) {if (sack.contains ((xi)+"-"+(yi))) {ci1 ++; } else {break; }} // Рассчитайте количество шахматных кусочков в направлении наклона 135 ° для (int i = 1; i <5; i ++) {if (sack.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} for (int i = 1; i <5; i ++) {if (sack.contains ((x+i)+"-"+(yi))) {ci2 ++; } else {break; }} for (int i = 1; i <5; i ++) {if (sack.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) {// Судья, чернокожие или белые, чтобы выиграть joptionpane.showmessageDialog (null, "black"); } else {joptionpane.showmessageDialog (null, "white"); } this.v.clear (); this.black.clear (); this.white.clear (); this.repaint (); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void MousePressed (MouseEvent e) {// TODO Auto Generated Method Stub} @Override public void mouserealeedEleade (mouseevent e) {// todo Автогенерированный метод stub}}}}}}}}}}}PS: Я планирую написать еще одну онлайн -версию Goji, но, к сожалению, я мало знаю о Интернете в Java. Я должен учиться некоторое время, прежде чем продолжать завершать его и проверить свои личные результаты обучения.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.