- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
象棋暗棋赛
实验内容
本实验的内容:
实现一个象棋暗棋的基本游戏
能够与其他对手实现对战
在对战中,运用各种策略战胜对手
已有内容:
客户端代码框架
对战服务器(无需了解实现)
用户手册
需要完成任务
完成程序框架中的step函数,即对战策略
自行设计游戏界面(不要求图形化界面),实现复盘功能。
在不影响上述功能的基础上,自行创意。
游戏规则
棋盘大小4*4
棋子有明暗之分,开始时所有棋子均为暗,玩家可以选择翻开任意暗棋棋子,但只能移动属于己方的明棋棋子
棋子大小顺序:
帅(将) 兵(卒)
帅(将) 士 相(象) 车 马 炮 兵(卒)
帅(将)什么都可以吃,但是无法吃兵(卒)
炮只能隔子(明暗均可)吃,即中间必须隔1个子可以吃掉任何棋子,但炮走棋无吃子时仍旧是一格一格移动
所有棋子走棋只能横竖向每次移动1格
双方除兵(卒)各有两个外,其它棋子均只有1个,共 16个棋子
若2个棋子大小相同,相互吃子时,则2个棋子同时消失
比赛规则
整个比赛采用多轮淘汰赛制,每轮比赛胜者晋级下一轮比赛,如此进行多轮,直到产生冠亚季军
每轮比赛服务器随机从选手池中选取两名进行匹配对战
每轮比赛匹配的两人采用BO3,每回合输得0分、平得1分、赢得3分,得分多者晋级,若得分相同同时晋级
每回合的红方与黑方由服务器决定,棋盘布局由服务器随机生成
每回合采用计分制,吃掉对方棋子即可得分,每个棋子的分数如下:
帅/将
士/仕
相/象
车
马
炮
兵/卒
7
6
5
4
3
2
1
每回合每一步有时间限制,进行一定总步数(暂定每人50步)后,分数多者为本回合胜方。注意提高算法的运行效率,后续正式比赛中会考虑超时(暂定每步5秒)。
比赛注意事项
每轮比赛开始后,每位参赛者有且仅有一次连入服务器的机会,先连入的参赛者需要等待其他参赛者,所以程序运行后请不要再进行任何其他操作,双手离开键盘即可,当所有参赛者均连入服务器后,比赛自动开始。
对比赛结果有异议的同学可以要求助教给予相应的比赛记录日志复盘查看
任何违反比赛规则和注意事项的行为,后果自负
客户端代码框架
文件功能(只有打*的文件可以修改)
文件名
功能
Define *
定义认证ID、认证PASSWORD、服务器IP、服务器PORT
ClientSocket
实现与服务器通信
Square
定义棋盘格子的结构体
UNChineseChess *
实现整个游戏的主要逻辑。重要函数:observe和step
observe用于观测棋局变化
step实现每一步走棋策略(主要工作量所在)
只有step函数可以更改
Main
main函数
客户端代码框架
UNChineseChess.cpp
函数名
功能
authorize
认证IP和PASSWORD
gameStart/Over
开始游戏/游戏结束
roundStart/Over
回合开始/回合结束
oneRound
每个回合主要逻辑。可以在该函数中根据observe的返回码做相应的错误处理
observe
实现棋局变化的观测,并根据服务器返回结果更新棋局或报告相应错误
reversePiece
翻转某个位置棋子。参数:int row, int col
movePiece
移动或吃掉对方棋子。
参数:int srcRow, int srcCol, int desRow, int desCol
noStep
空操作
step
实现每一步具体策略的函数(待实现部分)
客户端代码框架
observe函数返回码
返回码
描述
0
操作成功,已更新相应棋局变化
1
游戏结束
2
回合结束
-1
报文格式错误
-2
坐标相关错误。例如坐标越界等,
-3
与棋子颜色相关错误。例如欲吃己方棋子或欲操作对方棋子等
-4
无效step。例如src位置无棋子、将帅欲吃兵卒、src位置棋子小于des位置棋子、炮隔子移动或炮不隔子吃子等
-5
其他错误
step函数实现建议
服务器上每个回合每个客户端给3次错误(包括超时和错误)机会,一旦出现第4次错误本回合即判负,不管当前格局如何,送对方3分
A方出错,对于B方而言等同A方执行noStep
强烈建议:在每一步执行中如果未搜索到有效执行方式,务必调用noStep函数,否则会导致超时判负
服务器与程序调试
本次作业会直接将服务器发放给大家做调试用
服务器有一下几个模式:
模式值
模式
作用
0
比赛模式/对战模式
比赛模式用于正式比赛;对战模式可以用于同学间的对战,以进行策略性调试
1
测试模式
与服务器Robot(无策略性)对战,主要用于整个程序功能性测试正确与否
2
调试模式
供助教进行服务器调试
服务器自带复盘界面,以方便同学们调试使用
具体使用请参见:UNChineseChess-Server用户手册
鉴于
您可能关注的文档
最近下载
- 《Excel 2016电子表格制作案例教程》PPT课件(共10单元)项目十Excel综合应用-薪资管理.pptx VIP
- 劳动合同下载(合同范本).pdf VIP
- 2万吨污水处理厂开题报告.doc VIP
- (人教PEP版2024)英语三年级下册 Unit2 大单元教学设计_可搜索.pdf VIP
- 现代工程设计制图习题集(第四版)参考答案.ppt
- 2025年职业技能鉴定考试(无人机驾驶员·技师/二级)历年参考题库含答案详解.docx VIP
- A2O污水处理厂设计开题报告.doc VIP
- 《Excel 2016电子表格制作案例教程》PPT课件(共10单元)项目三编辑工作表和单元格.pptx VIP
- 2025年河北省政府采购评审专家考试真题含答案.docx VIP
- (2025版)围产期降压药物临床应用管理指南解读ppt课件PPT课件.pptx VIP
原创力文档


文档评论(0)