中国象棋复盘

中国象棋复盘

ID:38346762

大小:333.00 KB

页数:6页

时间:2019-06-10

中国象棋复盘_第1页
中国象棋复盘_第2页
中国象棋复盘_第3页
中国象棋复盘_第4页
中国象棋复盘_第5页
资源描述:

《中国象棋复盘》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、河北工业大学计算机软件技术基础(VB)课程设计任务书本题难度级别:A实现基本要求代码:约230行主要涉及:基本控件、算法、文件操作一、设计题目:中国象棋复盘(出题人:曹新国)因题目中涉及象棋规则,不会下棋的不要选。二、目的与要求1.目的培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行界面设计,用VB的文件功能读取文件内容并进行处理。2.基本要求装载一个文本棋谱文件,按照棋谱的内容将弈棋过程复现出来。详细要求如下:n能够装载任意一个与联众中国象棋游戏存盘文本文件格式兼容的棋谱文件。n装载棋谱后先暂停,点开始后再出现所有棋子,然后进行计

2、时并可以走子。复盘过程中可以随时点开始并能返回初始状态。n每走一步,按照棋谱中的指令在棋盘上吃子或者更改棋子的位置,棋子可以以图片形式表现,也可以用标签标明棋子所在位置。n可以利用下一步或者上一步来回进行研究。根据当前进度,要自动禁止不可用的钮。n支持直接定位功能,可以通过双击棋谱列表中的任意一行让布局呈现此招前的状态。n棋局开始后,有标志(一个闪烁的“将”或“帅”的图标)指示当前的行棋方。u为了能仔细分析棋局,可以通过点击时间显示标签暂停/恢复自动走棋。u支持自动演示,5秒钟不手动走子则自动走子。双击时间显示标签可进行设置,设置有效范围为1-60秒(因为

3、可以暂停/恢复,不需要太长,否则就不是象棋而是相面了)。u能够表示当前着法涉及到棋子的移动起止位置,以闪烁方框或者其它形式。u支持键盘热键操作,例如:上一步,下一步,打开文件,退出等。3.创新要求在基本要求达到后,进行创新设计,创新方向提示如下:★给程序增加换棋盘和换棋子功能。如果是文字表示,改变字体属性即可,如果以图像方式表示棋盘和棋子,设计素材中提供了两个棋盘和两套棋子的图片可供使用。★拖放棋谱文件到本程序图标能够实现自动运行程序并直接打开棋谱。★直接将棋谱文件拖入界面上的棋谱列表框能够装载棋谱(即不用打开文件对话框)。★增加走棋时的声音效果:分为落子

4、、吃子和将军三种不同声音。(设计素材中已经提供了三种不同的声音文件,也可以自行加上开局和终局声音效果)★支持换边。即可以将红方和黑方的位置进行交换。★增加鼠标直拖棋子功能,即可以随时将任意一个棋子拖动到其它位置方便分析拆解。(设计素材中已经提供了手形光标文件,可直接利用)★支持人工单机对弈模式(需要先完成上一个要求),对弈时可以记录行棋过程并可存成自身能处理的棋谱文件。VB课程设计任务书–中国象棋复盘第6页共6页★实现人机对弈功能。(素材中提供了VB和VC的源程序,可供参考)三、设计方法和基本原理1.问题描述在进行象棋游戏时,一般的程序都能将走棋过程保存成

5、棋谱,用于事后分析。通过复现别人的下棋过程从中学习来提高自己的水平,本题就是要设计这样一个程序,将给定的一些棋谱(见设计素材)的走法以直观的形式展现出来。2.问题的解决方案①设计程序界面。因为除了通用对话框外和图像列表控件以外全是基本控件(这两个控件都是运行时不可见控件,可以随意放置),界面设计没有什么难度,放到合适位置即可。完成本题基本要求需要如右图所示的一些控件,包括5个按钮用于处理不同的命令,一个列表框用于显示棋谱,一个图像列表控件用于提供棋盘和棋子图片,一个定时器用于控制走棋方闪烁和计时,一个框架用于改善界面布局,两个Shape控件用于表示最后移动

6、棋子的起止位置,一个标签显示时间,还有几个图片框用于显示走棋方及棋盘和棋子(棋子显示用控件数组)。②设置控件属性先将程序中需要的图片装入图像列表控件ImageList1,在运行时根据需要从中取出用于显示。如果采用的不是图像棋盘棋子界面,这一步可以省略。设置定时器的定时间隔为500ms。设置Form的Icon为给定的“中国象棋图标.ICO”,以取代VB默认的程序图标。设置Form的其它属性,具体特性可以通过运行所附的样例程序来观察。设置Shape1的顔色属性和宽度属性。(仅用于“表示出最后移动的棋子”功能)设置其它控件的属性,在此不一一指明。③编写代码包括事

7、件处理过程和功能函数,还有必要的声明。变量声明部分包括本程序所需要的变量和数组,数组主要是棋盘数组,可以定义为10×9,还需要定义几个窗体级的变量,用于表示当前走棋步数,当前用时,轮到哪一方走棋,是否显示位置标志等。事件处理和功能模块主要包括下面几个:Form_Load()作一些初始化的工作。主要是加载用于显示棋子的控件数组。Form_KeyDown(KeyCodeAsInteger,ShiftAsInteger)处理快捷键,包括:ESC键,N键和P键,根据实现情况也可以包括其它键。CommandXXX_Click()处理各个命令。包括载入文件,开始,下一

8、步,上一步和退出。List1_DblClick()VB课程设计任务

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

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

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