本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下
包gyb.exam; import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Point;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter; import Java.awt.event.mouseevent; import Java.util.arraylist; import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.border.titledborder;公共类大型机扩展了Jframe {private static int big = 15;私人静态最终int = 25;私有静态最终int start = 10;私有静态int x = big*start/2;私有静态int y = big*start/2;私有int hl = big*一个+启动;私人静态布尔iSblack; canvasframe canvas = new canvasframe(); canvasframe可以图形G; public mainframe(){init(); }私人点; private arraylist <point> blacklist = new ArrayList <point>(); private arraylist <point> flayelist = new ArrayList <point>(); private void init(){jmenubar bar = new jmenubar(); setjmenubar(bar);设定(600,600); settitle(“五子棋”); jmenu菜单= new Jmenu(“ game”); bar.add(菜单); jmenuitem start = new Jmenuitem(“ start”); jmenuitem end = new Jmenuitem(“棋盘大小”); end.AddactionListener(new ActionListener(){public void ActionPerformed(actionEvent e){}}); jmenuitem续订= 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();}});菜单add(start);菜单add(续订);菜单add(end);菜单add(退出); setLayout(new BorderLayout()); add(borderlayout.center,createCenter());添加(borderlayout.east,createeast()); }私人布尔伊斯温(arrayList <point> list){int x; int y; int idx = 0;循环:for(点P:列表){x = px; y = py; idx = 0; while(list.contains(新点(x,y))){idx ++; X = X-ONE; if(idx == 5)休息循环; } x = px; y = py; idx = 0; while(list.contains(新点(x,y))){idx ++; y = y-one; if(idx == 5)休息循环; } x = px; y = py; idx = 0; while(list.contains(新点(x,y))){idx ++; X = X-ONE; y = y-one; if(idx == 5)休息循环; } x = px; y = py; idx = 0; while(list.contains(新点(x,y))){idx ++; X = X-ONE; y = y+一个; if(idx == 5)休息循环; }}返回idx == 5; }私有jpanel createAst(){jpanel pane = new jpanel(); borderlayout border = new borderlayout(); pane.setlayout(border); pane.setborder(new titleborder(“五子棋”));图标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());返回窗格; }私人jpanel ballcolor(){jpanel pane = new jpanel(); pane.setlayout(new BorderLayout()); can = new CanvasFrame(){public void Paint(Graphics G){G.setColor(color.pink); G.Fillect(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);返回窗格; } 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(new titleborder(“”)); 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){loop:if(e.getButton()== mouseeevent.button.button1){x = e.getx(e.getx() if(! whitelist.Add(点); canvas.repaint(); Pane.Add(画布);返回窗格; } public static void main(string [] args){mainframe frame = new mainframe(); frame.center(frame); frame.pack(); frame.setvisible(true); } public void Center(Jframe Frame){// Toolkit是当前工具箱= Toolkit = toolkit.getDefaultToolKit();尺寸屏幕= toolkit.getScreensize(); //屏幕的宽高int framewidth = frame.getWidth(); int framehigh = frame.getheight(); int x =(屏幕。 int y =(screen.height-framehigh)/2; frame.setlocation(x,y); }类CanvasFrame扩展了Jpanel {public void Paint(graphics 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+一个){for(int j = start; j <= hl; j = j+one){g.drawline(i,j,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,j,i,i,hl); }} g.setColor(color.yellow); G.DrawRect(start/2,start/2,HL+1,HL+1); G.setColor(color.black); for(点点:黑名单){g.filloval(point.x,point.y,20,25); } g.setColor(color.White); for(点点:白名单){g.filloval(point.x,point.y,20,25); }}}}}效果图:
以上所述就是本文的全部内容了,Java有所帮助。