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编写猜数字小游戏相关推荐

  1. python编写猜大小游戏_python编写猜数字小游戏

    本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1,30) guess = 0 tri ...

  2. java编写数字游戏大全_Java编写猜数字小游戏

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是java语言写的一个猜数字小游戏引用片段: import java.text.simpledateformat; impo ...

  3. 猜数字游戏java编程_Java编写猜数字小游戏

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; impo ...

  4. Javascript手把手编写 猜数字大小游戏 附源码

    猜数字游戏,只有猜对了,才会结束,否则一直循环 1.随机生成一个1~100 的整数  需要用到 Math.random() 方法. 2.需要一直猜到正确为止,所以需要一直循环. 3.while 循环更 ...

  5. PLC也能制作小游戏----Codesys编写推箱子小游戏

    1.序言 前文已介绍,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,本文编写另一个小游戏,也是十几年前的 ...

  6. html5猜数字游戏代码,js猜数字小游戏的简单实现代码

    复制代码 代码如下: 简易计算机 //获取随机数 function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.ran ...

  7. java数字猜大小游戏_java实现猜数字小游戏

    java实现猜数字游戏 随机给定一个数字,猜大小直到正确 package com.swift; import java.util.Random; import java.util.Scanner; p ...

  8. 趣味C——如何用C语言编写猜数字小游戏

    游戏目的:电脑随机产生一个1~100的随机数,我们输入所猜的数字,电脑提示我们猜大了还是猜小了,根据电脑的提示逐渐缩小范围,直到猜对为止. 编写代码如下: #include <stdio.h&g ...

  9. Python编写的猜数字小游戏~~~基于Tkinter库

    Python编写猜数字小游戏 编写猜数字小游戏 一.界面 1.PyQt5 2. wxPython 3. PyGTK 二.Tkinter功能 ① 15种核心组件 ② 组件的放置和排版(pack,grid ...

  10. 教你如何用C语言设计一个有趣的猜数字小游戏

    目录 前言 猜数字游戏 打印菜单 处理玩家选择的操作 编写猜数字游戏函数 游戏中要猜数字从哪来?(配置随机数生成器) 时间戳 开始生成随机数 game函数内部编写 完整代码 总结 前言 好久不见,今天 ...

最新文章

  1. iphone分辨率_目前最值得入手的三款安卓机!流畅度堪比iPhone,用三五年不过时...
  2. 白话Elasticsearch40-深入聚合数据分析之案例实战_Global Aggregation:单个品牌与所有品牌平均价格对比
  3. 一步步教你轻松学K-means聚类算法
  4. Redis中的发布订阅模式
  5. python+selenium获取cookie session_Python Selenium模拟登录成功后,使用此cookie、利用requests库进行get时,提示“非法登陆”。...
  6. 深度学习:什么是自编码器(Autoencoder)
  7. 块级元素行内元素内联元素
  8. GB2312、BIG5、GBK、GB18030简介
  9. 迅捷路由器造成计算机无法上网,迅捷(fast)路由器连不上网怎么办?
  10. 硬盘录像机常见问题解答硬盘录像机故障解决
  11. C语言经典面试题 与 C语言面试宝典
  12. android 支付sdk流程,支付SDK
  13. SDL下播放声音文件
  14. 如何查看浏览器http请求协议
  15. 怎么判断机械表上满弦_机械表发条怎么上满 这些条件要满足
  16. 跨境独立站MaTaCart教你怎么查谷歌排名
  17. unity聚光灯_聚光灯团队最佳实践:碰撞性能优化
  18. 详解Python中的True、False和None
  19. dll文件导出对应的lib文件
  20. elysia Phil‘s Cascade for Mac(硬件音色模拟插件) v1.1破解版

热门文章

  1. JMeter proxy server
  2. Win10使用快捷键新建文件夹和.txt文本文档,提升工作效率,让你成为最靓的仔
  3. MeanShift跟踪MATLAB实现
  4. 企业工资管理系统论文
  5. 庄懂技术美术入门课笔记_L13_特效类shader(AlphaBlendAlphaCutoutAdditice)
  6. 烽火计划项目成果-目录索引
  7. 面试智力题精选:扑克牌问题
  8. php PDO连接mysql
  9. 联想H61主板BIOS刷新(启天M7100系列)
  10. PowerDesigner16.5下载和安装教程