VB课程设计九格游戏.docx

上传人:b****5 文档编号:7795163 上传时间:2023-01-26 格式:DOCX 页数:28 大小:85.97KB
下载 相关 举报
VB课程设计九格游戏.docx_第1页
第1页 / 共28页
VB课程设计九格游戏.docx_第2页
第2页 / 共28页
VB课程设计九格游戏.docx_第3页
第3页 / 共28页
VB课程设计九格游戏.docx_第4页
第4页 / 共28页
VB课程设计九格游戏.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

VB课程设计九格游戏.docx

《VB课程设计九格游戏.docx》由会员分享,可在线阅读,更多相关《VB课程设计九格游戏.docx(28页珍藏版)》请在冰豆网上搜索。

VB课程设计九格游戏.docx

VB课程设计九格游戏

 

VB课程设计

 

题目:

九格小游戏

班级:

08级5班

 

摘要:

随着计算机的普及和网络技术的飞速发展,人们的娱乐生活越来越丰富,一些小游戏也逐渐成为了人们休闲娱乐生活的一部分。

九格是一种老少皆宜、容易上手的益智类小游戏。

本游戏采用VisualBasic编程语言完成了该程序的编写,实现了游戏功能。

关键词:

VisualBasic小游戏益智

Abstract:

Withthepopularityofcomputerandnetworktechnologydevelopment,People’sentertainmentismoreandmorerich.Somegameshavegraduallybecomepartofpeople’sleisurelife.Ninegridisanallages,easytousepuzzlegame.ThegameusesVisualBasicprogramminglanguagetocompletethepreparationprocesstoachievethegamefeatures.

Keywords:

VisualBasicSmallgamesPuzzle

一、程序原理

本游戏采用VisualBasic编程语言进行游戏编程。

VisualBasic是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。

它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。

在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。

在VB中必须熟知以下VB专用术语。

控件——简单的说,控件就是构成或者说建造VisualBasic应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等...。

事件——由用户或操作系统引发的动作。

事件的示例有击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。

方法——嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。

例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。

控件和窗体是VisualBasic中所有对象的示例。

对象——一个控件、窗体等都可被看作一个对象。

过程——为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。

属性——属性是组成用户界面的各对象的性质的具体描述。

例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。

属性决定对象的外观,有时也决定对象的行为。

对象的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。

属性即可为对象提供数据,也能从对象取回信息。

二、窗体介绍

本程序只有一个窗体。

1.当程序未运行时

图1

窗体中包含:

游戏窗口(Form)、游戏提示说明(Label)、

游戏显示(Picture)、秒数控制(Timer)、

时间显示(text)

游戏说明窗口:

图2

2.当程序运行时

在游戏选项中,包含开始游戏、游戏模式、退出游戏三种选择。

在游戏模式中选择人机游戏则如图所示:

图2

这时游戏者自动选择的是X,电脑选择的是0。

在限时5秒内进行游戏,否则电脑胜利。

下图是游戏者胜利时的窗体显示。

图3

3.在游戏模式中选择双人游戏,可以两个人一起玩。

在5秒内谁先排成一条直线,则谁胜利。

若两个人都没有排成一条直线,则平局。

图4

三、程序调试

源代码写完后,对程序进行调试运行,要求变量声明,对可能出现的几种错误,如:

编辑时错误、编译时错误、运行时错误、逻辑错误,进行修改,调试,运行,直至程序能正常运行。

但是在一些细节方面仍然需要完善,比如在游戏中可以加入一些声音的提示,在游戏完成和失败的时候可以弹出一些小的Flash动画等等。

总的来说本次设计在功能上已经基本达到要求,其他细节方面有待以后完善。

四、收获体会

VisualBasic语言是以结构化Basic语言为基础,以事件驱动为运行机制。

它的诞生标志着元件设计和开发的新时代的开始。

VB具有面向对象可视化设计工具,是事件驱动的编程机制,同时也提供了易学易用的应用程序集成开发环境。

从Visualbasic语言的学习到编程,当时很想自己能够熟练的进行程序编辑,工程上的软件编辑。

随着Visualbasic语言的学习才逐渐发现这理想想要实现的难度。

对我而言学习编程,不仅能够帮自己解决在生活中可能遇到的一些问题;自己设计一些小游戏还可以给自己带来一些乐趣。

同时也为自己在寻找理想工作添加重要的砝码。

所以,我觉得在学习VB是我们要明确学习的目的。

