PLC也能制作小游戏----Codesys编写猜数字小游戏
1、序言
作者作为工控人员,有点羡慕学计算机的程序员,可以通过代码实现各种功能的软件以及游戏(这个是重点,嘿嘿),就像windows以前自带的纸牌,空当接龙,扫雷等。最近发现,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,哈。
本文先尝试下编写一个容易点的小游戏,十几年前的文曲星上比较流行的,猜数字小游戏。
2、猜数字规则
游戏规则如下:
a、生成被猜数,4个数字,由0-9中随机产生,且4个数字不重复,例如:1256、0123、8563…;
b、猜数字,由玩家输入4位数字,对比两个数字,给出猜测结果提示,提示说明,玩家输入4个数字中,存在有被猜数内的数字,且位置相同的,提示为A,存在有被猜数内的数字,且位置相同的,提示为B;AB的数量就是提示结果,比如被猜数为:3025,玩家猜测:1234,提示结果为:0A2B,意思是1234中有2个数字存在被猜数中,但位置不对;若猜测0123,则提示结果为:1A2B,即0123中存在1个数字,存在被猜数中,且位置正确,还有2个数字,存在被猜数中,但位置不对;
c、玩家根据结果提示分析并重新猜测,直到猜测结果为4A0B,则表示猜中了;
d、玩家可猜测是次数最多为7次,若7次还没猜出,则游戏失败。
3、程序编写
猜数字的逻辑并不复杂,因此不做流程图了,直接根据游戏规则编写程序,主要包括:
a、生成4位不重复的数字,作为被猜数;
b、比较玩家输入的数字与被猜数,生成猜测结果;
c、数据显示与类型转换,需要用到的类型主要了整形和字符型。
3.1、生成随机数
codesys并没有生成随机数的函数,需要下载oscat库,其中有个GEN_RDM函数可以生成随机数,不过其函数说明全英文的,目前还没研究明白,只能通过其他方法。
本文参考了一个生成随机数较为简洁的办法,设置一个ms级别的定时器(codesys最小可设置1ms),让x1在0-9依次循环,通过按钮操作,当检测到按钮上升沿时,x1的值就是生成的随机数的第一位数据,然后让x2在0-9中去除x1后的范围内循环,同样的原理生成x2,依次生成x3,x4,组合就得到4位的随机数。
此方法可能存在一定的偶然性,并不能完全随机,但对于本文中猜数字游戏来说,已经可以使用了,并没有对随机数严格的要求。生成程序用梯形图实现,程序如下:
a、建立4个数组,位数分别为7,8,9,10
b、建立毫秒级循环
c、 依次排除掉选中的数
d、上升沿取数据
e、数据转换成字符型 ,显示使用(整数型最高位为0是只能显示3个数)
3.2、输入数据比较及提示结果
3.3、结果判断
4、可视化仿真
4.1、创建画面,变量连接(变量连接方法略过,有疑问可参考博文ST语言实现冒泡排序的文章:https://blog.csdn.net/qq_19979629/article/details/122273823)
4.2、游戏运行
运行视频如下:
软PLC也能制作小游戏----Codesys编写猜数字小游戏
5、综述
通过编程和可视化仿真,Codesys基本可以实现猜数字小游戏的功能,接下来空闲之余将尝试更多休闲游戏的编写哈,以便开发更多的codesys功能,嘿嘿。
本文所用Codesys版本为V3.5.14.10,本文所涉及程序可在以下地址下载:
https://download.csdn.net/download/qq_19979629/85623135
PLC也能制作小游戏----Codesys编写猜数字小游戏相关推荐
- python编写猜大小游戏_python编写猜数字小游戏
本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1,30) guess = 0 tri ...
- java编写数字游戏大全_Java编写猜数字小游戏
本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是java语言写的一个猜数字小游戏引用片段: import java.text.simpledateformat; impo ...
- 猜数字游戏java编程_Java编写猜数字小游戏
本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; impo ...
- Javascript手把手编写 猜数字大小游戏 附源码
猜数字游戏,只有猜对了,才会结束,否则一直循环 1.随机生成一个1~100 的整数 需要用到 Math.random() 方法. 2.需要一直猜到正确为止,所以需要一直循环. 3.while 循环更 ...
- PLC也能制作小游戏----Codesys编写推箱子小游戏
1.序言 前文已介绍,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,本文编写另一个小游戏,也是十几年前的 ...
- html5猜数字游戏代码,js猜数字小游戏的简单实现代码
复制代码 代码如下: 简易计算机 //获取随机数 function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.ran ...
- java数字猜大小游戏_java实现猜数字小游戏
java实现猜数字游戏 随机给定一个数字,猜大小直到正确 package com.swift; import java.util.Random; import java.util.Scanner; p ...
- 趣味C——如何用C语言编写猜数字小游戏
游戏目的:电脑随机产生一个1~100的随机数,我们输入所猜的数字,电脑提示我们猜大了还是猜小了,根据电脑的提示逐渐缩小范围,直到猜对为止. 编写代码如下: #include <stdio.h&g ...
- Python编写的猜数字小游戏~~~基于Tkinter库
Python编写猜数字小游戏 编写猜数字小游戏 一.界面 1.PyQt5 2. wxPython 3. PyGTK 二.Tkinter功能 ① 15种核心组件 ② 组件的放置和排版(pack,grid ...
- 教你如何用C语言设计一个有趣的猜数字小游戏
目录 前言 猜数字游戏 打印菜单 处理玩家选择的操作 编写猜数字游戏函数 游戏中要猜数字从哪来?(配置随机数生成器) 时间戳 开始生成随机数 game函数内部编写 完整代码 总结 前言 好久不见,今天 ...
最新文章
- iphone分辨率_目前最值得入手的三款安卓机!流畅度堪比iPhone,用三五年不过时...
- 白话Elasticsearch40-深入聚合数据分析之案例实战_Global Aggregation:单个品牌与所有品牌平均价格对比
- 一步步教你轻松学K-means聚类算法
- Redis中的发布订阅模式
- python+selenium获取cookie session_Python Selenium模拟登录成功后,使用此cookie、利用requests库进行get时,提示“非法登陆”。...
- 深度学习:什么是自编码器(Autoencoder)
- 块级元素行内元素内联元素
- GB2312、BIG5、GBK、GB18030简介
- 迅捷路由器造成计算机无法上网,迅捷(fast)路由器连不上网怎么办?
- 硬盘录像机常见问题解答硬盘录像机故障解决
- C语言经典面试题 与 C语言面试宝典
- android 支付sdk流程,支付SDK
- SDL下播放声音文件
- 如何查看浏览器http请求协议
- 怎么判断机械表上满弦_机械表发条怎么上满 这些条件要满足
- 跨境独立站MaTaCart教你怎么查谷歌排名
- unity聚光灯_聚光灯团队最佳实践:碰撞性能优化
- 详解Python中的True、False和None
- dll文件导出对应的lib文件
- elysia Phil‘s Cascade for Mac(硬件音色模拟插件) v1.1破解版