1 / 12
文档名称:

Java大赛黑白棋说明书.doc

格式:doc   大小:96KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java大赛黑白棋说明书.doc

上传人:阳仔仔 2019/11/17 文件大小:96 KB

下载得到文件列表

Java大赛黑白棋说明书.doc

相关文档

文档介绍

文档介绍:Java大赛黑白棋说明书一、::07年5月5号---:Jbuilder2006二、功能描述本程序可实现三种功能:a、本机两人对战b、人机对战(有一定程度的人工智能,可以选择“计算机执黑”或“计算机执白”)c、网络对战(功能还不完备,不过可以实现在线交互聊天)。下面对这三个模块进行详细说明:游戏主界面如下:本机两人对战:打开游戏主界面后,依次点击菜单“游戏---à重新开局-----à两人对弈”,此时,游戏区显示游戏的初始状态:2白子2黑子以及先走棋方棋子可以放置的位置(以“X”表示),最下方动态显示走完一步棋后各方棋子数、空棋数及下一步轮到哪方走棋。默认黑棋先走棋,两人私下里决定谁当黑方,谁当白方。然后开始走棋,每走一步棋,系统处理“吃棋”情况,并动态修改画面(调用repaint()方法)及底部各方棋子数目信息。(注:走棋时必须在可以放置棋子的地方走棋,否则弹出对话框提示用户“此处不能下子!”)如果玩家在棋盘上没有地方可以下子,则该玩家对手可以连下。双方都没有棋子可以下时棋局结束,以棋子数目来计算胜负,棋子多的一方获胜。在棋盘还没有下满时,如果一方的棋子已经被对方吃光,则棋局也结束。将对手棋子吃光的一方获胜。(算法及实现方法后面详细介绍)人机对战打开游戏主界面后,依次点击菜单“游戏---à重新开局-----à计算机执黑或计算机执白”,选择下棋方式。若选择“计算机执黑”,则计算机先走棋,计算机会调用事先编好的搜索方法(详见后面算法部分)决定该棋子放在哪里,然后人每走一次棋,电脑就根据估价函数自动走一步棋,如此循环往复,直到一方棋子被吃完或棋子填满棋盘或两人均无法走棋,游戏中止,棋子多者取胜。同样,中间若有一方无棋可走,则自动把走棋权让给对方,自己停走一轮。网络对战网络对战连接及在线交互聊天界面如下:如果两个人想要联网对战,则必须有一方充当服务器端,一方充当客户端。建立连接流程如下:1、服务器端开启服务:在“ConnectHostIP”后的文本框中输入欲连接的客户端IP,点击右边的“Connect”按钮,此后要求客户端同时打开该程序并输入服务器端IP并点击“Connect”。当两方都点击连接后,在右上角的文本框显示连接状态,若尚未连接,则显示“WaitingforConnect”,若建立连接,则显示“Connecting……”,若出现异常(如网络中断等)则弹出对话框显示“Disconnected“,需重新连接!然后可以在下面的文本区域里写入欲发送的文本,点击“Send“即可发送(类似QQ),在上面的文本域里会显示两人的聊天记录。两人在下棋区域下棋,通过网络功能进行传输(类似管道),则下棋信息同步的显示在联机对战的两台电脑上。若一方要求悔棋,则须征得对方的同意方可。三、类概述本程序有两个类:MainControl类该类主要负责人机对战、Work类这个类主要负责网络对战及其交互四、算法及实现思想描述此程序用的最重要的数据结构就是一个8*8的二维数组matrix,用于存储每一时刻前台64(8*8)个位置的状态(共有3种状态:-1、0、1,-1表示此处放置的事黑子,0表示此处没有棋子,1表示放置的是白子),即每一时刻都由这个程序中的二维数组与前台图形界面上的64个位置一一对应,形成一个映射关系,任何想要了解前台图形界面上各位置状态的方法都可通过访问这个二维数组来实现。还有一个int类型的全局变量nextToGo,用于标示下一步该走棋的是哪一方,分别用-1和1表示黑方和白方,在走棋权的交接时使用nextToGo=(-1)*nextToGo来实现,用于黑棋白旗交替走棋。当刚打开游戏界面时,需要对界面进行初始化,在主界面的构造函数里,已经对一些需要用到的量进行了相应的初始化,其次就是:1、调用ini()方法对程序中所要用到的二维数组进行初始化,程序如下:publicvoidini(){//初始化matrix矩阵LINE_NUM=COLUMN_NUM=8,分别为二维数组的行数与列数for(inti=0;i<LINE_NUM;i++){for(intj=0;j<COLUMN_NUM;j++){if((i==3&&j==3)||(i==4&&j==4)){matrix[i][j]=1;//此处初始时放置白子}elseif((i==3&&j==4)||(i==4&&j==3)){matrix[i][j]=-1;//此处初始时放置黑子}else{matrix[i][j]=0;//其它位置初始时无子}}}}2、调用checkObjects(nextToGo)方法检查下一个要走棋的一方所能到达的所有地方(即目标位置、将要走棋的一方可以放棋的地方),这个方法里边会修改matrix矩阵的值,在能到达

最近更新

细胞粘附压电传感能耗检测研究的开题报告 2页

2024年土地流转合同标准范文(二篇) 4页

给老师的感谢信15篇 25页

秦皇岛外国语职业学院发展规划研究的开题报告.. 2页

美好的大学生活PPT课件 20页

痰瘀阻络与高血压病病理变化相关性的理论探讨.. 2页

船舶买卖的合同(33篇) 162页

田径运动会管理系统的分析与设计的开题报告 2页

生态脆弱区石化工业开发的生态承载力研究——.. 2页

2023-2024年广东省深圳市龙华高级中学高二上学.. 10页

一元二次方程综合题(一)(教师版)汇总 9页

2024四川省继续教育公需科目复习重点试题 10页

河南省高校高水平田径队竞教结合的现状调查研.. 2页

余杭高级中学自主招生数学试卷 10页

2024年初中教师年终工作总结简单版(2篇) 3页

2023年中考语文真题分项汇编(全国通用):专题.. 6页

(新版)车工(初级)资格考试题库(含答案) 114页

木兰科植物在安徽省城市园林绿化中的应用研究.. 2页

2023-2024学年河南省漯河市高中数学人教A版选.. 12页

呼吸内科一科一品优质护理汇报 30页

公园调研实习 8页

《战略财务管理》 64页

混凝土拌合水PPT课件 45页

地盘真经 弥勒龙华正册真经 6页

检1-土建与精装交接检查表 3页

六祖大师法宝坛经(元 宗宝 编) 31页

小学数学教学论 10页

幼儿心理学一二章试题 2页

2006年公务员工资制度改革方案实施办法 7页