- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java大赛黑白棋
Java大赛黑白棋 说明书
一、开发综述
1.小组成员及其分工:
2.设计时间:
07年5月5号---07年5月7号
3.所用工具:
Jbuilder 2006
二、功能描述
本程序可实现三种功能:a、本机两人对战b、人机对战(有一定程度的人工智能,可以选择“计算机执黑”或“计算机执白”) c、网络对战(功能还不完备,不过可以实现在线交互聊天)。
下面对这三个模块进行详细说明:
游戏主界面如下:
本机两人对战:
打开游戏主界面后,依次点击菜单“游戏---(重新开局-----(两人对弈”,此时,游戏区显示游戏的初始状态:2白子2黑子以及先走棋方棋子可以放置的位置(以“X”表示),最下方动态显示走完一步棋后各方棋子数、空棋数及下一步轮到哪方走棋。
默认黑棋先走棋,两人私下里决定谁当黑方,谁当白方。然后开始走棋,每走一步棋,系统处理“吃棋”情况,并动态修改画面(调用repaint()方法)及底部各方棋子数目信息。(注:走棋时必须在可以放置棋子的地方走棋,否则弹出对话框提示用户“此处不能下子!”)如果玩家在棋盘上没有地方可以下子,则该玩家对手可以连下。双方都没有棋子可以下时棋局结束,以棋子数目来计算胜负,棋子多的一方获胜。在棋盘还没有下满时,如果一方的棋子已经被对方吃光,则棋局也结束。将对手棋子吃光的一方获胜。(重新开局-----(计算机执黑 或 计算机执白”,选择下棋方式。若选择“计算机执黑”,则计算机先走棋,计算机会调用事先编好的有哪些信誉好的足球投注网站方法(详见后面算法部分)决定该棋子放在哪里,然后人每走一次棋,电脑就根据估价函数自动走一步棋,如此循环往复,直到一方棋子被吃完或棋子填满棋盘或两人均无法走棋,游戏中止,棋子多者取胜。同样,中间若有一方无棋可走,则自动把走棋权让给对方,自己停走一轮。
网络对战
网络对战连接及在线交互聊天界面如下:
如果两个人想要联网对战,则必须有一方充当服务器端,一方充当客户端。建立连接流程如下:1、服务器端开启服务:
在“ConnectHost IP”后的文本框中输入欲连接的客户端IP,点击右边的“Connect”按钮,此后要求客户端同时打开该程序并输入服务器端IP并点击“Connect”。当两方都点击连接后,在右上角的文本框显示连接状态,若尚未连接,则显示“Waiting for Connect”,若建立连接,则显示“Connecting……”,若出现异常(如网络中断等)则弹出对话框显示“Disconnected“,需重新连接!
然后可以在下面的文本区域里写入欲发送的文本,点击“Send“即可发送(类似QQ),在上面的文本域里会显示两人的聊天记录。两人在下棋区域下棋,通过网络功能进行传输(类似管道),则下棋信息同步的显示在联机对战的两台电脑上。若一方要求悔棋,则须征得对方的同意方可。
三、类概述
本程序有两个类:
MainControl类
该类主要负责人机对战、人人对战及界面的维护
NetWork类
这个类主要负责网络对战及其交互
四、算法及实现思想描述
此程序用的最重要的数据结构就是一个8*8的二维数组matrix,用于存储每一时刻前台64( 8*8 )个位置的状态(共有3种状态:-1、0、1,-1表示此处放置的事黑子,0表示此处没有棋子,1表示放置的是白子),即每一时刻都由这个程序中的二维数组与前台图形界面上的64个位置一一对应,形成一个映射关系,任何想要了解前台图形界面上各位置状态的方法都可通过访问这个二维数组来实现。
还有一个int类型的全局变量 nextToGo ,用于标示下一步该走棋的是哪一方,分别用 -1和 1 表示黑方和白方,在走棋权的交接时使用nextToGo = (-1)*nextToGo来实现,用于黑棋白旗交替走棋。
当刚打开游戏界面时,需要对界面进行初始化,在主界面的构造函数里,已经对一些需要用到的量进行了相应的初始化,其次就是:
1、调用ini()方法对程序中所要用到的二维数组进行初始化,程序如下:
public void ini()
{
//初始化matrix矩阵 LINE_NUM = COLUMN_NUM = 8 ,分别为二维数组的行数与列数
for( int i = 0 ; i LINE_NUM ; i++ )
{
for( int j = 0 ; j COLUMN_NUM ; j++ )
{
if( ( i == 3 j ==3 ) || ( i == 4 j == 4 ) )
文档评论(0)