收藏 分享(赏)

java黑白棋技术文档.doc

上传人:天天快乐 文档编号:1144708 上传时间:2018-06-15 格式:DOC 页数:5 大小:349.50KB
下载 相关 举报
java黑白棋技术文档.doc_第1页
第1页 / 共5页
java黑白棋技术文档.doc_第2页
第2页 / 共5页
java黑白棋技术文档.doc_第3页
第3页 / 共5页
java黑白棋技术文档.doc_第4页
第4页 / 共5页
java黑白棋技术文档.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 Java 黑白棋技术文档 1, 程序概览:程序分成两部分。第一部分是单机版,第二个是网络版,在进入登录界面的时候会出现选择对话框(如下图所示):会出现两个选择项一个是“网络版” ,一个是“单机版”a,在单机版中设计三个程序:一个是支持双人对战的,第二个跟第三个是支持人机对战的,第二个是人持黑子,计算机持白子,第三个是人持白子,计算机持黑子。I,单击“单机版”确定后,会再次出现一个对话框(如下图所示):单击“单机人人对战”确定后,会出现这样的界面:在“人人对战”界面包括了棋盘界面,棋子统计面板,计时面板,还有功能面板,功能面板包括悔棋,保存,打开,重启,关闭按钮,在悔棋按钮有一个监听器,在下棋

2、的对方弹出一个对话框(如左图所示) ,点击“保存”按钮会出现一个对话框: 表示已存盘,但是存盘只能存储当前的下棋记录, “打开”按钮可以打开上一次下棋的记录,“重启”按钮, “重启”按钮有一个监听器,在单击“重启”按钮之后,会出现一个对话框: ,重新回到这个选择对话框,这样可以再次选择你的对战方式。最后一个“关闭”按钮,会退出程序的运行。上面面板的是一个时间计数器 ,按钮“暂停”和“启动”分别是控制计时器的暂停和启动的,初始的时间是 21 秒。下面是棋盘主界面: 棋盘是 8x8 型的,棋子分为黑白两种。在右边是黑白棋的计步器: 根据黑子跟白子的步数来判断输赢。II,对于人机对战(无论是人黑还是

3、人白) ,出现的界面跟上述的是一样的,还是分成棋盘面板,计时面板,计歩面板,按钮面板。b,在执行“网络版”的时候,首先应该执行服务端程序,在这段程序中我们默认是将主机既作为服务端又作为客户端,主要是为了程序的测试方便,其实在程序的执行过程中还可以把服务端和客户端装在不同的主机上,在选择“网络版”单击确定以后,会弹出一个对话框: ,单击确定后会出现如下的界面 在左边的界面跟单机版的界面是一样的,在右边是添加三个面板。最上面的面板是系统消息面板,比如假如可以显示玩家的登录还有就是提示玩家的持子种类,在下面的面板是聊天的面板显示玩家的聊天记录,最下面的是聊天的输入框,添加一个键盘监听还有一个按钮监听

4、。同时该程序还支持双人对战,和多人观战,多人聊天。2, 程序的主要思想:总体的思想是:棋盘是由 64 个按钮构成的,白棋下的地方按钮会变成带有白的的按钮,同理黑棋下的地方会变成带有黑的按钮。在程序的实现方面,是用 1 表示白棋的,2 表示黑棋,0 表示没有下棋的位置。I,对于单机版而言:a,人人对战:该段程序主要关键是判断是否可下,还有就是判断可下以后的翻子。在这段程序这种首先构造一个三维数组,数组的第一维是下棋的步数,第二维和第三维分别是代表棋盘的 x 轴和 y 轴,前面的第一维的主要作用是为了记录下棋的步数还有下一盘该轮到谁下棋。在判断某一个位置是否可下的时候,首先是对该位置进行监听,假设

