基于labview的20xx小游戏实验报告

时间:2024.4.20

西安建筑科技大学理学院电子信息科学与技术专业LABVIEW 仿真实验课程

学生实验报告书

院    系          理学院       

 专业班级电子信息科学与技术1201

实验名称      labview仿真实验  

姓     名         魏廷剑        

学     号        121040124      

20##年 12月23日

学生实验报告书

学生姓名:

学生学号:

实验项目名称:基于labview的2048小游戏

实验计划学时:3学时

实验项目类型:综合、设计

实验时间:20##年12月10日

一〖实验目的〗

1)熟悉Labview各组件,深入学习研究课程所学知识;

2)通过自己编制Labview综合程序,提高编程能力;

3)综合所学Labview知识,了解Labview开发程序的一般过程;

4)在Labview环境下,利用事件结构,条件结构,循环等函数功能,完成了基本程序;

5)将对图片的控制转换为对数组的控制,简化操作;

6)利用子Vi技术将复杂的程序模块分为若干个实现单一功能的的子程序。

二〖实验仪器〗

安装有LABVIEW的计算机

三〖实验内容〗

设计并完成小游戏2048.

四〖方案步骤

1.      分析思路,所需实现的功能

1) 分数计算。在移动方向将相邻的2个数相加;

2)  移动控制。分为上下左右四种移动方式,通过键盘上的W、A、S、D或者↑↓←→控制;

3)  移动前后数组数值的改变。通过重新创建数组,将移动后的数值填入、并用0将数组补成4X4的数组,来实现移动前后数值的改变;

4)  利用概率随机数来实现2和4的生成;

5)  成功与失败的判断等。

2.      设计程序

1) 在前面板上放置图片下拉框,并导入图片;

2) 放置分数统计框;

3) 放置重新开始及退出程序按钮。

图1-1程序前面板

3.      设计程序框图

通过VI层次结构图展示程序结构

图1-2VI层次结构图

4.      从程序框图分析,如下

1)  程序初始化 。将数组置0,并随机生成两个数(2或4)。

图1-3程序初始化

2)  用户操作部分程序图,如下

图1-4用户操作程序图

3) 移动控制程序图,以上移为例

图1-5移动控制

4) 程序判断,以失败判断为例

图1-6失败判断

五〖实验总结〗(体会及建议)

六〖实验评定〗

实验内容(70分):

方案步骤(20分):

实验总结(5分):

其它(5分):

综合得分:                              

指导教师签名:      


第二篇:VB小游戏实验报告


VB 动 画 设 计 与 制 作1

南京信息职业技术学院-----VB 动画设计与制作姓名:张晓红 学号:41041X14 学号:41041X14游戏题目:弹球游戏 1.设计思想:设计一个弹球游戏,使其在向上或左右方向碰壁反弹,下部 有一可左右水平移动的挡板,当小球接触挡板时,小球反弹,否 则小球出界,即游戏失败,小球每接触次挡板,加十分,当得分 是 20 的倍数时,挡板缩短,小球移动加快,致使难度增加。2.窗体设计的属性名称是窗体的标识名,代码中称它为 Name 值为:Form1 BackColor:pink。 BorderStyle:Button Caption:弹球游戏。 ControlBox: 设置窗体标题栏上是否具有控制菜单栏及按钮。

南京信息职业技术学院-----VB 动画设计与制作Enabled:true Height:200 Width:150 Visible: True。 WindowsState:原形。 Icon:设置窗体标题栏上的图标。 Picture:给窗体配上漂亮的位图。 特别要注意的是:窗体的 Name 和 Caption 属性,虽然缺省值 相同,都是 Form1,但实际意义却不一样。Caption 指的窗体标题栏 上的文字,Name 指这个窗体的对象名,千万不能混淆。3.动画的代码Dim time%, key%, score%, a#, y# Private Sub Command2_Click() Line1.X1 = 1320 Line1.X2 = 3000 Timer1.Interval = 100 Label1.Caption = 0 Timer2.Enabled = False

南京信息职业技术学院-----VB 动画设计与制作Timer1.Enabled =False Label4.Caption = "" score = -10 time = 0 Shape1.Left = (Line1.X1 + Line1.X2) / 2 Shape1.Top = Line1.Y1 - Shape1.Height End Sub Private Sub Form_Load() Line1.X1 = 1320 Line1.X2 = 3000 Timer1.Interval = 100 Label1.Caption = "" Timer2.Enabled = False Label4.Caption = "" score = -10 time = 0 Shape1.Left = (Line1.X1 + Line1.X2) / 2 Shape1.Top = Line1.Y1 - Shape1.Height End Sub Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer) key = KeyCode '游戏初始化 '球位置初始化

