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

下载本文档

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

文档简介

1、中国象棋复盘设计报告学院 机械学院 班级 机设076学号070501姓名 康煦晖 成绩 一、设计思路1要达到的目的 培养综合利用vb语言进行程序设计的能力 培养vb的标准控件进行界面设计的能力 用vb的文件功能读取文件内容并进行处理的能力2 关键问题的解决 棋子的载入 棋盘的更换 走棋,读棋 各个过程的建立三、部分程序关键源代码及注释private sub form_load()dim j%,k%dimx%,y%dim m%, n%, v%bs = 1 cishu = 0time.caption = format(m, h00n) && format(s, h00u)ti =

2、5,初始化时间间隔qp = n经典"qz ="普通"call qzicall qpa,载入棋盘坐标fory=ltolobody(y) = 75 + (y -1) * 682nextyfor x = 1 to 9bodx(x) = 75 + (x 1严 680nextxlocate,定位棋子'定位棋路forj = lto9for k = 1 to 10bod(j, k) = board(j, k)bodbf(j, k) = board(j, k)next knextjend subprivate sub form_oledragdrop(data as da

3、taobject, effect as long, button as integer, shift asinteger, x as single, y as single)form_loadcommandl_clickend sub'走棋方闪烁if command6.enabled = true thenimage4<visible = not image4.visibleend ifif rob thenimage2. visible = falseimagel.visible = not imagel.visibleelseimagel.visible = falseima

4、ge2.visible = not image2.visibleend ifcishu = cishu + 1end subprivate sub 换方_click()if picturel.scaletop = 0 thenpicturel.scaleleft = 6210 570picturel .scaletop = 6870 - 570elsepicturel.scaleleft = 0picturel.scaletop = 0end ifpicturel .scale width = -(picturel .scale width)picturel.scaleheight = -(p

5、icturel.scaleheight) end subprivate sub 暗夜clickoqp = ”暗夜”call qpaend subprivate sub 结束_click()dimi%timerl.enabled = truestarttimerl.enabled = falselistl.clearcommandl.enabled = truecommand2.enabled = falsecommand3.enabled = falsecommand4eenabled =falsecommandseenabled =falsecommand6>enabled =fals

6、eend subsub moe(),获得移动棋子的始末坐标dim k%,h%,n%,sig%, xy%,xi初横坐标,yi初纵坐标,xy终量或增量,xx末横坐标,yy末纵 坐标dim zhao as stringif not rob then sig = -1if rob then zhao = right(listl.list(bs), 4) else zhao = right(list 1 .list(bs), 4),读取一行棋谱的招 法,bs为步数,分析棋谱,获取横坐标,终量或增量,棋子种类xy = num(mid(zhao, 4,1)if mid(zhao, 1,1)= ”前"

7、;or mid(zhao, 1,1)= ”后"thenselect case mid(zhao, 2,1)case n±n, n仕"n = sig * 2case ”相;像”n = sig * 4case ”将舄”帅”n = sig * 1case ”卒蔦”兵”n = sig * 7case '车"n = sig * 5case ”炮”n = sig * 6case” 马”n = sig * 3end selectif (mid(zhao, 1,1)二”前"and rob) or (mid(zhao, 1,1)= ”后” and not

8、 rob) then'判断棋子位置,即获取纵坐标k = 1for h = 1 to 9for k = 1 to 10if bod(h, k) = n thenexit forend ifnext knext helse,判断棋子位置,即获取纵坐标k = 10for h = 1 to 9 fork = 10tol step-1if bod(h, k) = n thenyi = k: xi = hexit forend ifnext knext hend ifelsejk = num(mid(zhao9 2,1)xi = 5 + 5 * sig sig * num(mid(zhao, 2,

9、1)select case mid(zhao, 1,1)case仕"n = sig * 2case '相'像"n = sig * 4case n将蔦”帅”n = sig * 1case '卒'兵"n = sig * 7case ”车”n = sig * 5case ”炮”n = sig * 6case ”马”n = sig * 3end select,判断棋子位:i msblel即获取纵坐标for k = 1 to 10if bod(xi, k) = n thenexit forend ifnextkend if'获得移动棋

10、子终棋路select case mid(zhao, 3,1)case ”平”xx = 5 + 5 * sig sig * xyyy = yicase ”进”select case abs(n)case 2, 3, 4xx = 5 + 5 * sig sig * xyyy = yi sig * (abs(n) abs(5 + 5 * sig sig * xy xi)case elsexx = xiyy = yi - sig * xyend selectcase ”退”select case abs(n)case 2,3,4xx = 5 + 5 * sig sig * xyyy = yi + si

11、g * (abs(n) - abs(5 + 5 * sig - sig * xy - xi)case elsexx = xiyy = yi + sig * xyend selectend selectif yy > 10 or yy < 1 thenprint 12end ifend subsub mov(),移动红方或黑方棋子call moeatk = ind(xi, yi),判断攻方棋子数组下标mmcontroll.command = ''close''mmcontroll.deviceiype = nwaveaudionif bod(xx, y

12、y) <> 0 thendef = ind(xx, yy),判断守方棋子数组下标imageo(def).visible = falseimageo(def).tag = 1mmcontroll.filename = app.path & nsource吃子.vvavn '吃子声音elsemmcontroll.filename = app.path & "'source'走子wav” '走子声音end ifif imageo(o).visible and imageo(16).visible then mmcontroll.c

13、ommand = ''open''mmcontroll.command = nplaynimageo(atk).left = bodx(xx)imageo(atk)>top = body(yy)bod(xx, yy) = bod(xi, yi)bod(xi, yi) = 0image3top = body(yi)image3.left = bodx(xi)image4.top = body(yy)image4xeft = bodx(xx),判断棋局是否结束if imageo(o).tag + imageo(16).tag = 1 or listl.list

14、index = maxlistindex 2 thentimerl.enabled = falsecommand4.enabled = falsecommand6.enabled = falsemmcontroll.command = "close''mmcontroll.devicetype = mwaveaudiohmmcontroll.filename = app.path & nsource结局.wavn '结局声音mmcontroll.command = "open"mmcontroll.command = "play"end ifif bs = 0 then command5.enabled = trueend sub四、设计方案的完善及目前存在的问题1. 设计方案要完善的地方 代码需要进一步简化 有些过程不够完整 不能直接调用上一步2. 目前存在的问题 不能直接调入棋谱 不能人机对弈 不能用鼠标拖拽五、本次设计的收获及心得体会通过本次的课程设计,我深深的感觉到了这门课程是非常有趣的,同时也体会到这课程也是相

温馨提示

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

评论

0/150

提交评论