本文实例讲述了 Java 实现的五子棋游戏代码 分享给大家供大家参考 , 具体代码如下
пакет gyb.exam; Импорт java.awt.borderlayout; import java.awt.color; import java.awt.dimension; импорт java.awt.font; импорт java.awt.graphics; импорт java.awt.point; import java.awt.toolkit; import.avavent.actionEv. java.awt.event.mouseadapter; import java.awt.event.mouseevent; импорт java.util.arraylist; Импорт javax.swing.icon; import javax.swing.imageicon; импорт javax.swing.jbutton; импорт javax.swing.jframe; импорт javax.swing.jlabel; импорт javax.swing.jmen javax.swing.jpanel; импортировать javax.swing.border.titledborder; Общедоступный класс Mainframe расширяет jframe {private static int big = 15; Частный статический конечный финал int = 25; Частный статический финальный старт int = 10; Частный статический int x = big*start/2; частный статический int y = big*start/2; private int hl = big*one+start; частный статический логический ISBLACK; Canvasframe canvas = new Canvasframe (); Canvasframe Can; Графика G; public manicframe () {init (); } частная точка; Private ArrayList <popt> BlackList = new ArrayList <popt> (); Private ArrayList <popt> WhiteList = new ArrayList <opt> (); private void init () {jmenubar bar = new jmenubar (); SetJmenubar (бар); setSize (600 600); Посещение ("五子棋"); Jmenu Menu = new Jmenu ("Game"); bar.add (меню); Jmenuitem start = new jmenuitem ("start"); Jmenuitem end = new jmenuitem ("棋盘大小"); end.addactionListener (new ActionListener () {public void actionPerformed (actionEvent e) {}}); Jmenuitem rebend = new jmenuitem ("重新开始"); Jmenuitem exit = new jmenuitem ("退出"); exit.addactionListener (new ActionListener () {public void actionPerformed (actionEvent e) {System.Exit (0);}}); renew.AddactionListener (new ActionListener () {public void actionPerformed (actionEvent e) {blacklist.clear (); Whitelist.clear ();}}); Menu.Add (Start); Menu.Add (обновление); menu.add (end); Menu.Add (выход); setlayout (new Borderlayout ()); add (borderlayout.center, createcenter ()); Добавить (Borderlayout.east, createeast ()); } private Boolean Iswin (ArrayList <point> list) {int x; int y; int idx = 0; Loop: для (точка P: List) {x = px; y = py; idx = 0; while (list.contains (new Point (x, y))) {idx ++; x = x-one; if (idx == 5) разорвать петлю; } x = px; y = py; idx = 0; while (list.contains (new Point (x, y))) {idx ++; y = y-one; if (idx == 5) разорвать петлю; } x = px; y = py; idx = 0; while (list.contains (new Point (x, y))) {idx ++; x = x-one; y = y-one; if (idx == 5) разорвать петлю; } x = px; y = py; idx = 0; while (list.contains (new Point (x, y))) {idx ++; x = x-one; y = y+One; if (idx == 5) разорвать петлю; }} return idx == 5; } private jPanel createeast () {jpanel pane = new jpanel (); Borderlayout border = new Borderlayout (); pane.setlayout (граница); pane.setborder (новый название workborder ("五子棋")); Icon Image = new ImageICon (getClass (). GetResource ("mm.png")); pane.add (borderlayout.north, new jlabel (image, jlabel.center)); pane.add (borderlayout.center, ballcolor ()); pane.add (borderlayout.south, button ()); панель возврата; } private jpanel ballcolor () {jpanel pane = new jpanel (); pane.setlayout (new Borderlayout ()); can = new CanvasFrame () {public void Paint (Graphics G) {g.setColor (color.pink); G.FillRect (1, 1 200 300); g.setfont (новый шрифт ("sans", font.bold, 20)); g.setcolor (color.black); G.Filloval (55, 20,25,30); G.DrawString ("黑子", 10, 43); g.setcolor (color.white); G.Filloval (55, 60,25,30); G.DrawString ("白子", 10, 83); if (isblack) {g.setcolor (color.black); G.DrawString ("黑方落子", 5, 120); } else {g.setcolor (color.white); G.DrawString ("白方落子", 5120); } can.repaint (); }}; pane.add (borderlayout.center, can); панель возврата; } private JPanel Button () {jPanel pane = new jPanel (); Borderlayout bor = new Borderlayout (); Jbutton start = new jbutton ("开始"); Jbutton end = new jbutton ("结束"); end.addactionListener (new ActionListener () {public void actionPerformed (actionEvent e) {System.Exit (0);}}); pane.setlayout (bor); bor.setvgap (5); pane.setborder (новый название gorborder ("")); pane.add (borderlayout.north, start); pane.add (borderlayout.south, end); панель возврата; } private jPanel createCenter () {jPanel pane = new jPanel (); canvas.setPreferredSize (новое измерение (HL+10, HL+10)); Canvas.AddMouseListener (new MouseAdapter () {public void mouseClicked (mouseEvent e) {петля: if (e.getbutton () == mouseevent.button1) {x = e.getx (); y = e.get (); int x = (x/one)*One; y y = (y/ye)*y); if (! (Blacklist.contains (point) || whitelist.contains (point))) {if (isblack) {blacklist.add (point); if (iswin (Whitelist)) }); pane.add (Canvas); панель возврата; } public static void main (string [] args) {manaframe frame = new manainframe (); Frame.center (Frame); Frame.pack (); Frame.SetVisible (true); } public void Center (jframe Frame) {// Toolkit 是当前 绘图系统集合工具包 Toolkit toolkit = toolkit.getDefaulttoolkit (); Dimension Screen = toolkit.getScreensize (); // 屏幕的宽高 int frameWidth = frame.getWidth (); int frameHigh = frame.getheight (); int x = (screen.width-framewidth)/2; int y = (screen.height-framehigh)/2; Frame.SetLocation (x, y); } class canvasframe extends jpanel {public void paint (графика g) {g.setcolor (color.pink); G.FillRect (0, 0, HL+20, HL+20); g.setcolor (color.black); for (int i = start; i <= hl; i = i+one) {for (int j = start; j <= hl; j = j+one) {g.drawline (i, j, hl, j); }} for (int i = start; i <= hl; i = i+one) {for (int j = start; j <= hl; j = j+one) {g.drawline (i, j, i, hl); }} g.setcolor (color.olely); g.drawrect (start/2, start/2, hl+1, hl+1); g.setcolor (color.black); для (точка точки: черный список) {g.filloval (point.x, point.y, 20, 25); } g.setcolor (color.white); для (точка точки: белый список) {g.filloval (point.x, point.y, 20, 25); }}}}效果图 :
以上所述就是本文的全部内容了 , 希望能够对大家熟练掌握 java 有所帮助。