Java 实现的五子棋游戏代码 , 分享给大家供大家参考 , 具体代码如下
pacote gyb.exam; importar java.awt.borderlayout; importar java.awt.color; importar java.awt.dimension; importar java.awt.font; importar java.awt.graphics; importetawt. java.awt.event.mouseAdapter; importar java.awt.event.mouseevent; importar java.util.arraylist; importar javax.swing.icon; importar javax.swing.imageicon; importar javax.swing.jbutton; importar javax.swing.jframe; importar javax.swing.jlabel; import javax.swing.jmenu; import javax.enwing.jmenubar; importx.swing.swing.jmenu; import javax.enwing.jmenubars; importmax.swing.swing.senu; importação javax.jmenubar; importmax.swing.jmenu; import javax.enwing.jmenubars; importmax.swing.swing.senu; importação javax.jmenubart; importmax.swing.jmenu; importação javax.jmenubart; import.swing.swing.senu; importação javax.jmenubart; import.swing.swing.wing; javax.swing.jpanel; importar javax.swing.border.titledborder; classe pública mainframe estende jframe {private static int big = 15; private estático final int one = 25; private estático final int start = 10; estático privado int x = grande*start/2; estático privado int y = grande*start/2; privado int hl = grande*um+start; Isblack booleano estático privado; Canvasframe Canvas = new CanvasFrame (); Canvasframe pode; Gráficos G; public mainframe () {init (); } ponto privado ponto; Private ArrayList <Point> BlackList = new ArrayList <Point> (); Private ArrayList <Point> whitelist = new ArrayList <Point> (); private void init () {jmenubar bar = new jmenubar (); setjmenubar (bar); SetSize (600.600); Settitle ("五子棋"); Jmenu Menu = New Jmenu ("Game"); bar.add (menu); Jmenuitem start = new jmenuitem ("start"); Jmenuitem end = new jmenuitem ("棋盘大小"); end.addactionListener (new ActionListener () {public void ActionPerformed (ActionEvent E) {}}); Jmenuitem renow = 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 (renovação); menu.add (final); menu.add (saída); setLayout (new BorderLayout ()); add (borderlayout.center, createCenter ()); add (borderlayout.east, createeast ()); } Private Boolean Iswin (Lista de ArrayList <Ponto>) {int x; int y; int idx = 0; Loop: para (ponto P: list) {x = px; y = py; idx = 0; while (list.contains (novo ponto (x, y))) {idx ++; x = x-one; if (idx == 5) loop de quebra; } x = px; y = py; idx = 0; while (list.contains (novo ponto (x, y))) {idx ++; y = y-one; if (idx == 5) loop de quebra; } x = px; y = py; idx = 0; while (list.contains (novo ponto (x, y))) {idx ++; x = x-one; y = y-one; if (idx == 5) loop de quebra; } x = px; y = py; idx = 0; while (list.contains (novo ponto (x, y))) {idx ++; x = x-one; y = y+um; if (idx == 5) loop de quebra; }} retornar idx == 5; } private jpanel createEast () {jpanel pane = new jpanel (); BorderLayout Border = new BorderLayout (); painel.setLayout (borda); pane.setborder (novo Titledborder ("五子棋")); ICON Image = new Imageicon (getClass (). GetResource ("mm.png")); pane.add (borderlayout.north, new jlabel (imagem, jlabel.center)); pane.add (borderlayout.center, ballcolor ()); pane.add (borderlayout.south, button ()); painel de retorno; } private jpanel ballcolor () {jpanel pane = new jpanel (); pane.setLayout (new BorderLayout ()); can = new CanvasFrame () {public void Paint (gráficos g) {g.setColor (color.pink); G.FillRect (1, 1.200.300); G.SetFont (New Font ("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 ("白方落子", 5.120); } can.Repaint (); }}; pane.add (borderlayout.center, can); painel de retorno; } 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 (novo TitledDer ("")); pane.add (borderlayout.north, start); pane.add (borderlayout.south, fim); painel de retorno; } private jpanel createCenter () {jpanel pane = new jpanel (); Canvas.setPreferredSize (nova dimensão (HL+10, HL+10)); canvas.addmouselistener (new mouseAdapter () {public void mouseclicked (mouseevent e) {loop: if (e.getButton () == mouseEvent.button1) {x = e.getx (); y = e.gety (); int x = (x/one)*1; if (! Blacklist.Contains (Point) || Whitelist.Contains (Point)) {if (isblack) {Blacklist.add (Point); Whitelist.Add (Point); canvas.Repaint (); painel.add (tela); painel de retorno; } public static void main (string [] args) {mainframe frame = new mainframe (); frame.Center (quadro); frame.pack (); frame.setVisible (true); } public void Center (JFrame Frame) {// Toolkit 是当前 绘图系统集合工具包 Toolkit Toolkit = Toolkit.getDefaultToolkit (); Tela dimension = ferramentakit.getScreenSize (); // 屏幕的宽高 int ardwidth = frame.getWidth (); int estruturahigh = frame.getHeight (); int x = (screen.width-framewidth)/2; int y = (screen.Height-frameHigh)/2; frame.setLocation (x, y); } classe Canvasframe estende JPanel {public void Paint (gráficos g) {g.setColor (color.pink); G.FillRect (0, 0, HL+20, HL+20); g.setColor (color.black); para (int i = start; i <= hl; i = i+um) {for (int j = start; j <= hl; j = j+um) {g.drawline (i, j, hl, j); }} para (int i = start; i <= hl; i = i+um) {for (int j = start; j <= hl; j = j+um) {g.drawline (i, j, i, hl); }} g.setColor (color.yellow); G.DrawRect (START/2, START/2, HL+1, HL+1); g.setColor (color.black); para (ponto de ponto: lista negra) {g.Filloval (Point.x, Point.Y, 20, 25); } g.setColor (color.white); para (ponto Point: Whitelist) {G.FillOval (Point.x, Point.Y, 20, 25); }}}}效果图
以上所述就是本文的全部内容了 , 希望能够对大家熟练掌握 java 有所帮助。