VB课程设-02--070453--中国象棋复盘.doc_第1页
VB课程设-02--070453--中国象棋复盘.doc_第2页
VB课程设-02--070453--中国象棋复盘.doc_第3页
VB课程设-02--070453--中国象棋复盘.doc_第4页
VB课程设-02--070453--中国象棋复盘.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国象棋复盘课程设计报告(VB) 编号:02中国象棋复盘设计报告学院 机械学院 班级 机设074班 学号 070453 姓名 臧文涛 成绩 一、设计思路 1.要达到的目的培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行界面设计,用VB的文件功能读取文件内容并进行处理。2.关键问题的解决文本棋谱文件的读入Dim oneLine As StringOpen infile For Input As #10 打开文件。infile 变量中存放的是文件的名字While Not EOF(10) Line Input #10, oneLine 读入一整行文本 此时已经将文件中的一整行读入了变量oneLine,在下面加入分析代码WendClose #10关闭文件声音的插入:MMControl1.Command = closeMMControl1.DeviceType = WaveAudioMMControl1.FileName = App.Path & 开局.wav 开局声音MMControl1.Command = OpenMMControl1.Command = play时间控制:s = s + 1If s 59 Thenm = m + 1s = 0End IfLabel1.Caption = Format(m, 00) & : & Format(s, 00)If s = 5 Then 上一步.Enabled = TrueIf nn = 0 Then nn = 1Dim YIju As String YIju = txt(nn)Call 走棋(YIju)s = 0设置自动运行时间间隔:Private Sub label1_dblClick()Dim 重置时间间隔重置时间间隔 = InputBox(请输入每步用时(1-60秒))Do ti = -1 If IsNumeric(重置时间间隔) Then ti = 重置时间间隔 Else 重置时间间隔 = InputBox(请重新输入每步用时(1-60秒)) End IfLoop Until ti = 0list1.SetFocusTimer1.Enabled = FalseEnd Sub二、模块之间的调用关系,或程序流程图调用调用调用Zouzi走一步棋子的子程序各个棋子走法的程序处理”前炮平3”类的棋谱语句查找棋子的程序数值变换的几个程序数值变换程序将程序中所处理的步法转换成为一般的步法调用调用调用走子及开盘棋子定位棋盘数组的赋值程序显示程序判断是否吃子,将军,可行程序三、部分程序关键源代码及注释Private Sub Command2_Click()=开局,显示Dim i As IntegerFor i = 1 To 32 Call 摆子(i) = 调用子程序 Qizi(i).Visible = TrueNextQizi(0).Visible = False上一步.Enabled = True下一步.Enabled = TrueCommand5.Enabled = TrueCommand3.Enabled = TrueTimer1.Enabled = TrueTimer2.Enabled = Not Timer2.Enabled=对声音进行设置MMControl1.Command = closeMMControl1.DeviceType = WaveAudioMMControl1.FileName = App.Path & source开局.wav 开局声音MMControl1.Command = OpenMMControl1.Command = playEnd SubPrivate Sub Form_Load()=加载qipanqipan.BackColor = RGB(200, 500, 100)qipan.ScaleMode = 5qipan.ScaleTop = 0qipan.ScaleLeft = 0qipan.ScaleWidth = 9qipan.ScaleHeight = 10 =赋值 A = Array(车, 马, 象, 士, 将, 炮, 卒, 车, 马, 相, 仕, 帅, 炮, 兵) =给数组盘赋值 For i = 0 To 8 盘(i, 0) = 17 + i 盘(i, 9) = 9 - i Next i 盘(1, 2) = 26 盘(7, 2) = 27 盘(1, 7) = 11 盘(7, 7) = 10 For i = 0 To 8 Step 2 盘(i, 3) = i / 2 + 28 盘(i, 6) = 16 - i / 2 Next =加载棋子控件 A = Array(一, 二., 三, 四, 五, 六, 七, 八, 九) For i = 1 To 32 Load Qizi(i) Qizi(i).Picture = LoadPicture(App.Path & & qizi1 & & i & .gif) Next For i = 1 To 18 If i 9 Then Label2(i).Caption = A(i - 10) Next =点开始后进行计时 m = 0 s = 0 Label1.Caption = Format(m, 00) & : & Format(s, 00) End Sub=对时钟控件的设置Private Sub Timer1_Timer()s = s + 1If s 59 Thenm = m + 1s = 0End IfLabel1.Caption = Format(m, 00) & : & Format(s, 00)=通过case事件对程序进行多个快捷键的设置Private Sub list1_KeyDown(KeyCode As Integer, Shift As Integer)Select Case KeyCode Case 90 Z键读取棋谱 Command1_Click Case 75 K键结束棋局 Command2_Click Case 27 Esc键退出 Command5_Click Case 88 X键暂停棋局 下一步_Click Case 83 S键退出 上一步_ClickEnd SelectEnd Sub四、设计方案的完善及目前存在的问题1设计方案要完善的地方增加位置指示增加棋子的可拖动属性增加人机对战增加棋子的可拖动属性增加存盘的功能2. 目前存在的问题不能直接拖放棋谱文件到本程序图标能够实现自动运行程序并直接打开棋谱不能拖放棋谱文件到本程序图标能够实现自动运行程序并直接打开棋谱上一步只能返回一步不支持换边缺少增加鼠标直拖棋子功能,即可以随时将任意一个棋子拖动到其它位置方便分析拆解五、本次设计的收获及心得体会其实有些东西并没有想象中的那么难,只要有恒心,铁杵磨成针。刚开始选这道题认为很有意思,全凭兴趣来,后来仔细观察才发现这道题确实有难度,不过经过自己的反复钻研与请教别人终于解决了大多数的问题。六、对该题目和VB设计的意见和建议1. 对该题目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论