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矩阵的值,在能到达

最近更新

2025版建筑材料采购及售后服务保障合同 14页

2025版彩钢房租赁及配套绿化服务合同 16页

2025版彩钢隔热隔音屋面施工合同 15页

2025版情侣恋爱关系情感投资合同 11页

2025版户外活动场地借用及安全保障合同 14页

2025版房地产开发担保贷款合同模板 17页

2025版手机及平板电脑销售合同范本 17页

2025版投资者权益普法宣传教育及纠纷调解服务.. 11页

2025版抵押房屋抵押权设立及登记合同 16页

2025版担保期限最长与金融机构合作协议 15页

2025版拆除工程拆除物处理与环境保护合同示范.. 15页

2025版挡土墙工程绿色施工劳务分包合同 12页

2025版教育器材采购合同范本大全 11页

2025版教育软件资源置换协议范本 16页

2025版数据中心设备安装制作服务合同 15页

2025版文化创意产业项目借款合同示范文本 15页

2025版文化演出场地租赁合同模板 16页

2025版新型建筑材料应用标准化厂房建设合同范.. 17页

2025版新材料研发与应用承包经营合同 15页

2025版新能源发电项目投资合作协议范本-@-1 14页

2025版新能源汽车销售居间代理协议 15页

2025版旅游景区保安服务及应急预案范本 14页

2025版无公害蔬菜生产与菜场承包合作协议 14页

2025版智慧农业草原养殖项目承包合同 18页

2025版智慧小区保安与家政保洁服务全面合作协.. 14页

2025版智能交通设施采购合同管理实施 15页

2025版智能办公楼电梯安装及智能控制系统协议.. 14页

2025版智能城市建设承包协议范本 17页

2025版智能家居承揽工程合同范本 17页

2025版智能建筑低压配电箱采购及智能化改造合.. 14页