本文实例讲述了java实现的五子棋游戏代码、分享给大家供大家参考、具体代码如下
パッケージgyb.exam; 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; java.awt.event.mouseadapter; import java.awt.event.mouseevent; Import java.util.arraylist; javax.swing.icon;インポート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.swing.swing.swing.swing.swing.swing.jmenuiitem; javax.swing.joptionpane; Import javax.swing.jpanel; Import javax.swing.border.titledborder; Public Class MainFrameはJFrameを拡張します{private static int big = 15;プライベート静的final int one = 25;プライベート静的最終int start = 10; private static int x = big*start/2; private static int y = big*start/2; private int hl = big*one+start;プライベートスタティックブールイスブラック。 canvasframe canvas = new canvasframe(); CanvasFrame Can;グラフィックG; public mainframe(){init(); }プライベートポイントポイント; 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メニュー= new JMenu( "Game"); bar.add(メニュー); jmenuitem start = new jmenuitem( "start"); jmenuitem end = new jmenuitem( "棋盘大小"); end.AddActionListener(new ActionListener(){public void ActionPerformed(ActionEvent e){}}); JMENUITEM RENEW = NEW JMENUITEM( "重新开始"); jmenuitem exit = new jmenuitem( "退出"); exit.AddActionListener(new ActionListener(){public void ActionPerformed(ActionEvent e){System.Exit(0);}}); reblen.addActionListener(new ActionListener(){public void ActionPerformed(ActionEvent e){blacklist.clear(); whitelist.clear();}}); menu.add(start); menu.add(regning); menu.add(end); menu.add(exit); setLayout(new borderlayout()); add(borderlayout.center、createcenter()); add(borderlayout.east、create east()); } private boolean iswin(arraylist <point> list){int x; int y; int idx = 0;ループ:for(ポイントP:リスト){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)ブレークループ。 }} idx == 5を返します。 } private jpanel createast(){jpanel pane = new jpanel(); borderlayout border = new borderlayout(); pane.setlayout(border); Pane.setborder(new Titledborder( "五子棋"));アイコン画像= 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(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 Titledborder( "")); 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(mousevent e){loop:if(e.getbutton()== mouseevent.button1){x = e.getx(); y = e.gety(); int x =(x/yin) !(blacklist.contains || whitelist.contains(point)){isblack.add(point); whitelist.add(iswin(whitelist)){null、 ") canvas.repaint(); Pane.Add(Canvas);ペインを返します。 } 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 = toolkit.getDefaultToolkit(); Dimension Screen = toolkit.getScreensize(); // int framehigh = frame.getheight(); int x =(screen.width-framewidth)/2; int y =(screen.height-framehigh)/2; frame.setlocation(x、y); } class 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+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.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有所帮助。