本文实例讲述了 Java 实现的五子棋游戏代码 , 分享给大家供大家参考 , 具体代码如下
Paket 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; java.awt.event.mouseadapter; import java.awt.event.mouseeEvent; import Java.util.ArrayList; import Javax.swing.icon; Import Javax.swing.imageicon; Import Javax.swing.jbutton; Import Javax.swing.jframe; Import Javax.swing.jlabel; javax.swing.jpanel; import javax.swing.border.titledBorder; public class Mainframe erweitert JFrame {private static int big = 15; private statische endgültige int eins = 25; private statische endgültige int start = 10; private static int x = big*start/2; private static int y = big*start/2; private int hl = big*One+Start; privates statischer Boolean Isblack; Canvasframe canvas = new canvasframe (); Canvasframe kann; Grafik G; public mainframe () {init (); } privater Punkt; 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 -Menü = new JMenu ("Spiel"); bar.add (Menü); 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);}}); renew.addactionListener (new ActionListener () {public void actionPerformed (actionEvent e) {BlackList.Clear (); whitelist.clear ();}}); Menü.Add (Start); Menü.Add (erneuern); Menü.Add (Ende); Menü.Add (Beenden); setLayout (neuer BorderLayout ()); add (borderLayout.Center, CreateCenter ()); add (borderLayout.east, createast ()); } private boolean iswin (ArrayList <Point> -Liste) {int x; int y; int idx = 0; Schleife: für (Punkt P: Liste) {x = px; y = py; idx = 0; while (list.contains (neuer Punkt (x, y)) {idx ++; x = x-eins; if (idx == 5) Break -Loop; } x = px; y = py; idx = 0; while (list.contains (neuer Punkt (x, y)) {idx ++; y = y-one; if (idx == 5) Break -Loop; } x = px; y = py; idx = 0; while (list.contains (neuer Punkt (x, y)) {idx ++; x = x-eins; y = y-one; if (idx == 5) Break -Loop; } x = px; y = py; idx = 0; while (list.contains (neuer Punkt (x, y)) {idx ++; x = x-eins; y = y+eins; if (idx == 5) Break -Loop; }} return idx == 5; } private jpanel createEast () {jpanel pane = new jpanel (); BorderLayout Border = New BorderLayout (); SetSetLayout (Grenze); Pane.SetBorder (neuer Titel ("五子棋")); Icon image = new ImageCon (getClass (). GetResource ("mm.png")); Pane.add (BorderLayout.North, New Jlabel (Image, Jlabel.Center)); Pane.add (BorderLayout.Center, Ballcolor ()); pane.add (borderLayout.South, button ()); Return -Scheibe; } private jpanel ballcolor () {jpanel pane = new jpanel (); SetSetLayout (New BorderLayout ()); CAN = new canvasframe () {public void Paint (Grafik g) {g.setColor (color.pink); G.FillRect (1, 1.200.300); G.SetFont (neue Schriftart ("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); Return -Scheibe; } 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);}}); SetSetLayout (BOR); Bor.SetVgap (5); Pane.SetBorder (neuer Titelborder ("")); Pane.add (BorderLayout.North, Start); Pane.add (BorderLayout.South, Ende); Return -Scheibe; } private jpanel createCenter () {jpanel pane = new jpanel (); canvas.setPreferredSize (neue Dimension (HL+10, HL+10)); canvas.addmouselistener (neuer mouseadapter () {public void mouseclicked (MouseEvent e) {Loop: if (e.getButton () == MouEvent.button1) {x = e.getX (); y = e.gety (); if (! if (iswin (Whitelist)) {JOPTIONPANE }}); Bereich.Add (Leinwand); Return -Scheibe; } public static void main (String [] args) {mainframe Fram = new Mainframe (); Frame.Center (Frame); Frame.Pack (); Frame.SetVisible (True); } public void Center (JFrame Frame) {// Toolkit 是当前 绘图系统集合工具包 Toolkit Toolkit = Toolkit.getDefaulttoolkit (); Dimensionsbildschirm = 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); } Klasse Canvasframe erweitert JPanel {public void paint (Graphics g) {g.setColor (color.pink); G.FillRect (0, 0, Hl+20, Hl+20); g.setColor (color.black); für (int i = start; i <= hl; i = i+ein) {für (int j = start; j <= hl; j = j+eins) {g.drawline (i, j, hl, j); }} für (int i = start; i <= hl; i = i+eins) {für (int j = start; j <= hl; j = j+eins) {g.drawline (i, j, i, hl); }} g.setColor (color.yellow); G.Drawrect (Start/2, Start/2, Hl+1, Hl+1); g.setColor (color.black); für (Punktpunkt: Blacklist) {g.filloval (point.x, point.y, 20, 25); } G.SetColor (color.white); für (Punktpunkt: Whitelist) {g.filloval (point.x, point.y, 20, 25); }}}}效果图 :
以上所述就是本文的全部内容了 , 希望能够对大家熟练掌握 Java 有所帮助。