五子棋游戏用Javajava程序设计五子棋

&&原自己按照教程写的java swing五子棋小游戏实现了左手下右手下棋及判定胜负 但是时间设置有点问题 加入菜单栏和系统托盘
import java.awt.AWTE
import java.awt.C
import java.awt.F
import java.awt.G
import java.awt.I
import java.awt.MenuI
import java.awt.PopupM
import java.awt.SystemT
import java.awt.T
import java.awt.TrayI
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.MouseE
import java.awt.event.MouseL
import java.awt.image.BufferedI
import java.io.F
import java.io.IOE
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.I
import javax.swing.ImageI
import javax.swing.JB
import javax.swing.JF
import javax.swing.JL
import javax.swing.JLayeredP
import javax.swing.JM
import javax.swing.JMenuB
import javax.swing.JMenuI
import javax.swing.JOptionP
import javax.swing.JP
import javax.swing.KeyS
import javax.swing.WindowC
public class MyChess extends JFrame implements MouseListener, Runnable {
int x = 0;
int y = 0;// 保存棋子的 x y坐标
int[][] allChess = new int[15][15];// 保存之前下过的全部棋子的坐标
// 其中数据内容 0: 表示这个点并没有棋子, 1: 表示这个点是黑子, 2:表示这个点是白子
boolean isBlack =
boolean canplay =
String message = &黑方先下&;
int maxTime = 0;// 保存最多拥有时间(秒)
Thread t = new Thread(this);// 做倒计时线程类
int blacktime = 0;
int whitetime = 0;
String blackMessage = &无限制&;
String whiteMessage = &无限制&;
BufferedImage bg =
BufferedImage black =
BufferedImage white =
public MyChess() {
this.setTitle(&我的五子棋&);// 设
this.setSize(500, 600);// 设置窗口大小 500*600
this.setResizable(false);// 设置窗口大小不可被改变
this.setLocationRelativeTo(null);// 设置窗口初始在屏幕正中间
this.setLocationRelativeTo(null);
this.setTray();
this.setIconImage(Toolkit.getDefaultToolkit().createImage(
&logo5.png&));// 给窗体添加一个图标
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置退出
this.addMouseListener(this);// 加入鼠标监听器
JLayeredPane layeredPane = getLayeredPane();
URL url=getClass().getResource(&bg4.jpg&);
Icon icon =new ImageIcon(url);
JLabel bg=new JLabel(icon);
bg.setSize(500,600);
layeredPane.add(bg,new Integer(Integer.MIN_VALUE));
JPanel contenJPanel=(JPanel)getContentPane();
contenJPanel.setOpaque(false);
this.repaint();
t.start();// 启动线程
t.suspend();// 挂起线程
this.repaint();
this.setVisible(true); // 设置窗口显示
//实现菜单&
JMenuItem item1, item2, item3;
menubar = new JMenuBar();
menu = new JMenu(&菜单&);
item1 = new JMenuItem(&重新开始&);
item2 = new JMenuItem(&退出&);
item3 = new JMenuItem(&关于&);
item1.setAccelerator(KeyStroke.getKeyStroke(&1&));
item1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = &是否要重新开始游戏?&;
if (JOptionPane.showConfirmDialog(null, str, &重新开始&,
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
for (int i = 0; i & 15; i++) {
for (int j = 0; j & 15; j++) {
allChess[i][j] = 0;// 棋盘清空
message = &黑方先行&;
blacktime = maxT
whitetime = maxT
}); this.repaint();
item2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = &是否要退出游戏?&;
if (JOptionPane.showConfirmDialog(null, str, &退出游戏&,
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0); // 退出
item3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = &关于&;
JOptionPane.showMessageDialog(null, &吼吼吼吼&);
item2.setAccelerator(KeyStroke.getKeyStroke('2'));
item3.setAccelerator(KeyStroke.getKeyStroke('3'));
menu.add(item1);
menu.addSeparator();
menu.add(item2);
menu.addSeparator();
menu.add(item3);
menubar.add(menu);
setJMenuBar(menubar);
validate();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setVisible(true);
// clear棋盘方法&
// protected void clearMap() {
// for (int i = 0; i & 15; i++) {
// for (int j = 0; j & 15; j++) {
// allChess[i][j] = '+';
public void setTray(){
if(SystemTray.isSupported()){//判断当前平台是否支持托盘功能
//创建托盘实例
SystemTray tray = SystemTray.getSystemTray();
//创建托盘图标:1.显示图标Image 2.停留提示text 3.弹出菜单popupMenu 4.创建托盘图标实例
//1.创建Image图像
Image image=
image = ImageIO.read(getClass().getResource(&logo2.png&));
} catch (IOException e2) {
// TODO 自动生成的 catch 块
e2.printStackTrace();
//2.停留提示text
String text = &五子棋&;
//3.弹出菜单popupMenu
PopupMenu popMenu = new PopupMenu();
MenuItem itmOpen = new MenuItem(&Start&);
itmOpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
MenuItem itmHide = new MenuItem(&Hidde&);
itmHide.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
UnVisible();
MenuItem itmExit = new MenuItem(&Exit&);
itmExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
popMenu.add(itmOpen);
popMenu.add(itmHide);
popMenu.add(itmExit);
//创建托盘图标
TrayIcon trayIcon = new TrayIcon(image,text,popMenu);
//将托盘图标加到托盘上
tray.add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
//内部类中不能直接调用外部类(this不能指向)
public void UnVisible() {
this.setVisible(false);
public void Show() {
this.setVisible(true);
public void Exit() {
System.exit(0);
public static void main(String[] args) {
new MyChess();
public void paint(Graphics g) {
bg = ImageIO.read(getClass().getResource(&bg4.jpg&));// 导入图片
black = ImageIO.read(getClass().getResource(&black.png&));
white = ImageIO.read(getClass().getResource(&white.png&));
} catch (IOException e) {
e.printStackTrace();
BufferedImage bgBufferedImage = new BufferedImage(500, 600,
BufferedImage.TYPE_INT_ARGB);
Graphics g2 = bg.createGraphics();
g2.setFont(new Font(&黑体&, Font.BOLD, 20));
g2.drawString(&游戏信息:& + message, 155, 520);
g2.setColor(Color.BLACK);
g2.setFont(new Font(&黑体&,Font.BOLD,25));
g2.drawString(&开始游戏& , 20, 560);
g2.drawString(&游戏设置& , 150, 560);
g2.drawString(&认输& , 280, 560);
g2.drawString(&关于& , 355, 560);
g2.drawString(&退出& , 430, 560);
g2.setFont(new Font(&宋体&, 0, 14));
g2.drawString(&黑方时间:& + blackMessage, 43, 490);
g2.drawString(&白方时间:& + whiteMessage, 355, 490);
g2.setColor(Color.WHITE);
for (int i = 0; i & 15; i++) {
g2.drawLine(40, 40 + i * 30, 460, 40 + i * 30);
g2.drawLine(40 + i * 30, 40, 40 + i * 30, 460);// 绘制棋盘上的线
// 绘制全部棋子 &
for (int i = 0; i & 15; i++) {
for (int j = 0; j & 15; j++) {
if (allChess[i][j] == 1) {
int tempx = 40 + 30 *
int tempy = 38 + 30 *
g2.drawImage(black, tempx - 12, tempy - 12, null);// 绘制黑子
if (allChess[i][j] == 2) {
int tempx = 40 + 30 *
int tempy = 38 + 30 *
g2.drawImage(white, tempx - 12, tempy - 12, null);// 绘制白子
g.drawImage(bg, 0, 0, this);
public void mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根
x = e.getX();
y = e.getY();
System.out.println(&当前鼠标坐标:& + x + ',' + y);
if (x & 30 && x & 470 && y & 40 && y & 480) {
x = (x - 40) / 30;
y = (y - 38) / 30;
if (allChess[x][y] == 0) {
// 判断棋子颜色&
if (isBlack == true) {
allChess[x][y] = 1;
message = &轮到白方&;
this.repaint();
JOptionPane.showMessageDialog(rootPane, &轮到白方&);
allChess[x][y] = 2;
message = &轮到黑方&;
this.repaint();
JOptionPane.showMessageDialog(rootPane, &轮到黑方&);
// 判断游戏胜负&
boolean winFlag = this.checkWin();
if (winFlag == true) {
JOptionPane.showMessageDialog(this, &游戏结束,&
+ (allChess[x][y] == 1 ? &黑方& : &白方&) + &获胜!&);
JOptionPane.showMessageDialog(this, &当前位置已经有棋子,请重新落子!&);
this.repaint();
if (e.getX() &= 15 && e.getX() &= 130 && e.getY() &= 540
&& e.getY() &= 590) {
int result = JOptionPane.showConfirmDialog(this, &是否重新开始游戏?&);
if (result == 0) {// 表示重新开始游戏
// 重新开始所要做的操作,1棋盘清空,(allchess这个数组数据归零)2 将游戏信息的显示改回到开始位置
// 3isblack改回到true 黑方先下
for (int i = 0; i & 15; i++) {
for (int j = 0; j & 15; j++) {
allChess[i][j] = 0;// 棋盘清空
message = &黑方先行&;
blacktime = maxT
whitetime = maxT
this.repaint();
if (e.getX() &= 150 && e.getX() &= 260 && e.getY() &= 540
&& e.getY() &= 590) {
String input = JOptionPane
.showInputDialog(&请输入游戏的最大时间(分钟)不能为0:&);
maxTime = Integer.parseInt(input) * 60;// 将String类型强制转换为int类型
if (maxTime &= 0) {
JOptionPane.showMessageDialog(this, &请输入正确时间,不能为负数和0&);
if (maxTime & 0) {
JOptionPane.showConfirmDialog(this, &设置完成!请开始游戏&);
for (int i = 0; i & 15; i++) {
for (int j = 0; j & 15; j++) {
allChess[i][j] = 0;// 棋盘清空
message = &黑方先行&;
if (maxTime & 0) {
blackMessage = maxTime
+ (maxTime / 60 - maxTime / 3600 * 60)
+ (maxTime - maxTime / 60 * 60);
whiteMessage = maxTime
+ (maxTime / 60 - maxTime / 3600 * 60)
+ (maxTime - maxTime / 60 * 60);
t.resume();
blackMessage = &无限制&;
whiteMessage = &无限制&;
this.repaint();
} catch (NumberFormatException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(this, &请输入正确!&);
if (e.getX() &= 360 && e.getX() &= 400 && e.getY() &= 540
&& e.getY() &= 590) {
JOptionPane.showMessageDialog(this, &这是一个由Java开发的五子棋游戏程序--by蓝桥班雄鹰队胡靖 &);// 关于
if (e.getX() &= 420 && e.getX() &= 480 && e.getY() &= 540
&& e.getY() &= 600) {
JOptionPane.showMessageDialog(this, &游戏结束!&);// 游戏结束
System.exit(0);
if (e.getX() &= 270 && e.getX() &= 330 && e.getY() &= 540
&& e.getY() &= 590) {
int result = JOptionPane.showConfirmDialog(this, &是否确认认输&);
if (result == 0) {
if (isBlack) {
JOptionPane.showConfirmDialog(this, &黑方已经认输! 游戏结束&);
JOptionPane.showConfirmDialog(this, &白方已经认输! 游戏结束&);
private boolean checkWin() {
boolean flag =
int count = 1;
int color = allChess[x][y];
count = this.checkCount(1, 0, color);
if (count &= 5) {
// 判断纵向
count = this.checkCount(0, 1, color);
if (count &= 5) {
// 判断右上、左下
count = this.checkCount(1, -1, color);
if (count &= 5) {
// 判断右下、左上
count = this.checkCount(1, 1, color);
if (count &= 5) {
// 判断棋子相连&
private int checkCount(int xChange, int yChange, int color) {
int count = 1;
int tempX = xC
int tempY = yC
while (x + xChange &= 0 && x + xChange &= 18 && y + yChange &= 0
&& y + yChange &= 18
&& color == allChess[x + xChange][y + yChange]) {
if (xChange != 0)
xChange++;
if (yChange != 0) {
if (yChange & 0)
yChange++;
yChange--;
xChange = tempX;
yChange = tempY;
while (x - xChange &= 0 && x - xChange &= 18 && y - yChange &= 0
&& y - yChange &= 18
&& color == allChess[x - xChange][y - yChange]) {
if (xChange != 0)
xChange++;
if (yChange != 0) {
if (yChange & 0)
yChange++;
yChange--;
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
public void run() {
if (maxTime & 0) {
while (true) {
if (isBlack) {
blacktime--;
whitetime = maxTime--;
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
blackMessage = blacktime / 3600 + &:&
+ (blacktime / 60 - blacktime / 3600 * 60) + &:&
+ (blacktime - blacktime / 60 * 60);
whiteMessage = whitetime / 3600 + &:&
+ (whitetime / 60 - whitetime / 3600 * 60) + &:&
+ (whitetime - whitetime / 60 * 60);
this.repaint();
System.out.println(blacktime + &--& + whitetime);
}猜你喜欢3个牛币请下载代码后再发表评论//wzq11111/wzq11111/.classpath/wzq11111/.fatjar/wzq11111/.project/wzq11111/.settings/wzq11111/.settings/org.eclipse.core.resources.prefs/wzq11111/.settings/org.eclipse.jdt.core.prefs/wzq11111/bin/wzq11111/bin/wuziqi/wzq11111/bin/wuziqi/MyChess$1.class/wzq11111/bin/wuziqi/bg4.jpg/wzq11111/bin/wuziqi/black.png/wzq11111/bin/wuziqi/logo2.png/wzq11111/bin/wuziqi/logo5.png精精精精原精精精原精原精原精相关分享原原最近下载暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制五子棋游戏(毕业设计论文,JSP,java,范文)下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效五子棋游戏(毕业设计论文,JSP,java,范文)扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营- 请使用者仔细阅读优酷、、、、和Copyright(C)2017 优酷 youku.com 版权所有不良信息举报电话:网站已改版,请使用新地址访问:
FiveGame 用Java编写的一个五子棋游戏,带人工智能的,完整的源代码 Chess Poker s 棋牌
247万源代码下载- www.pudn.com
&文件名称: FiveGame& & [
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 134 KB
&&上传时间:
&&下载次数: 13
&&提 供 者:
&详细说明:用Java编写的一个五子棋游戏,带人工智能的,完整的源代码-ritten in Java, a FIveGame, with AI, complete source code
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&FiveGame\.classpath&&........\.project&&........\bg.mid&&........\bg_game.JPG&&........\black.png&&........\LNode.class&&........\LNode.java&&........\menu.png&&........\NullAndCount.class&&........\NullAndCount.java&&........\PlayChess$1.class&&........\PlayChess$2.class&&........\PlayChess$3.class&&........\PlayChess$4.class&&........\PlayChess$MyCanvas.class&&........\PlayChess.class&&........\PlayChess.java&&........\pointer.png&&........\rim.png&&........\Robot.class&&........\Robot.java&&........\Stack.class&&........\Stack.java&&........\W.png&&........\white.png&&........\X.gif&&FiveGame
&[]:不能解压或下载失败
&近期下载过的用户:
&输入关键字,在本站247万海量源码库中尽情搜索:
&[] - 六子棋人机对弈程序,本人机器人博弈参赛程序,获冠军。
&[] - 五子棋小游戏,基于最优博弈树算法,有不同棋力等级。老少咸宜。
&[] - 一个六子棋的小程序,采用六子棋标准对弈协议,在对弈平台下可以实现人机对弈或者程序间对弈。具有较好的棋力。
&[] - 是一个网络游戏,网上大部分为网络五子棋,此程序为六子棋。
&[] - java六子棋代码,按最长连子搜索实现步法生成
&[] - 五子棋JAVA程序, 可以实现人机对弈,见面看上去也很舒服
&[] - 用MFC实现的五子棋小游戏(绝对可运行源码),可以人机对弈(人工智能,分不同等级),也可以双人对弈,学习对弈游戏非常值得参考!!当前位置:
JAVA五子棋游戏的设计
来源: 联系QQ: 作者: 佚名 来源: 网络 发布时间: 13/05/09
以下是网学网为您推荐的Java类作品-JAVA五子棋游戏的设计,希望本篇文章对您学习有所帮助。客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn 2.1 开发环境及运行环境2.1.1开发环境&#61548;&AMD Athlon(tm) 2.10GHz,1G内存,160G硬盘&#61548;&Microsoft Windows XP Professional Service Pack 2&#61548;&JDK& 1.60&#61548;&Eclipse 3.52.1.2运行环境&#61548;&Intel Pentium 2及以上处理器,128M以上内存,20G以上硬盘&#61548;&Microsoft Windows 9X/NT操作系统&#6*768或以上的屏幕分辨率4.1.3判断模块判断输赢模块是整个系统的核心部分,他的主要功能是实现对五子棋的输赢的判定。为了完成判断模块的编码实现,首先得了解五子棋的判定输赢规则,通过查询资料可以知道,五子棋需要满足五个棋子在水平,竖直,斜向上或者斜向下这四个方向上的任意一个方向上有五个棋子满足要求,如果有,则显示使用这个棋子的用户为赢,如果没有就切换用户继续下棋。然后下棋后继续判断是否有五子满足胜利要求,依次循环。4.3.2测试效果用例名称:网络客户端功能用例描述:玩家连接上服务器后,能够依据系统提示创建或者加入游戏,能够与其他玩家进行正常的对弈操作。用例入口:运行程序界面下的GameClient.jvav进入网络客户端界面。本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT
本文选自计算机毕业设计http://myeducs.cn论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ3710167
上一篇资讯:
下一篇资讯:
文章排行榜&#10084; &#10084; 编程论坛祝大家 2018 元旦快乐 &#10084; &#10084;&#10084; &#10084; Happy New Year &#10084; &#10084;
欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 3212 人关注过本帖
标题:我自己用JAVA编的一个五子棋游戏(有简单的AI)!
等 级:新手上路
&&问题点数:0&&回复次数:4&&&
我自己用JAVA编的一个五子棋游戏(有简单的AI)!
import java.awt.*;import java.util.*;import javax.swing.*;import java.awt.geom.*;import java.awt.event.*;
class PaintPanel extends JPanel{
JDialog labHeiQi = new JDialog(new JFrame() ,"胜利",false);
JLabel jbm1=new JLabel("★★★★★★★★★★★★★★★★★");
JLabel jb1=new JLabel("★★★★★恭喜,你赢了!!★★★★★");
JDialog labHongQi = new JDialog(new JFrame(),"失败",false);
JLabel jbm2=new JLabel("★★★★★★★★★★★★★★★★");
JLabel jb2=new JLabel("★★★你输了,请继续努力!★★★");
public int [][]
public int[]
public int isSuccess=0;
ArrayList Items = new ArrayList();
public PaintPanel() {
setLayout(new BorderLayout());
ButtonPanel buttonPanel = new ButtonPanel();
add(buttonPanel, BorderLayout.SOUTH);
addMouseListener(new MouseHandler());
map=new int [19][19];
for(int i=0;i&19;i++){
for(int j=0;j&19;j++){
map[i][j]=-1;
cp=new int [2];
public void lab(int k){
labHeiQi.setLayout(new BorderLayout());
labHeiQi.add("Center",jb1);
labHeiQi.add("North",jbm1);
labHeiQi.pack();
labHongQi.setLayout(new BorderLayout());
labHongQi.add("Center",jb2);
labHongQi.add("North",jbm2);
labHongQi.pack();
labHeiQi.setVisible(true);
labHongQi.setVisible(true);
public void paintComponent(Graphics g) {
int startX = 50;
int startY = 50;
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for(int i=0; i&19; i++) {
g2.draw(new Line2D.Double(startX, startY+20*i, startX+360, startY+20*i));
g2.draw(new Line2D.Double(startX+20*i, startY, startX+20*i, startY+360));
for(int i=0; i&Items.size(); i++) {
int k=(i+2)%2;
g2.setColor(Color.BLACK);
if(isSuccess==1){
g2.setColor(Color.RED);
if(isSuccess==2){
g2.fill((Ellipse2D)Items.get(i));
void myRepaint() {
repaint();
void reset(){
isSuccess=0;
for(int i=0;i&19;i++){
for(int j=0;j&19;j++){
map[i][j]=-1;
class MouseHandler extends MouseAdapter {
public void mousePressed(MouseEvent event) {
int x = event.getX();
int y = event.getY();
x=(x-50)/20;
y=(y-50)/20;
if(chessExist(x,y)&&isSuccess==0){
paintItem(x, y);
isSuccess=Success(x,y,1);
map[x][y]=1;
repaint();
if(isSuccess==0){
computer();
int q=cp[0];
int r=cp[1];
paintItem(q,r);
isSuccess=Success(q,r,2);
map[q][r]=2;
repaint();
paintItem(int x, int y) {
x=x*20+50;
y=y*20+50;
if(x &30 && x &430 && y &30 && y &430) {
int X = x / 20;
int Y = y / 20;
int centerX = X*20 + 10;
int centerY = Y*20 + 10;
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrameFromCenter(centerX, centerY, centerX+8, centerY+8);
Items.add(ellipse);
}public void computer(){ //计算机走棋
int maxblack,maxHong,maxtemp,max=0;
for(int i=1;i&18;i++){
for(int j=1;j&18;j++){
if(chessExist(i,j)){//判断是否可以下子
maxblack=CheckMax(i,j,1);
maxHong=CheckMax(i,j,2);
maxtemp=Math.max(maxblack,maxHong);
if(maxtemp&max){
}}public int CheckMax(int x,int y,int person){//判断某一点四个方向上棋子的最大值
int maxnum=0;
int up,down,left,
left=right=x;
up=down=y;
}while(up&=0&&map[x][up]==person);
}while(down&19&&map[x][down]==person);
if((up-down)&maxnum){
maxnum=up-
}while(right&19&&map[align=right][y]==person);
}while(left&=0&&map[align=left][y]==person);
if((right-left)&maxnum){
maxnum=right-
left=right=x;
down=up=y; do{
}while(right&19&&down&19&&map[align=right][down]==person);
}while(left&=0&&up&=0&&map[align=left][up]==person);
if((right-left)&maxnum){
maxnum=right-
left=right=x;
down=up=y; do{
}while(right&19&&down&=0&&map[align=right][down]==person);
}while(left&=0&&up&19&&map[align=left][up]==person);
if((right-left)&maxnum){
maxnum=right-
int Success(int x,int y,int person){ //判断胜负
int up,down,left,
left=right=x;
up=down=y;
}while(up&=0&&map[x][up]==person);
}while(down&19&&map[x][down]==person);
if((up-down)&5){
}while(right&19&&map[align=right][y]==person);
}while(left&=0&&map[align=left][y]==person);
if((right-left)&5){
left=right=x;
down=up=y; do{
}while(right&19&&down&19&&map[align=right][down]==person);
}while(left&=0&&up&=0&&map[align=left][up]==person);
if((right-left)&5){
left=right=x;
down=up=y; do{
}while(right&19&&down&=0&&map[align=right][down]==person);
}while(left&=0&&up&19&&map[align=left][up]==person);
if((right-left)&5){
boolean chessExist(int i,int j){//判断该格是否有棋子
if(map[i][j]==-1)
} class ButtonPanel extends JPanel{
public ButtonPanel() {
JButton reset = new JButton("新游戏");
add(reset);
JButton quit = new JButton("退出");
add(quit);
ResetEvent listenerR = new ResetEvent();
reset.addMouseListener(listenerR);
QuitEvent listenerQ = new QuitEvent();
quit.addMouseListener(listenerQ);
}class QuitEvent extends MouseAdapter {//离开游戏
public void mouseClicked(MouseEvent event) {
System.exit(1);
}class ResetEvent extends MouseAdapter {
//重新开始游戏
public void mouseClicked(MouseEvent event) {
Items.clear();
myRepaint();
}}class GameFrame extends JFrame {
public GameFrame() {
setTitle("五子棋");
setSize(500, 600);
setResizable(false);
PaintPanel panel = new PaintPanel();
getContentPane().add(panel);
}}public class Game {
public static void main(String[] args) {
GameFrame frame = new GameFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
由于棋子的情况采用数组存储,坐标都经过了处理,这样也导致棋盘的最外一圈不能下棋,电脑还可以!大家有兴趣的可以看看,这个是我数据结构做的课程设计!
搜索更多相关主题的帖子:
等 级:新手上路
帖 子:610
搂住辛苦的劳动, 还是要顶的
等 级:新手上路
帖 子:309
顶一下,转到j2se区吧
泛出微微的蓝色的光,像有生命般涌动着,闪烁着,平滑而优美,达到了机械和美学结合的最高境界
等 级:贵宾
威 望:13
帖 子:769
楼主``厉害`
不过``我帮你测了一下`好多的异常啊` 加油``
学编程不能急,要慢慢来。
等 级:论坛游民
帖 子:54
专家分:10
能不能注释一下吗
版权所有,并保留所有权利。
Powered by , Processed in 0.227194 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 五子棋游戏设计与实现 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信