java编写的简陋的三子棋游戏
2013-09-09 20:10
393 查看
LZ最近在准备保研,因为去年上机题是三子棋问题,所以无聊时写了一下,程序实现了基本的功能,但是比较简陋。下面贴出代码,读者可以借鉴,自行修改!
package cn.edu.nju.software; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Three { private JFrame mainFrame; private JPanel jPanel; private JButton button[][] = new JButton[3][3]; private String whoseTurn = "A"; //A玩家先玩,所以开始时设置为"A" /*-------------------用九个button代替了九宫格,每个button初始text设置为空--------------------*/ public Three() { mainFrame = new JFrame("三子棋"); jPanel = new JPanel(new GridLayout(3, 3)); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { button[i][j] = new JButton(); button[i][j].setText(" "); jPanel.add(button[i][j]); } mainFrame.add(jPanel); mainFrame.setSize(300, 300); mainFrame.setVisible(true); mainFrame.setLocation(500, 200); } /*-----------------------------为每个button设置了点击事件------------------------------*/ public void beginGame() { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { button[i][j].addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { ((JButton) arg0.getSource()).setText(whoseTurn); if (isWin(whoseTurn)) { JOptionPane.showMessageDialog(null, whoseTurn + " win!"); mainFrame.setVisible(false); } else if (isFull()) { JOptionPane .showMessageDialog(null, "game is over!"); mainFrame.setVisible(false); } else { whoseTurn = (whoseTurn.equals("A")) ? "B" : "A"; } } }); } } /*------------------------------判断是否九个格子已经满了---------------------------------*/ public boolean isFull() { boolean isFull = true; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { if (button[i][j].getText().equals(" ")) isFull = false; } return isFull; } /*---------------------------------游戏判断输赢的核心算法,很简单---------------------------*/ public boolean isWin(String s) { boolean win = false; for (int i = 0; i < 3; i++) { if ((button[i][0].getText().equals(s)) && (button[i][1].getText().equals(s)) && (button[i][2].getText().equals(s))) win = true; } for (int j = 0; j < 3; j++) { if ((button[0][j].getText().equals(s)) && (button[1][j].getText().equals(s)) && (button[2][j].getText().equals(s))) win = true; } if ((button[0][0].getText().equals(s)) && (button[1][1].getText().equals(s)) && (button[2][2].getText().equals(s))) win = true; if ((button[0][2].getText().equals(s)) && (button[1][1].getText().equals(s)) && (button[2][0].getText().equals(s))) win = true; return win; } public static void main(String[] args) { Three three = new Three(); three.beginGame(); } }
代码LZ已经运行过,可以跑!
相关文章推荐
- Java 游戏 连连看 语言编写 多媒体
- Java编写掷骰子游戏
- Java编写飞行游戏
- 用java编写的一个小财富游戏
- java编写游戏的几本参考书
- Java编写大嘴怪游戏--原创
- java编写的猜数字游戏
- 作业——java编写一个简单的移动方块游戏
- 使用java编写计算24点游戏程序
- Java编写的24点纸牌游戏
- MyGame--java语言编写的打飞机游戏(附源码下载)
- java编写的简单图片匹配游戏
- 【C语言】用C语言实现三子棋游戏的编写
- 用JAVA编写的“宾果”游戏实例化操作----随机数据哦
- 用Java编写扫雷游戏--算法思考
- 猜数字游戏。编写一个Java应用程序,实现功能:
- 用Java编写的一个抽奖游戏
- java吃豆豆游戏-1控制按钮编写
- Java编写网络打字游戏
- Head First Java (第二版)学习记录 5 - 编写程序 DotCom 初级游戏