Labview课设黑白棋说明.docx
- 文档编号:23797992
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:10
- 大小:255.01KB
Labview课设黑白棋说明.docx
《Labview课设黑白棋说明.docx》由会员分享,可在线阅读,更多相关《Labview课设黑白棋说明.docx(10页珍藏版)》请在冰豆网上搜索。
Labview课设黑白棋说明
燕山大学
Labview程序说明书
题目:
基于Labview编程的黑白棋
学院(系):
电气工程学院
年级专业:
09级医疗仪器1班
学号:
************
*******
******
摘要………………………………………………………………………2
一黑白棋游戏规则………………………………………………………3
二设计流程图……………………………………………………………4
三程序详解……………………………………………………………4
3.1初始化棋盘……………………………………………………4
3.2下棋时的流程……………………………………………………5
3.3下棋时的几个状态……………………………………………6
3.4几个规则的实现程序………………………………………6
3.5显示结果………………………………………………………7
四主程序框图…………………………………………………………8
五Xcontrol的外观功能………………………………………………9
六总结…………………………………………………………………10
基于Labview编程的黑白棋
摘要:
虚拟仪器技术是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
自1986年问世以来,世界各国的功能师和科学家们都已将NIlabview图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。
使用集成化的模拟仪器环境与现实世界的信号相连,分析数据以获取实用信息,共享信息成果,有助于在较大范围内提高生产效率。
虚拟仪器提供的各种工具能满足我们任何项目需要。
本文讲解了基于labview编程的黑白棋。
首先介绍了黑白棋的游戏规则,然后介绍利用labview设计的黑白棋程序流程图,之后对具体的程序进行简单的介绍。
最后对学习该程序进行总结。
关键词:
Labview 黑白棋 规则
一.黑白棋游戏规则
1.棋局开始时黑棋位于e4和d5,白棋位于d4和e5,如图所示。
2.黑方先行,双方交替下棋。
3.一步合法的棋步包括:
在一个空格新落下一个棋子,并且翻转对手一个或多个棋子。
4.新落下的棋子与棋盘上已有的同色棋子间,对方被夹住的所有棋子都要翻转过来。
可以是横着夹,竖着夹,或是斜着夹。
夹住的位置上必须全部是对手的棋子,不能有空格。
5.一步棋可以在数个方向上翻棋,任何被夹住的棋子都必须被翻转过来,棋手无权选择不去翻某个棋子。
6.除非至少翻转了对手的一个棋子,否则就不能落子。
如果一方没有合法棋步,也就是说不管他下到哪里,都不能至少翻转对手的一个棋子,那他这一轮只能弃权,而由他的对手继续落子直到他有合法棋步可下。
7.如果一方至少有一步合法棋步可下,他就必须落子,不得弃权。
8.棋局持续下去,直到棋盘填满或者双方都无合法棋步可下。
二.设计流程图
棋盘满子判断输赢
三.程序详解
3.1 初始化棋盘
棋盘为8*8的表格,初始状态如图所示:
棋盘和棋子在Labview中没有相应的控件需要自己制作,棋盘和棋子是利用Labview中的Xcontrol制作的自定义控件。
棋子的属性如图。
在棋
盘中,棋子是利用一个8*8的二维数组来显示,0代表无棋子,1代表黑棋,2代表白棋,初始化棋盘如下图
3.2 下棋时的流程
开始游戏时,首先该黑子下(人操作),文本框显
,然后电脑下,文本框显示
,人再下就显示
,当没有棋子可下的时候就显示另一方下,下完在文本框中输出结果。
3.3下棋时的几个状态
下棋时的几个状态:
落子,棋子翻转,棋盘满子。
3.4 几个规则的实现程序
3.41在落棋子时首先要检查当前棋盘所有的位置,是否有位置可下以及该下的棋子颜色,程序利用公式节点完成
3.42棋子落下后相应的棋子要进行反转,程序如下
3.5显示结果
当棋盘满子或者双方都不能落子时,有文本框输出结果。
计算结果及计算黑白棋子的数目,数目多的一方胜出。
程序如下:
四主程序框图
主程序是一个While循环嵌套一个事件结构。
事件有四个:
初始化事件,用户事件,新游戏事件,退出事件。
初始化事件
事件里嵌套一个条件结构进行初始化。
用户事件里嵌套条件结构,有三种状态:
人落子,电脑落子,计算结果输出。
五Xcontrol的外观功能
外观”功能用于定义XControl的外观。
“外观”功能可通过外观VI实现。
因为XControl需要“外观”功能,所以创建XControl时,LabVIEW将自动把“外观”VI添加至XControl库。
“外观”VI必须是重入VI。
编辑外观VI
向“外观”VI添加LabVIEW输入控件和显示控件以创建XControl的前面板。
默认状态下,“外观”VI包括数据、显示状态、容器状态控件和数据、显示状态和动作显示控件。
这些输入控件和显示控件被隐藏,不出现在XControl的外观中。
根据出现在XControl外观中的输入控件和显示控件,重新调整前面板的大小。
设置“外观”VI的窗口外观属性,调整修改XControl的大小和外观。
“外观”VI的程序框图可处理前面板上控件的事件以及“外观”VI本身。
该程序框图包含一个内部含有一个事件结构的While循环。
“外观”VI不是连续运行的VI。
LabVIEW仅在VI有待处理事件时调用“外观”VI。
LabVIEW调用具有当前数据、显示状态和容器状态的“外观”VI。
“外观”VI将处理事件并返回更新后的数据、显示状态和执行的动作类型。
容器状态簇用于提供XControl的实例信息。
容器状态簇包含三个元素:
显示控件?
、运行模式?
和引用句柄。
显示控件?
用于确认XControl实例是输入控件还是显示控件。
运行模式?
用于确认使用XControl的VI的状态为运行中还是空闲。
运行模式?
设为TRUE时,所属VI的状态为运行中。
引用句柄是仅用于查询XControl信息的XControl实例的引用。
不要用引用句柄从外观VI修改XControl实例。
“外观”VI改变数据或显示状态时,应更新动作簇并通知LabVIEW上述改动。
动作簇包含三个元素-已更改数据、已更改模式和动作名称。
已更改数据设为TRUE时“外观”VI将改变数据输出显示控件。
已更改状态设为TRUE时“外观”VI将改变显示状态输出显示控件。
也选用动作名称命名正在执行的动作。
动作的名称在选中编辑»撤消选项时出现。
通常,“外观”VI对在其前面板上的控件所生成的事件作出响应,改变其数据或显示状态。
“外观”VI的事件
“外观”VI也对由用户交互而生成的事件作出响应。
这些事件包括数据更改、显示状态更改、方向更改和执行状态更改事件。
“外观”VI必须处理“数据更改”和“显示状态更改”事件以保证能正常运行。
而“方向更改”和“执行状态更改”事件的处理为可选。
LabVIEW调用“外观”VI处理这些事件。
例如,当复制XControl时,LabVIEW将产生所有四个事件,并在XControl的新实例上调用“外观”VI。
加载包含XControl的VI的前面板时,LabVIEW也会产生四个事件并调用“外观”VI。
当包含XControl的VI从编辑模式变为运行模式(或相反)时,LabVIEW将产生一个“执行状态更改”事件,并调用“外观”VI响应VI执行状态的改变。
选择编辑»撤消或编辑»重做时,LabVIEW也会调用“外观”VI。
“外观”VI改变状态进行任何操作前,LabVIEW将恢复XControl的显示状态。
当前显示状态将替换上一个状态。
在撤消或重做动作之后,LabVIEW生成一个“显示状态改变”事件并调用“外观”VI,更新XControl。
编辑每个事件分支,配置XControl响应事件的方式。
要使XControl能快速响应,配置“外观”VI尽快处理事件并结束运行。
不要在While循环的事件结构中使用“等待”函数。
总结
通过对Labview的学习,我发现虚拟仪器有许多传统仪器无法比拟的优点。
虚拟仪器基于软件体系结构,节省开发维护费用;展现全汉化图形界面,直接读数,分析处理;可以扩展的功能;价格低廉,是传统仪器价格的1/5---1/10等等。
通过读一些程序和自己写一些小程序,加深了对Labview的理解以及深入学习的热情,我在接下来的这段时间,要好好学习Labview认真完成课程设计,为以后工作打下基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Labview 课设黑 白棋 说明