《图片记忆游戏》课程设计报告(VB)编号:14《图片记忆游戏》设计报告学院材料学院班级材料084学号082067姓名齐文艳成绩一、设计思路1.要达到的目的培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。2.关键问题的解决1.游戏分为入门级,初级,中级和高级。添加Image控件数组,根据游戏等级不同,出现不同的窗体。2.游戏开始根据不同等级在相应窗体上添加图片,具有相同背景并排列整齐。进入游戏后用Rnd方法给Image控件分配图片。图片内容是随机产生,并且成对出现。3.标单击图片时利用LoadPicture方法将分配的图片显示出来,为了实行同内容的图片消失,保证同时显示两张图片。4.两个图片显示时,比较两者图片内容是否相同,相同则利用LoadPicture方法将图片内容去掉,图片消失。5.能够使游戏连续执行。低级游戏过关后用msgbox方法选择是否晋级。6.设计一个label控件,能够显示剩余的时间。当剩余时间小于60的时候,会出现时间不足的警告。当完成游戏以后,在msgbox中给出分数。二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释(以初级为例):1调用调用Image控件给每个显示的图片初始化,当两个显示相同的图片时把这两个图片隐藏。在游戏结束的时候,给出分数入门级窗体显示4张背影相同的图片,用n(0)到n(3)进行初始化高级窗体显示36张背影相同的图片,用n(0)到n(35)进行初始化初级窗体显示8张背影相同的图片,用n(0)到n(7)进行初始化中级窗体显示16张背影相同的图片,用n(0)到n(15)进行初始化Timer控件当label1的caption不小于0时,每隔相同的时间减少1。当游戏结束的时候,用Msgbox用于显示玩家所的的分数《图片记忆游戏》课程设计报告(VB)编号:14Dimn(10)DimkkAsInteger,aaAsInteger,ckAsInteger,kAsIntegerPrivateSubrumenji_Click()Form1.Show:Form2.Hide:Form3.Hide:Form4.HideTimer1.Enabled=FalseEndSubPrivateSubchuji_Click()Form1.Hide:Form2.Show:Form3.Hide:Form4.HideTimer1.Enabled=FalseEndSubPrivateSubzhongji_Click()'关闭初级的窗体,产生中级的窗体Form1.Hide:Form2.Hide:Form3.Show:Form4.HideTimer1.Enabled=FalseEndSubPrivateSubgaoji_Click()Form1.Hide:Form2.Hide:Form3.Hide:Form4.ShowTimer1.Enabled=FalseEndSubPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,numer(4,2)Label1.visible=TrueLabel1.Caption=100Timer1.Interval=100Timer1.Enabled=TrueLabel2.visible=Falsekk=8ck=0Fori=0To7Image1(i).Picture=LoadPicture("")Image1(i).Enabled=TrueNextiFori=1To4'给numer(4,2)用rnd语句赋予初值numer(i,2)=2NextiRandomizenumer(1,1)=Int(Rnd*7)+1DoWhilenumer(1,1)=numer(2,1)numer(2,1)=Int(Rnd*7)+1LoopDoWhilenumer(1,1)=numer(3,1)Ornumer(2,1)=numer(3,1)numer(3,1)=Int(Rnd*7)+1LoopDoWhilenumer(1,1)=numer(4,1)Ornumer(2,1)=numer(4,1)Ornumer(3,1)=numer(4,1)numer(4,1)=Int(Rnd*7)+1Loop2《图片记忆游戏》课程设计报告(VB)编号:14Fori=0To7Doj=Int(Rnd*4)+1numer(j,2)=numer(j,2)-1LoopUntilnumer(j,2)>-1n(i)=numer(j,1)NextiFori=0To7'给初级的每个图片赋予初始图片Image1(i).Picture=LoadPicture(App.Path&"\8.jpg")NextiEndSubPrivateSubImage1_Click(IndexAsInteger)DimiAsIntegerStaticvisible(10)AsBoolean,aAsInteger,bAsIntegerFori=0To7IfIndex=iThen'选定级别以后给所显示的image赋予新的图片,并让他们以同样的背景显示Image1(i).Picture=LoadPicture(App.Path&"\"&n(Index)&".jpg"):visible(Index)=TrueEndIfNextick=ck+1Ifck=1Thena=IndexEndIfIfck=2Thenb=IndexEndIfIfck>2Then'同时显示的图片不能多于2个If(Image1(a).Enabled=TrueAndImage1(b).Enabled=True)ThenImage1(a).Picture=LoadPicture(App.Path&"\"&8&".jpg")Image1(b).Picture=LoadPicture(App.Path&"\"&8&".jpg")EndIfck=ck-2a=Indexb=10EndIfIfa<>bThen'当显示2个不同的图片时,比较2个图片是否相同,如果相同就把这2个图片隐藏Ifvisible(a)=TrueAndvisible(b)...