赛马游戏VB课设报告.docx
《赛马游戏VB课设报告.docx》由会员分享,可在线阅读,更多相关《赛马游戏VB课设报告.docx(23页珍藏版)》请在冰豆网上搜索。
赛马游戏VB课设报告
沈阳航空航天大学
课程设计
学号_2013040601458_
班级_34060110_____
姓名周兴义______
指导教师_杨煦_____
2014年10月24日
沈阳航空航天大学
课程设计任务书
学院:
机电工程学院专业:
机械设计制造及其自动化班级:
34060110
学号:
2013040601458题目:
“赛马”游戏
一、课程设计时间
2014~15第1学期第8周,共计1周,20学时。
二、课程设计内容
用VB编写一个简单的“赛马”小游戏,运行程序后,先选择相应的赛马进行投注,然后单击“开始”菜单,开始赛马。
当有一只赛马先跑到终点时,则比赛结束,并提示用户输赢结果。
程序界面可参考右图,用户也可在实现功能要求的前提下自行设计操作界面,参考界面中用到的相关图片由教师提供。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
需求分析4
设计分析4
技术要点5
主要界面截图6
总结7
完整的源程序8
参考文献9
需求分析
赛马游戏需求:
此游戏实质上是按照以前的赌马游戏编写而得,现在有了这个赛马的小游戏可以让玩家体验到赌马游戏的玩法与乐趣,此游戏纯属娱乐,放松心情。
设计分析
(1)概述:
对于“赛马”游戏的设计主要运用到了对command,label,form,timer,image等控件的属性的使用;对数组的运用;以及对case语句,循环语句随机数等程序的灵活使用。
我的软件主要做到了对“比赛”中的每一匹马赢的概率都是随机的,也就相当于概率相等的。
(2)总体设计:
(3)详细设计:
技术要点
赛马游戏中最重要的部份首先就是:
1.“赛马”时的马匹的动作要时刻在变幻,这样才让人感觉到赛马在奔跑。
2.“赛马”时的马匹奔跑的速度要是随机的,要做到每一匹马都是公平的。
(这就主要运用到了vb是上随机数的产生)
1关于数据库的连接
无
2SQL语句的应用
略。
(等等)
主要界面截图
图片部分。
以图片来展示程序的运行情况。
程序主界面必须有,然后是一些关键功能的界面。
每张图片应标注编号和主题。
图1.所用到的控件
图2.主界面
图3.选马下注
图4.下注金额
图5.游戏规则
图6.比赛中
图7.比赛结束以及名次单
总结
经过大一下一学期的vb学习,对vb有了初步的了解后,如今在大二为期一周的vb课设中,通过自己的不断努力,自己不仅对vb熟练了许多,而且在这次课设中,最终在完成老师的任务的同时自己还学到了不少以前从未接触到的知识。
完整的源程序
DimjineAsInteger,beilvAsInteger
Dimorder(0To3)AsInteger,mingciAsInteger,mAsInteger,xiazhuAsInteger
Dimv1AsInteger,v2AsInteger,v3AsInteger,v4AsInteger
Dimn1AsInteger,n2AsInteger,n3AsInteger,n4AsInteger
PrivateSubform_load()
Form1.Height=8400
Form1.Width=15360
Image1.Top=0
Image1.Left=0
Image2.Height=180*4
Image2.Width=195*4
Image2.Top=3700
Image2.Left=2000
Image3.Height=180*4
Image3.Width=195*4
Image3.Top=4700
Image3.Left=2000
Image4.Height=180*4
Image4.Width=195*4
Image4.Top=5700
Image4.Left=2000
Image5.Height=180*4
Image5.Width=195*4
Image5.Top=6700
Image5.Left=2000
Forn=0To3
Option1(n).Left=800
Option1(n).Top=3700+n*1000
Option1(n).Height=180*4
Option1(n).Width=250*4
Option1(n).Caption=n+1&"号马"
Nextn
Forn=0To3
Option1(n).BackColor=vbGreen
Nextn
Label1.Width=80
Label1.Height=5000
Label1.BackColor=vbWhite
Label1.Caption=""
Label1.Left=14000
Label1.Top=3480
Image1.Picture=LoadPicture("E:
\vb课设\周兴义.bmp")
Image2.Picture=LoadPicture("E:
\vb课设\1
(1).jpg")
Image3.Picture=LoadPicture("E:
\vb课设\2
(1).jpg")
Image4.Picture=LoadPicture("E:
\vb课设\3
(1).jpg")
Image5.Picture=LoadPicture("E:
\vb课设\4
(1).jpg")
Frame1.Caption=""
Frame1.Left=6180
Frame1.Height=4000
Frame1.Width=3000
Frame1.Top=-5000
Label2.Caption="第一名"
Label3.Caption="第二名"
Label4.Caption="第三名"
Label5.Caption="第四名"
Forn=0To5
Label11(n).Top=100
Label11(n).Left=100+n*1200
Label11(n).Width=1000
Label11(n).Height=500
Label11(n).FontSize=11
Label11(n).Caption=""
Nextn
beilv=Int(Rnd*9+1)
Label11(0).Caption="下注马号"
Label11
(2).Caption="下注金额"
Label11(4).Caption="倍率"
Label11(5).Caption=beilv
Command3.Caption="继续游戏"
EndSub
PrivateSubmoney_Click()
jine=Val(InputBox("请下注","下注金额"))
Label11(3).Caption=jine
EndSub
PrivateSubmusic_Click()
WindowsMediaPlayer1.URL="Queen-WeWillRockYou.mp3"
EndSub
PrivateSubrule_Click()
Shell"c:
\windows\system32\notepad.exe"+""+"游戏说明.txt",1
EndSub
PrivateSubstart_Click()
Ifxiazhu=0Then
MsgBox"请下注",0,"提示"
EndIf
Ifjine=0Then
MsgBox"请输入下注金额",0,"提示"
EndIf
Ifxiazhu<>0Andjine>0Then
Timer1.Enabled=True
ma1donghua.Enabled=True
ma2donghua.Enabled=True
ma3donghua.Enabled=True
ma4donghua.Enabled=True
EndIf
Randomize
Label11
(1).Caption=xiazhu
Label11(3).Caption=jine
EndSub
PrivateSubend_Click()
likai=MsgBox("你真的要离开游戏?
",4+32)
Iflikai=6Then
End
EndIf
EndSub
PrivateSuboption1_Click(IndexAsInteger)
SelectCaseIndex
Case0
xiazhu=1
Case1
xiazhu=2
Case2
xiazhu=3
Case3
xiazhu=4
EndSelect
Label11
(1).Caption=xiazhu
EndSub
PrivateSubma1donghua_Timer()
Ifn1=0Then
Image2.Picture=LoadPicture("E:
\vb课设\1
(1).jpg")
n1=1
ElseIfn1=1Then
Image2.Picture=LoadPicture("E:
\vb课设\1
(2).jpg")
n1=2
ElseIfn1=2Then
Image2.Picture=LoadPicture("E:
\vb课设\1(3).jpg")
n1=0
EndIf
EndSub
PrivateSubma2donghua_Timer()
Ifn2=0Then
Image3.Picture=LoadPicture("E:
\vb课设\2
(1).jpg")
n2=1
ElseIfn2=1Then
Image3.Picture=LoadPicture("E:
\vb课设\2
(2).jpg")
n2=2
ElseIfn2=2Then
Image3.Picture=LoadPicture("E:
\vb课设\2(3).jpg")
n2=0
EndIf
EndSub
PrivateSubma3donghua_Timer()
Ifn3=0Then
Image4.Picture=LoadPicture("E:
\vb课设\3
(1).jpg")
n3=1
ElseIfn3=1Then
Image4.Picture=LoadPicture("E:
\vb课设\3
(2).jpg")
n3=2
ElseIfn3=2Then
Image4.Picture=LoadPicture("E:
\vb课设\3(3).jpg")
n3=0
EndIf
EndSub
PrivateSubma4donghua_Timer()
Ifn4=0Then
Image5.Picture=LoadPicture("E:
\vb课设\4
(1).jpg")
n4=1
ElseIfn4=1Then
Image5.Picture=LoadPicture("E:
\vb课设\4
(2).jpg")
n4=2
ElseIfn4=2Then
Image5.Picture=LoadPicture("E:
\vb课设\4(3).jpg")
n4=0
EndIf
EndSub
PrivateSubCommand3_Click()
Image2.Height=180*4
Image2.Width=195*4
Image2.Top=3700
Image2.Left=2000
Image3.Height=180*4
Image3.Width=195*4
Image3.Top=4700
Image3.Left=2000
Image4.Height=180*4
Image4.Width=195*4
Image4.Top=5700
Image4.Left=2000
Image5.Height=180*4
Image5.Width=195*4
Image5.Top=6700
Image5.Left=2000
Frame1.Caption=""
Frame1.Left=6180
Frame1.Height=4000
Frame1.Width=3000
Frame1.Top=-5000
xiazhu=0
jine=0
beilv=Int(Rnd*9+1)
Label11(5).Caption=beilv
Forn=0To3
order(n)=0
Nextn
mingci=0
Label11
(1).Caption=""
Label11(3).Caption=""
EndSub
PrivateSubchengjidan_Timer()
Form=0To3
SelectCaseorder(m)
Case1
Label6.Caption=(m+1)&"号"
Ifxiazhu=m+1Then
Label10.Caption="你赢了"
Label12.Caption=jine*beilv&"元"
Else
Label10.Caption="你输了"
Label12.Caption=jine&"元"
EndIf
Case2
Label7.Caption=(m+1)&"号"
Case3
Label8.Caption=(m+1)&"号"
Case4
Label9.Caption=(m+1)&"号"
EndSelect
Nextm
Frame1.Top=Frame1.Top+20
Command3.Enabled=False
IfFrame1.Top>=1000Then
Command3.Enabled=True
chengjidan.Enabled=False
EndIf
EndSub
PrivateSubTimer1_Timer()
Randomize
v1=Int(Rnd*50+10)
Image2.Left=Image2.Left+v1
ma1donghua.Interval=v1*2
Randomize
v2=Int(Rnd*50+10)
Image3.Left=Image3.Left+v2
ma2donghua.Interval=v1*2
Randomize
v3=Int(Rnd*50+10)
Image4.Left=Image4.Left+v3
ma3donghua.Interval=v1*2
Randomize
v4=Int(Rnd*50+10)
Image5.Left=Image5.Left+v4
ma4donghua.Interval=v1*2
Iforder(0)=0Then
IfImage2.Left>=13220Then
mingci=mingci+1
order(0)=mingci
Ifmingci=4Then
ma1donghua.Enabled=False
ma2donghua.Enabled=False
ma3donghua.Enabled=False
ma4donghua.Enabled=False
Timer1.Enabled=False
chengjidan.Enabled=True
EndIf
EndIf
EndIf
Iforder
(1)=0Then
IfImage3.Left>=13220Then
mingci=mingci+1
order
(1)=mingci
Ifmingci=4Then
ma1donghua.Enabled=False
ma2donghua.Enabled=False
ma3donghua.Enabled=False
ma4donghua.Enabled=False
Timer1.Enabled=False
chengjidan.Enabled=True
EndIf
EndIf
EndIf
Iforder
(2)=0Then
IfImage4.Left>=13220Then
mingci=mingci+1
order
(2)=mingci
Ifmingci=4Then
ma1donghua.Enabled=False
ma2donghua.Enabled=False
ma3donghua.Enabled=False
ma4donghua.Enabled=False
Timer1.Enabled=False
chengjidan.Enabled=True'成绩单的显示
EndIf
EndIf
EndIf
Iforder(3)=0Then
IfImage5.Left>=13220Then
mingci=mingci+1
order(3)=mingci
Ifmingci=4Then
ma1donghua.Enabled=False
ma2donghua.Enabled=False
ma3donghua.Enabled=False
ma4donghua.Enabled=False
Timer1.Enabled=False
chengjidan.Enabled=True
EndIf
EndIf
EndIf
EndSub
参考文献
[1]刘瑞新.《VisualBasic程序设计教程》.北京:
机械工业出版社,2003
(等等)