网站大量收购闲置独家精品文档,联系QQ:2885784924

JAVA版井字棋的设计与实现.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优秀论文,值得下载! 优秀论文精选! JAVA版井字棋的设计与实现 仇宾 摘要:井字棋是大家所熟知的一个小游戏,虽然简单,但其中包含了一些编程的基本技巧和基本算法,本文将在Eclipse环境下用Java语言编写一个可以人人、人机对弈的井字棋游戏。 一 引言 井字棋,即棋盘是一个井字,是一种在3X3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘一般不画边框,格线排成井字而得名。游戏规则很简单,游戏双方一方为“X”,一方为“O”,哪方率先实现三子相连即为胜者。见图1: 图 SEQ 图表 \* ARABIC 1 正在进行中的井字棋游戏 现在我们来对井字棋游戏的代码实现做一个探讨,首先介绍人人对弈方式的实现过程,然后在此基础上介绍人机对弈井字棋的实现。 二 人人对弈井字棋的实现 1、难点释疑 人人对弈实现起来较为简单,游戏双方交替在棋盘上落下棋子“X”或“O”即可,最大问题就是如何判定胜负。从棋盘我们可以看出,获胜(即任一方出现三连子)一共有8中情况:三连横、三连竖以及两个斜对角,如果我们给每个落子点从0到8编号,如图2所示: 图 SEQ 图表 \* ARABIC 2 棋盘落子点编号 那么,这8中获胜情况我们可以用一个二维数组来表示: static final int[][] WIN_STATUS = { {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {0, 3, 6}, {1, 4, 7}, {2, 5, 8}, {0, 4, 8}, {2, 4, 6} }; 这样,再定义一个一维数组,每走一步棋就对上面的二维数组进行遍历——从二维数组中依次取出8种情况放入一维数组,然后查看一维数组中的三个棋子是否相同,如果相同可以判定获胜。 2、设计实现 第一步:写一个类继承自JFrame,然后定义几个必要的变量和常量,如下: public class Tic extends JFrame { JButton[] jb = new JButton[9];// 按钮数组构成棋盘的8个落子点 static final char empty = 32; // 代表空格 static int clicknum = 0; // 记录单击次数,决定是走X还是走O static final int INFINITY = 100;// 带标无穷值 static final int WIN = +INFINITY; // O获胜 static final int LOSE = -INFINITY; // X获胜 static final int DRAW = 0; // 平局 // 获胜棋盘状态 static final int[][] WIN_STATUS = { {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {0, 3, 6}, {1, 4, 7}, {2, 5, 8}, {0, 4, 8}, {2, 4, 6} }; } 第二步:构建棋盘 在Tic类的构造方法中,JFrame的布局方式设置为GridLayout,然后每个格子里放置一个按钮即可,代码如下: public Tic(){ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400, 400); //棋盘大小 this.setLayout(new GridLayout(3,3)); this.setTitle(井字棋); // 让窗口居中显示 Dimension screen = Toolkit.getDefaultToolkit(). getScreenSize(); // 获取屏幕尺寸封装到screen中 this.setLocation((screen.height - this.getHeight())/2, (screen.width - this.getWidth())/2); // 窗口居中 // 把按钮加入窗体 for(int i=0; i9; i++){ jb[i] = new JButton(); jb[i].setFont(new Font(Arial,Font.BOLD,30)); jb[i].addActionListener(new JBClick());// 事件监听 this.add(jb[i]); } this.setVisible(true); } 第三步:经过前两步,现在加上main方法,就可以执行显示棋盘了,代码如下: public static void main(S

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档