南京信息职业技术学院-----VB 动画设计与制作Select Case KeyCode Case 37 If Line1.X1 <= 0 Then Line1.X1 = 0 Else Line1.X1 = Line1.X1 - 90 Line1.X2 = Line1.X2 - 90 End If Case 39 '如果按下右箭头,使板子向右移动 '如果按下左箭头,使板子向左移动If Line1.X2 >= 4575 Then Line1.X2 = 4575 Else Line1.X1 = Line1.X1 + 90 Line1.X2 = Line1.X2 + 90 End If End Select End Sub Private Sub Command1_Click() Dim m%, n% Picture1.SetFocus Timer1.Enabled = True Timer2.Enabled = True

南京信息职业技术学院-----VB 动画设计与制作Randomize m = Int(Rnd * 1) + 0 If m = 0 Then Randomize a = Int(Rnd * (46 * 3.1416 / 180)) + 30 * 3.1416 / 180 y = 100 * Abs(Tan(a)) Else: Randomize a = Int(Rnd * (46 * 3.1416 / 180)) + 105 * 3.1416 / 180 '平移移 动动量和我竖直移动的夹角y = 100 * Abs(Tan(a)) 竖直移动量 End If End Sub‘确定单位时间内水平移动量,求出Private Sub Command3_Click() If Command3.Caption = "暂停" Then Timer1.Enabled = False Timer2.Enabled = False Label5.Visible = True Command1.Enabled = False Command2.Enabled = False Command3.Caption = "继续"

南京信息职业技术学院-----VB 动画设计与制作Else Picture1.SetFocusTimer1.Enabled = True Timer2.Enabled = True Label5.Visible = False Command1.Enabled = True Command2.Enabled = True Command3.Caption = "暂停" End If End Sub Private Sub Picture1_KeyUp(KeyCode As Integer, Shift As Integer) key = KeyAscii End Sub Private Static Sub Timer1_Timer() Dim n%, m%, i% If Shape1.Left < 0 Then n=0 End If If Shape1.Left > 4200 Then '使球碰壁反弹的条

南京信息职业技术学院-----VB 动画设计与制作件 n=1 End If Select Case (n) Case 0 Shape1.Left = Shape1.Left + 100 Case 1 Shape1.Left = Shape1.Left - 100 End Select If Shape1.Top + Shape1.Height >= Line1.Y1 And Shape1.Left <= (Line1.X2 - 175) And Shape1.Left >= (Line1.X1 - 200) Then m=0 score = score + 10 Label1.Caption = Str(score) + "分" If score Mod 20 = 0 And Timer1.Interval >= 10 Then '当得 分是 20 的倍数时,挡板的长度减少 Line1.X1 = Line1.X1 + 20 Line1.X2 = Line1.X2 - 20 Timer1.Interval = Timer1.Interval – 3 时,间隔时间减少 End If End If '当得分是 20 的倍数 '球遇到挡板反弹的条件

南京信息职业技术学院-----VB 动画设计与制作If Shape1.Top < 0 Then m=1 End If Select Case (m) Case 0 Shape1.Top = Shape1.Top - yCase 1 Shape1.Top = Shape1.Top + y End Select If Shape1.Top > Line1.Y1 Then Timer1.Enabled = False i = MsgBox("你输了!", vbInformation, "结果") If i = 1 Then Line1.X1 = 1320 Line1.X2 = 3000 Timer1.Interval = 100 Label1.Caption = 0 Timer2.Enabled = False Label4.Caption = "" score = -10 time = 0

南京信息职业技术学院-----VB 动画设计与制作Shape1.Left = (Line1.X2 + Line1.X1) / 2 Shape1.Top = Line1.Y1 - Shape1.Height 后重新初始化 End If End If If Timer1.Interval <= 10 Then Shape1.Left = (Line1.X1 + Line1.X2) / 2 Label1.Caption = "0" Label4.Caption = "" MsgBox "祝贺你,游戏完成!!" ! Timer1.Enabled = False Timer2.Enabled = False Timer1.Enabled = flase Timer1.Interval = 100 score = -10 time = 0 Shape1.Left = (Line1.X1 + Line1.X2) / 2 Shape1.Top = Line1.Y1 - Shape1.Height 过后重新初始化 End If End Sub Private Sub Timer2_Timer() '游戏通 '游戏完成的条件 '游戏失败

南京信息职业技术学院-----VB 动画设计与制作time = time + 1 Label4.Caption = Str(time) + "秒" End Sub

0 南京信息职业技术学院-----VB 动画设计与制作4.动画的效果(游戏运行初始化)(游戏运行)0

南京信息职业技术学院-----VB 动画设计与制作(游戏暂停)(游戏失败)

