vb黑白棋游戏课程设计报告

vb黑白棋游戏课程设计报告

ID:9411575

大小:217.50 KB

页数:12页

时间:2018-04-30

vb黑白棋游戏课程设计报告_第1页
vb黑白棋游戏课程设计报告_第2页
vb黑白棋游戏课程设计报告_第3页
vb黑白棋游戏课程设计报告_第4页
vb黑白棋游戏课程设计报告_第5页
资源描述:

《vb黑白棋游戏课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、计算机实习报告姓名:班级:学号:系部:专业方向:指导老师:电子科技学院2006年9月18一:选题需求分析题目要求:设计一个图形工作方式下的10*10黑白棋棋盘,模仿两个棋手对弈的过程,并报告最终输赢结果。题目分析:设计黑白棋为人机对弈,人执白旗,计算机执黑棋,轮流走棋,人所执白棋落定后,计算机(执黑棋)选择最优摆子点摆子,每方都试图在游戏结束前让自己棋子的数目多于对方,棋子多者胜。据选题要求将棋盘设计为10*10格,初始状态在棋盘中央交叉排放黑白旗各两枚,为统计棋子个数,有一个棋子记一分,人执白棋,计算机执黑棋,且

2、白棋先走。下棋时,棋子的位置必须是以自己的棋子能包围住对手一个或多个棋子,被包围的对手棋子将变成自己的棋子。包围的方向可以使上下左右斜线共8个方向,只要能连成一条线即可。当一方摆子,但没有可以包围对手棋子的位置时,该方必须听步,通过放弃一子让对手走棋,直到该方可以走子为止。当棋盘上有一方的棋子为0(也就是被对方吃完)或下满100格,游戏结束,旗子少者输。二:程序设计1:设计思路从程序界面,考虑此为一个二维平面图,所以可以用数组形式表示棋盘上的位置。则该程序接收到棋手按键操作,既棋手放子,就判定是不是有效位置,也就是

3、能不能包围住对方棋子,如果能,便对棋子所在的位置往上下,左右,左上,左下,右上,右下8个方向寻找被包围住的所有棋子(必须是连续的,中间不能有空格),将这些被包围住的对手棋子都变成自己的棋子。当白棋落定后,计算机(执黑棋)选择最优摆子点摆子并吃掉白子即将其变为黑子。如果没有这样的位置可以落子,则停步,让对方走棋,重复上述步骤,直到游戏结束。然后对当前棋盘中的黑白棋个数进行统计并输出结果。如果想提前终止游戏,可以提前按退出。2.设计流程图3.设计流程及测试结果(1)定义变量定义使用到的常数、全局变量等。如游戏的时间、状

4、态、黑白棋子的个数等。(2)Form_Load()设置游戏的初始界面首先设置窗口的位置,检测程序是否正在运行以防止多次打开程序。再设置‘后退’按键不可按,‘放弃一子’键不可按,且黑白英雄榜不可见。最后调用drawnewqp画棋盘表格。即可得到游戏初始界面如下所示:在游戏一栏中包含开始游戏、载入游戏、保存游戏、退出及黑白棋英雄榜几个按钮。在帮助一栏中有游戏规则及关于按钮。(3)drawnewqp()画棋盘表格设置棋盘的可用的区域,剩余区域用于显示时间、坐标、黑白棋计数显示、提示棋手所执棋子为白色以及工具栏(包括游戏开

5、始、载入、推出、放弃棋子、后退和游戏规则等)。然后画10*10的表格线,再设置线条宽度等。如上图所示。(4)窗体的设置窗体的设置中包含了游戏窗体以及黑白英雄榜中各个按钮控件的设置在属性窗口中可设置它们的属性。设计出的窗体如下图所示:(4)开始新游戏()在窗口工具栏的游戏中按下开始游戏键,游戏开始,此时在棋盘中央交叉处已排放黑白棋子各两枚,则显示‘白棋先有2子’及‘黑棋现有2子’且可以计数,时间开始计时,坐标值随鼠标移动而改变,‘放弃一子’键可按。该函数在调用时都将清空棋盘以及将游戏时间清零,这样在按下开始游戏键后游

6、戏自动进入新一局。开始时的界面如下所示:(5)放子()1〉首先判断是否可以放子:从上下、左右、左上、左下、右上、右下8个方向判断是否可以放子。放置棋子的位置必须是以自己的棋子能包围住对手一个或多个棋子,包围的方向可以使上下左右斜线共8个方向,只要能连成一条线即可满足要求。若放子位置有棋则无效。2〉调用qp_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)用于提示棋手鼠标所在处是否可以放子,如果鼠标所在区域可以放子,则鼠标为“十字”图标,否则为

7、“禁止”图标。3〉若有多处可以放子,则可选最优位置放子;如若整个棋盘有空格但不符合放子要求,即无棋可走,则需放弃此步,让对方下棋。(6)翻转棋子()当一方棋子落定后,就要分别往8个方向判断是否包围住对方棋子,如果是,则改变棋子颜色,也就是棋盘上黑白棋子的个数要发生变化。i代表行,j代表列,对于10*10的棋盘,它们的值为0-9,如果j<8,往右边判断,从当前位置开始,用循环语句判断判断右边是否有一个或连续多个对手的棋子,遇到自己的棋子或空格则结束循环,如果循环结束不是遇到空白,且列坐标小于10,则说明这些位置的棋子

8、是被自己包围的对手棋子,将它们吃掉,也就是改变为自己的棋子,同样的方法向左、上、下等8个方向进行判断。(7)黑子随即下子并吃掉白子()由于设置由计算机执黑子,则应先对黑子可以放子的地方划分等级,等级高的位置优先走。共将其分为15个等级:0级:不能放子1级:2级:四个角的旁边一格3级:四条边框的旁边一格4级:只能吃一个方向的子,且吃了别人后,容易被别人吃回去5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。