另外我觉得个人的数学基础,思维逻辑能力对VB的学习有着至关重要的影响。

而在学习的过程中最重要的就是理解,正如老师在课上经常对我们所讲的,不要始终照搬书上已有的代码,要学会理解、掌握编程的思想与方法,这样才能融会贯通,只有在理解方法的基础上学习才是最有效的学习。

VisualBasic语言的学习要多实践,多交流。

掌握编程方法必须在编程实际工作中去实践和体会。

在学习初期要经常自己动手设计程序,不要拘泥于固定的思维方式,遇到问题要多想几种解决方案。

而这也要求与同学多多的交流,毕竟每个人的思维方法不同,角度各异。

通过交流可以不断的吸收他人的长处,丰富编程实践,从而提高自己的水平。

亲自动手实践试创造性思维应用的体现,也是培养逻辑思维的好方法。

五、致谢

在这次完成VB课程设计的过程中,我深刻意识到VB在实际应用中的重要性。

感谢老师在这一学期辛勤教导。

老师在课堂上认真详细的讲解使我对VB有非常深刻的理解。

通过这一学期的学习及这次VB课程设计,我基本掌握了VB知识。

感谢同学还有朋友给了我很大的帮助,没有他们的帮助,我也不能很顺利完成这次论文,在此对他们给予我最真心的感谢!

这次的课程设计对我的学习有很大的提高,使我在今后找工作中又有了一个有力砝码。

 

六、参考文献

[1] 刘炳文.精通VisualBasic6.0中文版.北京:

电子工业出版社,1999年7月

[2] 田文胜,刘阳,学勤.VisualBasic编程指南..北京:

清华大学出版社,2003年2月

[3] 王祖卫,李伟.VisualBasic程序设计.天津:

南开大学出版社,2004年

[4] 牛又奇,孙建国.新编VisualBasic程序设计教程.苏州:

苏州大学出版社,2004年1月

[5]范晓平编著. VisualBasic6.0软件开发项目实训.北京:

海洋出版社.2002

[6]唐兵、李桂花等编著. VisualBasic中文版程序设计教程.北京:

机械工业出版社

[7]松桥工作室编著.深入浅出VisualBasic6.0程序设计.北京:

中国铁道出版社

 

附录:

源程序代码

DimtopLeftAsInteger

DimtopMiddleAsInteger

DimtopRightAsInteger

DimmidLeftAsInteger

DimcenterAsInteger

DimmidRightAsInteger

DimbottomLeftAsInteger

DimbottomMiddleAsInteger

DimbottomRightAsInteger

DimxScoreAsInteger

'X赢的次数

DimoScoreAsInteger

'O赢的次数

DimdrawAsInteger

'平局次数

DimturnTimeAsSingle

'游戏时间

DimmaxTimeAsSingle

'游戏允许的最大时间

DimonePlayerAsBoolean

'单人模式则为true

DimxTurnAsBoolean

'如果X's为ture则为true

DimgameOverAsBoolean

'如果游戏结束则为true,除非某一方赢。

PrivateSubmnuExit_Click()

'退出游戏

End

EndSub

PrivateSubmnuNewGame_Click()

IfVal(txtTimeLimit.Text)>0Then

maxTime=Val(txtTimeLimit.Text)

Else

txtTimeLimit.Text=maxTime

EndIf

pic1.Cls

pic2.Cls

pic3.Cls

pic4.Cls

pic5.Cls

pic6.Cls

pic7.Cls

pic8.Cls

pic9.Cls

topLeft=0

topMiddle=0

topRight=0

midLeft=0

center=0

midRight=0

bottomLeft=0

bottomMiddle=0

bottomRight=0

xTurn=True

gameOver=False

lblMesg="X下子"

pic1.FontSize=8

pic2.FontSize=8

pic3.FontSize=8

pic4.FontSize=8

pic5.FontSize=8

pic6.FontSize=8

pic7.FontSize=8

pic8.FontSize=8

pic9.FontSize=8

tmrTimer.Enabled=True

turnTime=0

DimiAsInteger

Fori=1To9

taken(i)=False

Nexti

EndSub

 

PrivateSubForm_Load()

Randomize

topLeft=0

topMiddle=0

topRight=0

midLeft=0

center=0

midRight=0

bottomLeft=0

bottomMiddle=0

bottomRight=0

xTurn=True

gameOver=True

lblMesg="开始新游戏"

lblPlayers.Caption="人机游戏"

onePlayer=True

txtTimeLimit.Text=5