5.动画的说明:⑴ 每次开始游戏时,小球发射角度随机(使小球每次向不同方 向发射) ; 所以定义一个角度变量 a 和高度变量 y,每次运行时随机出一个 范围在[30°,75°]或[105°,150°]的角 a,确定小球相对于“容器” left 属 ( 性) ,利用三角函数(y=tan(a)*shape1.left),计算出 y 值。由此随机 出每次运行时小球的发射角度。 ⑵ 小球接触挡板致使加分的条件; 小球相对于“容器”高度位置(shape1.top)加上小球直径 (shape1.height)>=挡板的位置(line1.Y1) ,小球相对于“容器”左 右位置(shape1.left)<=挡板右端点的位置(line1.X2)且>=挡板左 端点的位置(line1.X1) ,满足以上条件,判定小球接触挡板被反弹。 ⑶ 游戏运行时小球和挡板的初始化; 当游戏结束,失败,通过后,重新设置挡板左端点和右端点位置 (line1.X1 和 line1.X2) 小球位置重设为 Shape1.Left = (Line1.X1 + , Line1.X2) / 2 ;Shape1.Top = Line1.Y1 - Shape1.Height。Time1的时间间隔设为 100,得分和时间(score;time)返回初值。 ⑷ 如何使挡板进行左右移动。 采用 keydown 事件,进行选择判断,向左(右)移动时,板左 右端点同时减去(加上)90 进行移动,从而实现板的左右移动。

南京信息职业技术学院-----VB 动画设计与制作

南京信息职业技术学院-----VB 动画设计与制作

南京信息职业技术学院-----VB动画设计与制作

更多相关推荐:
LabView实验报告

实验二创建编辑和调试VI实验时间地点学号姓名一实验目的1掌握LabVIEW85编程的基本操作2掌握创建编辑和调试VI的基本步骤二实验内容1掌握LabVIEW85编程的基本步骤和要求2用新建项目的方式创建LabV...

Labview实验报告

Labview实验报告题目:温度监测系统学生姓名:**班级:学号:***一、设计要求1.用随机数模拟温度数据(20-40摄氏度)。2.采集开始用开关控制,每次采集10个数据,并实时显示(温度计和数值控件),显示…

labview实验报告

学班姓学院级名号电气工程学院自112班何富裕11120xx060实验一一实验目的熟悉LabVIEW软件的基本编程环境二实验内容创建并保存一个VI程序此VI要实现的功能是随机生成一个数值经过一定的运算过程输出显示...

labview实验报告

南通大学计算机科学与技术学院虚拟仪器技术课程作业报告书课题名基于LabVIEW的温度监测系统班级计121姓名张进学号12130220xx20xx年6月16日1一设计目标利用LabVIEW图形化编程平台设计一个温...

Labview实验报告:文件操作

广州大学学生实验报告开课学院及实验室计算机楼301A20xx年6月10日

labview实验报告2

哈尔滨理工大学实验报告课程名称虚拟仪器实验学院自动化学院专业班级电技122班学生姓名江曙光学号指导教师徐军实验二一实验目的通过这个实验初步了解LabVIEW编程中对数值型和布尔型变量的操作二实验内容计算一元二次...

labview实验报告1

哈尔滨理工大学实验报告课程名称虚拟仪器学院自动化学院专业班级电技122班学生姓名江曙光学号指导教师徐军实验一一实验目的熟练掌握LabVIEW的安装了解LabVIEW的编程环境二实验操作及过程安装LabVIEW2...

LabView虚拟示波器实验报告

内蒙古科技大学本科生课程设计论文题目虚拟示波器设计姓名余凯学号1067106234专业自动化班级二班指导教师肖俊生20xx年12月5日内蒙古科技大学结课论文一设计题目虚拟示波器的设计二设计目的1了解示波器的相关...

labview 虚拟仪器 万用表 实验报告

实验一虚拟万用表的实现1实验目的1学习Labview编程语言的开发环境2了解前面板对象的调用设置以及编程3了解框图程序的常用节点2主要功能1设置电源开关电源开时数字万用表工作电源关时数字万用表不工作2设置数值显...

利用labview实现磁化曲线和磁滞回线的测量实验报告

利用LabVIEW测量磁化曲线和磁滞回线姓名焦赛一学号20xx11141025提交时间20xx05301利用LabVIEW测量磁化曲线和磁滞回线一实验目的观察铁磁材料的磁化和磁滞现象用labview观察测量磁滞...

Labview学习心得

对LabVIEW软件及虚拟仪器的学习心得一学期的Labview课程结束了通过这一学期的学习我主要了解到对LabVIEW软件及虚拟仪器的理解以下几方面的内容1一开始老师通过关于此课程的基础概念讲解是我了解了使用l...

Labview课程设计报告-张凯强

课程设计报告摘要要在LABVIEW环境中进行对声卡编程就是运用常用周期信号及测试领域特殊信号的双通道模拟输出由于专用数据采集卡成本比较昂贵而且和计算机兼容性比较差等缺点这个论文就是应用性能良好价格低廉的计算机声...

labview实验报告(16篇)