5、这个位置是(x,y) ,则要对该位置的周边八个位置进行观测, O O (X,Y) O O O在这段程序就设计一个循环,1 2 34 (x,y) 56 7 8先假设(x,y)位置是黑棋子,先利用一个条件判断语句对一号位置进行判断,假设一号位置是白棋的时候,则对 1 号位置的上对角进行判断,直到上对角出现一个黑棋则这个条件判断结束,而这个(x,y)位置为可下的,当判断的位置超过了棋盘的位置还有 1 号位置是黑棋的时候,则换做 2 号位置进行判断,依此类推,但到八号位置判断都结束时候还没有判断出这个位置是可下的时候,那么这样的就说明这个位置是不可下的,当你点击这个位置时,会跳出一个对话框提示你不能再

6、此处下子。而对于翻子,当对一个位置进行判断的时候,判断出该位置为可下的时候,这样会把周围的被围住的白棋的坐标位置的数字由1 变成 2,在对棋盘进行重绘,这样就实现了翻子的功能。b,人机对战:在人的这一方面跟上述的人人对战是一样的,主要是考虑到对可下 的判断还有就是对于翻子的控制,在机器方面就是实现一个循环从开始的(1,1)位置进行判断,从这个位置一直判断有何位置是可下,假设判断出来了,然后就是在该位置下一个子,其实现方式和上述的人人对战是一样的,在这里我们实现的单机版的人机对战的方法是很简单的,在机器这一方面我们实现的是很呆板的循环,这也是这段程序的缺点之一,没有很智能化的判断下棋的位置。人机

7、对战的关键就是机器的判断下棋的位置,然后就是判断棋子是不是可下,以及翻子,这个跟上述的人人对战是一样的。 II,对于网络版而言:服务端:在服务端首先是利用套接字 serversocket 对端口进行监听,利用一个线程实现一个对服务器的功能,同时利用一个循环使得服务器只能够接受 10 个客户端的连接,这样实现两人游戏,八人观战的局面。在服务器的关键是对线程里面的 run 方法的书写,线程的 run 方法,在下棋方面主要是利用跟上面的单机版一样的原则利用数字来代表黑白棋棋盘的信息,这样就可以利用 dataintputstream和 dataoutputstream 形成数组在各组之间进行信息的传递

8、。客户端:在客户端我们先是进行 socket 与服务端进行连接,在数据的传递方面还是利用数字的传出和传入,在接到服务端的传入的时候,在棋盘方面我们再就是利用这个数据对棋盘进行重绘。但是是如何的区分棋盘的数据和发送的数据,在这段程序里我是还是利用数据来区分到底是棋盘的数据还是发送按钮数据,还是悔棋数据的。3,程序的主要的缺陷:a,单机版的人机对战的算法的缺陷,在这段程序之中只是把利用简单的循环来实现机器的下棋位置的判断,原来有一个想法就是对先把所有的可能的位置记录下来储存在一个数组里面,然后在利用循环判断来统计每一个位置的可以翻转对方棋子的个数,然后在可下最多的位置下一个棋子,然后对对方的棋子进

9、行翻转。b,然后就是没有建立一个游戏大厅,允许多个玩家进行游戏,只能支持一对玩家进行游戏,其他的玩家只能进行观战。c,在保存记录方面,只能保存一次数据的结果,而不能保存多次的结果。d,服务器方面没有更多的管理程序段,比如没有程序界面,没有对每次登陆的玩家进行记录4,下棋的记录:有两次下棋的记录:一则是人机对战的记录,此时人是持黑棋机器是持白棋,在这次的下棋的记录中步数总共是 60 步,最后是黑棋赢,黑棋的个数是 43,白棋的个数是 21下面是一个网络版的观战玩家的界面:5,编写程序成员:刘本俊,王震,王锦辉,黄浩,王雅竹,刘婷婷6,该次上交的主要是该程序的源代码文件夹,还有执行程序文件夹,里面包括一个服务器程序,还有一个就是客户端登陆程序,还有一个此文档。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报