maxTime=Val(txtTimeLimit.Text)

turnTime=0

xScore=0

oScore=0

draw=0

lblX.Caption="X赢:

"+Str(xScore)

lblO.Caption="O赢:

"+Str(oScore)

lblDraw.Caption="平局:

"+Str(draw)

DimiAsInteger

Fori=1To9

taken(i)=False

Nexti

EndSub

PrivateSubpic1_Click()

IfNotgameOverThen

IftopLeft=0Then

taken

(1)=True

turnTime=0

IfxTurnThen

pic1.Print"";

pic1.FontSize=36

pic1.Print"X"

xTurn=False

topLeft=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic1.Print"";

pic1.FontSize=36

pic1.Print"O"

xTurn=True

topLeft=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic2_Click()

IfNotgameOverThen

IftopMiddle=0Then

taken

(2)=True

turnTime=0

IfxTurnThen

pic2.Print"";

pic2.FontSize=36

pic2.Print"X"

xTurn=False

topMiddle=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic2.Print"";

pic2.FontSize=36

pic2.Print"O"

xTurn=True

topMiddle=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic3_Click()

IfNotgameOverThen

IftopRight=0Then

taken(3)=True

turnTime=0

IfxTurnThen

pic3.Print"";

pic3.FontSize=36

pic3.Print"X"

xTurn=False

topRight=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic3.Print"";

pic3.FontSize=36

pic3.Print"O"

xTurn=True

topRight=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic4_Click()

IfNotgameOverThen

IfmidLeft=0Then

taken(4)=True

turnTime=0

IfxTurnThen

pic4.Print"";

pic4.FontSize=36

pic4.Print"X"

xTurn=False

midLeft=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic4.Print"";

pic4.FontSize=36

pic4.Print"O"

xTurn=True

midLeft=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic5_Click()

IfNotgameOverThen

Ifcenter=0Then

taken(5)=True

turnTime=0

IfxTurnThen

pic5.Print"";

pic5.FontSize=36

pic5.Print"X"

xTurn=False

center=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic5.Print"";

pic5.FontSize=36

pic5.Print"O"

xTurn=True

center=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic6_Click()

IfNotgameOverThen

IfmidRight=0Then

taken(6)=True

turnTime=0

IfxTurnThen

pic6.Print"";

pic6.FontSize=36

pic6.Print"X"

xTurn=False

midRight=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic6.Print"";

pic6.FontSize=36

pic6.Print"O"

xTurn=True

midRight=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic7_Click()

IfNotgameOverThen

IfbottomLeft=0Then

taken(7)=True

turnTime=0

IfxTurnThen

pic7.Print"";

pic7.FontSize=36

pic7.Print"X"

xTurn=False

bottomLeft=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic7.Print"";

pic7.FontSize=36

pic7.Print"O"

xTurn=True

bottomLeft=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic8_Click()

IfNotgameOverThen

IfbottomMiddle=0Then

taken(8)=True

turnTime=0

IfxTurnThen

pic8.Print"";

pic8.FontSize=36

pic8.Print"X"

xTurn=False

bottomMiddle=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic8.Print"";

pic8.FontSize=36

pic8.Print"O"

xTurn=True

bottomMiddle=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubpic9_Click()

IfNotgameOverThen

IfbottomRight=0Then

taken(9)=True

turnTime=0

IfxTurnThen

pic9.Print"";

pic9.FontSize=36

pic9.Print"X"

xTurn=False

bottomRight=1

IfNotTTTThen

lblMesg="O下子"

EndIf

IfNotgameOverAndonePlayerThen

CallcompPlay

EndIf

Else

pic9.Print"";

pic9.FontSize=36

pic9.Print"O"

xTurn=True

bottomRight=2

IfNotTTTThen

lblMesg="X下子"

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateFunctionTTT()AsBoolean

IftopLeft=1_

AndtopMiddle=1_

AndtopRight=1_

OrmidLeft=1_

Andcenter=1_

AndmidRight=1_

OrbottomLeft=1_

AndbottomMiddle=1_

AndbottomRight=1_

OrtopLeft=1_

AndmidLeft=1_

AndbottomLeft=1_

OrtopMiddle=1_

Andcenter=1_

AndbottomMiddle=1_

OrtopRight=1_

AndmidRight=1_

AndbottomRight=1_

OrtopLeft=1_

Andcenter=1_

AndbottomRight=1_

OrtopRight=1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1