“闲来无事,不如找点乐子吧?用色谱工作站做个智商检测游戏!”
01
—
设计思路
为什么选择这个游戏?(当然是因为复杂的搞不了。。。)其实一是因为这个逻辑简单,二是它所需要的变量少,且不需要其他信号触发,只要实时判断变量状态即可。
02
—
要制作界面,需要用到变色龙软件的面板编辑功能(epanel),平时打开软件自动生成的面板,其实这是软件预置好的,当我们需要添加功能时,就要使用epanel编辑功能,在面板选项卡中上右击-编辑epanel;

就可以打开编辑界面,中央是界面区域,左侧是可以使用的控件库,直接拖动至界面区域即可,右侧是所选择的控件可以设置的属性:


03
—
实现过程-参数列表的构建
为了让格子随着鼠标点击而变化,我们需要让每一个按钮都绑定一个系统参数,这个参数可以看心情来选择,我使用HPLC仪器的四个模块分别选取了4个系统参数变量,变量可以是字符串,也可以是数值,我选取的参数如下:

后续的操作我们就是不断修改和判断上述的参数值,例如我将泵通道名称和色谱柱字段设置为”0“和”1“之间切换,进样器的速度值在10和20直接切换,检测器波长设置在200和210间切换(当然这些都可以根据自己的心情来设置。。。)
04
—
实现过程-按钮脚本的编辑
在界面中每一个按钮的属性中,有命令一栏,我们选择运行脚本,在上边的脚本编辑中,可以打开脚本编辑器,首先编辑重置棋盘的按钮脚本,我将仪器每一个模块的参数都进行了初始化,将其设置为”0“或者10:

棋盘中每一个格子按钮的设置则稍微复杂,需要插入if判断语句,其格式是
// 命令列 值设置if PumpModule.Pump.%A.Equate="0"PumpModule.Pump.%A.Equate "1"elsePumpModule.Pump.%A.Equate "0"end if
我们插入if判断语句后,在if这一行需要写入判断条件,如图中的PumpModule.Pump.%A.Equate="0",如果泵A通道名称为”0“,则条件为真,会执行下面的命令,将通道名称设置为”1“,否则跳转至else后的命令执行,end if结束词条判断语句。这样就可以将该参数值在点击按钮的时候进行反转。
后续要做的操作就是把每一个按钮的脚本进行编辑,编辑过程中需要考虑在反转本参数的同时也要将相邻的参数进行反转。大致需要写入的就是如下代码:

05
—
实现过程-按钮矩阵的构建
当第一组按钮脚本编辑完成后,我们将其全体选择复制,生成第二组相同的按钮,将组2按钮的颜色设置成黄色,然后在每个按钮的”enable if“和”show if“属性中设置为对于仪器参数的判断:

需要注意的是,两组按钮的设置值应该是相反的,当所有的属性都设置完成后,只需要把第二组按钮的位置坐标写入和第一组相同的值,就会发现两个按钮完全叠加在了一起,这样就完成了我们预想的棋盘设置。
06
—
实现过程-成功条件的判断
为了判断游戏是否胜利,我们可以插入一个写入胜利信息的文本Label,将其”show if“属性设置为所有仪器参数的属性判断合集,其中以”and“连接代表逻辑”与“,
%A.Equate="1" and %B.Equate="1" AND %C.Equate="1" AND %D.Equate="1" AND DrawDelay=20 AND DrawSpeed=20 AND DispenseDelay=20 AND DispSpeed=20 AND Column_A.Comment="1" ANDColumn_A.Description="1" AND Column_B.Comment="1" AND Column_B.Description="1" AND UV_VIS_1.Wavelength=210 ANDUV_VIS_2.Wavelength=210 AND UV_VIS_3.Wavelength=210 AND UV_VIS_4.Wavelength=210
这样就可以在所有方块反转后,弹出胜利的提示。这个编辑完成后我点了好多次都没有成功,最后还是在AI的提示下完成了所有方块的反转。。。
07
—
完成后的思考
工作中,小伙伴们会对软件的功能有各种各样的需求,每一个品牌软件的开发其思路都是不一样的,没有纯粹的正确和完美,所谓众口难调,软件中包含的每个细节都是为了满足各种需求而添加的。
其实软件的功能是很丰富的,我们平时可以通过研究与学习,让软件能够按照自己的思路来运行,相信每个需求都有解决的办法。
在有空闲的时间,不如来探索一下,一定会有很多收获呢!
夜雨聆风