个性化猜牌游戏 猜数游戏

个性化猜牌游戏 猜数游戏

ID:39891307

大小:1.50 MB

页数:15页

时间:2019-07-14

上传者:asd881529
个性化猜牌游戏 猜数游戏_第1页
个性化猜牌游戏 猜数游戏_第2页
个性化猜牌游戏 猜数游戏_第3页
个性化猜牌游戏 猜数游戏_第4页
个性化猜牌游戏 猜数游戏_第5页
资源描述:

《个性化猜牌游戏 猜数游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

实验报告课程:可视化程序设计班级:姓名:学号:成绩:指导教师:实验日期:实验密级:预习程度:实验时间:仪器组次:E13必修/选修:选修实验序号:3实验名称:实验三可视化基础编程实验目的与要求:1、熟练掌握VB.NET的窗体和基本控件编程,掌握小型游戏的设计与实现2、培养运用VB.NET编程解决司题的能力,提高计算机编程能力;3、引导和培养具有认真严谨的实验态度和勇于实践的学习精神。实验仪器:名称型号数量微机1-15- 一、实验内容(一)猜数游戏1、实验题目由计算机随机产生一个[1,100]间的整数,给用户猜测,每次给出猜大了还是猜小了的提示。最多猜5次,5次均猜错即为输,5次猜数中有一次猜对即赢(可灵活修改、条件可自行根据需要设定)。要求:n单击【开始】按钮可开始游戏,完成猜数后可重新开始猜数游戏。n不允许窗口最大化、不允许调整窗口大小,窗口中显示游戏说明。n用户输入后,在窗口中有相应信息的显示输出(ListBox)。为便于理解题意,程序执行结果请参考下图。-15- -15- 2、编程设计思想n采用了面向对象的程序设计思想,通过VB的抽象模型WindowsForms来编写窗口类和其他的类;n采用了消息映射的程序设计思想,通过VB的消息映射的机制,可以对按钮窗口的行为进行定义,从而满足我们对其的需要;n具体的编程思想如下[1]定义变量num,每局竞猜前生成一个随机数.[2]定义变量count记录当前局用户已猜的次数.[3]设置按钮定位,自动判断状况定位”重新开始”按钮或”确定”按钮为默认按钮,让用户尽量省去使用鼠标,可直接通过按键盘实现整个游戏过程.[4]通过DoEvent函数和循环语句,实现窗口的放大和缩小,且将动画过程显现给用户观看.避免唐突.[5]对图片实现隐藏,在用户赢或输的那个状态才显示图片,其余时刻只显示输入框.[6]使用try_catch来防止格式输入错误.[7]每轮猜测都有猜大或猜小的提示.当输赢图片遮挡住状态框时,将显示当前猜测次数的文本框的文档改成输赢状态鼓励语句.来告知用户结果。[8]每轮猜测后自动清空输入框,让用户不用手动清除数据就可实现下一轮猜测,使程序的使用更为便利。3、事件机制应用本实验采用如下的事件机制,如表所示事件名称事件描述Button1_Click第一次触发时为“开始”,即DoEvent,让程序界面变大,之后每次触发为游戏重新开始。Button2_Click退出程序按钮Button3_Click“确定”,用户向系统反馈用户猜测的数据4、程序源代码设计(一)游戏开始界面设置及开启新一轮游戏PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickAcceptButton=Button3If(Button1.Text<>"重新开始")ThenButton1.Text="重新开始"Fori=0To100Me.Width=461+2*iMe.Height=441+iApplication.DoEvents()'更新窗口,使窗口能被用户响应NextPictureBox1.Width=300PictureBox1.Height=400PictureBox2.Width=300PictureBox2.Height=400TextBox2.Visible=TrueButton3.Visible=TrueAcceptButton=Button3-15- Button3.Focus()TextBox2.Clear()TextBox3.Visible=TrueTextBox3.Width=300TextBox3.Height=400TextBox2.Focus()ElseTextBox3.Visible=TrueTextBox2.Clear()Button3.Focus()TextBox2.Focus()TextBox2.Enabled=TrueButton3.Enabled=TrueEndIfPictureBox2.Visible=FalsePictureBox1.Visible=FalseTextBox2.Focus()TextBox3.Text=TextBox3.Text&"新游戏开始啦"&vbCrLfcount=1num=Int(Rnd()*100)+1Label1.Visible=TrueLabel1.Text="请进行第"&count&"次尝试"EndSub(二)关闭程序PrivateSubButton2_Click(senderAsObject,eAsEventArgs)HandlesButton2.ClickEndEndSub(三)游戏状态PrivateSubButton3_Click(senderAsObject,eAsEventArgs)HandlesButton3.ClickTextBox2.Focus()Dimguess%Tryguess=TextBox2.TextCatchexAsExceptionMsgBox("格式输入错误,请重新输入",MsgBoxStyle.Exclamation,"警告")ReturnEndTryTextBox3.Text=TextBox3.Text&"第"&count&"次机会:"&guess&vbCrLfIf(guess>num)ThenTextBox3.Text=TextBox3.Text&"这个数略大呢~猜个小点的试试吧~"&vbCrLfElseIf(guess5)Thentm=0ForiAsInteger=0To2img(i)=pic(i).Image.CloneNextTimer1.Enabled=Falsepic(0).Image=PictureBox4.Imagepic(1).Image=PictureBox4.Imagepic(2).Image=PictureBox4.Imagechou=TrueReturnEndIfDimimAsImagen=Int(Rnd()*96)Mod3While(m=n)m=Int(Rnd()*96)Mod3EndWhileim=pic(n).Image.Clonepic(n).Image=pic(m).Imagepic(m).Image=imIf(nums=n)Thennums=mElseIfnums=mThennums=nEndIfEndSubPrivateSubPictureBox5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesPictureBox5.ClickIf(chou=True)Then-15- PictureBox5.Image=img(0)Timer2.Enabled=TrueEndIfEndSubPrivateSubTimer2_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer2.TickStaticnumAsBoolean=FalseIf(num)ThenTimer2.Enabled=FalseIf(nums=0)ThenSuccess()ElseFail()EndIfPictureBox5.Image=PictureBox4.ImageElsenum=NotnumEndIfEndSubPrivateSubTimer3_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer3.TickStaticnumAsBoolean=FalseIf(num)ThenTimer3.Enabled=FalseIf(nums=1)ThenSuccess()ElseFail()EndIfPictureBox6.Image=PictureBox4.Imagenum=FalseElsenum=NotnumEndIfEndSubPrivateSubPictureBox7_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesPictureBox7.ClickIf(chou=True)ThenPictureBox7.Image=img(2)Timer4.Enabled=TrueEndIfEndSub-15- PrivateSubPictureBox6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesPictureBox6.ClickIf(chou=True)ThenPictureBox6.Image=img(1)Timer3.Enabled=TrueEndIfEndSubPrivateSubTimer4_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer4.TickStaticnumAsBoolean=FalseIf(num)ThenTimer4.Enabled=FalseIf(nums=2)ThenSuccess()ElseFail()EndIfPictureBox7.Image=PictureBox4.Imagenum=FalseElsenum=NotnumEndIfEndSubPrivateSubSuccess()MsgBox("不错嘛~猜对了!")chou=FalseButton1.Enabled=Truemark=mark+NumericUpDown1.ValueNumericUpDown1.Maximum=markLabel1.Text="你的所有财产:"&mark&Chr(10)&Chr(13)&"现有资金:"&mark-NumericUpDown1.ValueEndSubPrivateSubFail()MsgBox("小样~你猜错了哟!")chou=FalseButton1.Enabled=Truepic(nums).Image=img(nums)mark=mark-NumericUpDown1.ValueNumericUpDown1.Maximum=markIf(mark=0)ThenMsgBox("oh,oh,穷光蛋,你没钱了呢!")Button1.Text="豪赌一下"chou=Falsemark=1000EndIf-15- Label1.Text="你的所有财产:"&mark&Chr(10)&Chr(13)&"现有资金:"&mark-NumericUpDown1.ValueEndSubPrivateSubNumericUpDown1_ValueChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesNumericUpDown1.ValueChangedLabel1.Text="你的所有财产:"&mark&Chr(10)&Chr(13)&"现有资金:"&mark-NumericUpDown1.ValueEndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)nums=0PictureBox5.Image=PictureBox4.ImagePictureBox6.Image=PictureBox4.ImagePictureBox7.Image=PictureBox4.Imagechou=Falsemark=1000Label1.Text="你的所有财产:"&mark&Chr(10)&Chr(13)&"现有资金:"&mark-NumericUpDown1.ValueEndSubPrivateSubOvalShape1_Click(senderAsObject,eAsEventArgs)HandlesOvalShape1.ClickIf(count<5)Thencount=count+1MsgBox("恭喜贷款获得200元现金礼券!你还有"&(5-count)&"次贷款机会",MsgBoxStyle.Critical,"银行鸭的贷款系统")mark=mark+200Label1.Text="你的所有财产:"&mark&Chr(10)&Chr(13)&"现有资金:"&mark-NumericUpDown1.ValueElseMsgBox("您已使用完5次的贷款机会",MsgBoxStyle.Critical,"银行鸭的贷款系统")EndIfEndSubEndClass6、程序运行结果7、程序设计亮点1、附加定义一个银行鸭系统,可以有5次补充金额的机会。2、显示出当前的总财产和剩余财产3、过PictureBox的数组来记录下每一个PictureBox,便于使他们的图片进行交换-15- 1、通过Image的数组保持每一个PictureBox的图片,以便于在牌盖上之后,翻牌的时候能显示出原来的牌。2、采用子函数集中处理Success和Fail的过程;3、利用timer控件来实现随机的时间控制4、利用tooltip控件使得鼠标滑过时银行鸭时界面上有提示二、总结与体会因为在编写这个程序的时候老师已经在课堂上进行过实验四的指导,感谢徐日老师的深刻讲解,使我对于tooptip控件的使用有所了解,也使这个控件的使用成为本程序的一大亮点。同时在实验二中对timer控件的使用也使我发现这是一个很实用的控件,本次实验也利用了这个控件来实现翻牌这一过程。通过本次实验,我学会了设计图形界面,这使得程序能更美观,更易受到用户的青睐。同时本次实验也让我发现原来程序界面框的大小是可以在运行过程中改变的,这使得程序更加酷炫,今后的实验也可以多多利用这个方法。-15-

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

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

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