本文实例讲述了 Java 实现的五子棋游戏代码, 分享给大家供大家参考, 具体代码如下
แพ็คเกจ gyb.exam; นำเข้า java.awt.BorderLayout; นำเข้า java.awt.color; นำเข้า java.awt.dimension; นำเข้า java.awt.font; นำเข้า java.awt.graphics; นำเข้า java.awt.point; นำเข้า Java.Awt.toolkit; java.awt.event.mouseadapter; นำเข้า java.awt.event.mousevent; นำเข้า java.util.arraylist; นำเข้า Javax.swing.icon; นำเข้า Javax.swing.imageicon; นำเข้า Javax.swing.jbutton; นำเข้า Javax.swing.jframe; นำเข้า Javax.swing.jlabel; นำเข้า Javax.swing.jmenu; javax.swing.jpanel; นำเข้า Javax.swing.border.titledBorder; เมนเฟรมระดับสาธารณะขยาย JFrame {ส่วนตัวคงที่ int ใหญ่ = 15; INT สุดท้ายคงที่ส่วนตัว = 25; เริ่มสุดท้าย int เริ่มต้นครั้งสุดท้าย = 10; int คงที่ส่วนตัว x = ใหญ่*เริ่ม/2; int คงที่ส่วนตัว y = ใหญ่*เริ่ม/2; ส่วนตัว int hl = big*one+start; บูลีนสแตติกส่วนตัว isblack; CanvasFrame Canvas = new CanvasFrame (); Canvasframe สามารถ; กราฟิก G; เมนเฟรมสาธารณะ () {init (); } จุดส่วนตัว ArrayList ส่วนตัว <Point> BlackList = New ArrayList <Point> (); ArrayList ส่วนตัว <Point> Whitelist = new ArrayList <Point> (); โมฆะส่วนตัวเริ่มต้น () {JMenubar Bar = new JMenubar (); setjmenubar (บาร์); setsize (600,600); Settitle ("五子棋"); เมนู jmenu = new jmenu ("game"); bar.add (เมนู); jMenuitem start = new JMenuitem ("start"); jMenuitem end = new JMenuitem ("棋盘大小"); end.addactionListener (ใหม่ actionListener () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {}}); JMenuitem Renew = new JMenuitem ("重新开始"); jMenuitem exit = new JMenuitem ("退出"); exit.addactionListener (ใหม่ actionListener () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {System.Exit (0);}}); Renew.addactionListener (ใหม่ actionListener () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {BlackList.Clear (); Whitelist.Clear ();}}); เมนู ADD (เริ่มต้น); เมนู ADD (ต่ออายุ); เมนู ADD (สิ้นสุด); เมนู ADD (ออก); SetLayout (New BorderLayout ()); เพิ่ม (BorderLayout.Center, CreateCenter ()); เพิ่ม (BorderLayout.east, CreateEast ()); } บูลีนส่วนตัว iswin (arraylist <point> รายการ) {int x; int y; int idx = 0; ลูป: สำหรับ (จุด P: รายการ) {x = px; y = py; idx = 0; ในขณะที่ (list.contains (จุดใหม่ (x, y))) {idx ++; x = x-one; if (idx == 5) break loop; } x = px; y = py; idx = 0; ในขณะที่ (list.contains (จุดใหม่ (x, y))) {idx ++; y = y-one; if (idx == 5) break loop; } x = px; y = py; idx = 0; ในขณะที่ (list.contains (จุดใหม่ (x, y))) {idx ++; x = x-one; y = y-one; if (idx == 5) break loop; } x = px; y = py; idx = 0; ในขณะที่ (list.contains (จุดใหม่ (x, y))) {idx ++; x = x-one; y = y+หนึ่ง; if (idx == 5) break loop; }} return idx == 5; } jPanel ส่วนตัว createEast () {pane jPanel = new JPanel (); BorderLayout Border = New BorderLayout (); pane.setLayout (ชายแดน); pane.setBorder (ใหม่ titledBorder ("五子棋")); Icon image = ใหม่ imageicon (getClass (). getResource ("mm.png")); pane.add (Borderlayout.north, New Jlabel (รูปภาพ, jlabel.center)); pane.add (Borderlayout.center, ballcolor ()); pane.add (Borderlayout.south, ปุ่ม ()); บานหน้าต่างกลับ; } ส่วนตัว jpanel ballcolor () {pane jpanel = new jpanel (); pane.setLayout (New BorderLayout ()); can = new CanvasFrame () {Public Void Paint (กราฟิก 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 ("白方落子", 5,120); } can.repaint (); - pane.add (Borderlayout.center, Can); บานหน้าต่างกลับ; } ปุ่ม JPanel ส่วนตัว () {JPanel Pane = new JPanel (); BorderLayout bor = new BorderLayout (); jbutton start = new JButton ("开始"); jbutton end = new JButton ("结束"); end.addactionListener (ใหม่ actionListener () {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {System.Exit (0);}}); pane.setLayout (bor); bor.setvgap (5); pane.setBorder (ใหม่ titledBorder ("")); pane.add (Borderlayout.north, เริ่มต้น); pane.add (Borderlayout.South, End); บานหน้าต่างกลับ; } ส่วนตัว JPanel CreateCenter () {JPanel Pane = new JPanel (); Canvas.SetPreferredSize (มิติใหม่ (HL+10, HL+10)); canvas.addmouselistener (ใหม่ mouseadapter () {โมฆะสาธารณะ mouseclicked (MouseEvent e) {loop: ถ้า (e.getButton () == MouseEvent.button1) {x = e.getx (); y = e.gety (); if (! whitelist.add (จุด); Canvas.Repaint (); pane.add (ผ้าใบ); บานหน้าต่างกลับ; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {mainframe frame = mainframe ใหม่ (); Frame.Center (เฟรม); frame.pack (); frame.setVisible (จริง); } ศูนย์โมฆะสาธารณะ (เฟรม jframe) {// toolkit 是当前 toolkit toolkit = toolkit.getdefaulttoolkit (); หน้าจอมิติ = 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); } คลาส CanvasFrame ขยาย JPanel {Public Void Paint (กราฟิก g) {g.setColor (color.pink); G.FillRect (0, 0, HL+20, HL+20); G.SetColor (color.black); สำหรับ (int i = start; i <= hl; i = i+one) {สำหรับ (int j = start; j <= hl; j = j+หนึ่ง) {g.drawline (i, j, hl, j); }} สำหรับ (int i = start; i <= hl; i = i+one) {สำหรับ (int j = start; j <= hl; j = j+หนึ่ง) {g.drawline (i, j, i, hl); }} g.setColor (color.yellow); G.DrawRect (Start/2, Start/2, HL+1, HL+1); G.SetColor (color.black); สำหรับ (จุดจุด: Blacklist) {G.Filloval (point.x, point.y, 20, 25); } g.setColor (color.white); สำหรับ (จุดจุด: whitelist) {g.filloval (point.x, point.y, 20, 25); -效果图:
以上所述就是本文的全部内容了, 希望能够对大家熟练掌握 Java 有所帮助。