计算机仿真之电子宠物,,

电子宠物

我们将要建立一个简化了的电子宠物程序,正如前面所说的一样,这是一种仿真。你可以购买电子宠物玩具(比如有一个小屏幕的钥匙链),下载电子宠物软件,还有一些网站(如Neopets和Webkinz),就采用了电子宠物的形式,当然,所有这些也都是仿真,它们会模仿一些真实动物的行为,会饿,会感到孤单,会觉得得累,要让它们快乐健康,你必须给它们喂食,和它们玩,还要带它们看病。

我们的电子宠物会简单得多,与你购买或下载的电子宠物相比没有那么真实,因为我只是想让你有一些基本认识,而且我不希望代码太过复杂,不过你可以在这个简化版本的基础上,根据你的想法进行扩展或改进。

我们的程序要具备以下特性。

对这个宠物可以有4种活动:给它喂食、带它散步、和它玩或者带它看病。

可以监测这个宠物的3种统计信息:饥饿感、快乐度和健康度。

宠物可以醒着或者睡觉。

饥饿感会随时间增加,可以通过喂食减少饥饿感。

宠物睡觉时饥饿感的增加会减慢。

如果宠物在睡觉,你做任何活动都会让它醒过来。

如果宠物太饿了,它的快乐度会减少。

如果宠物实在太饿了,它的健康度减少。

带宠物散步会同时增加它的快乐度和健康度。

与宠物玩会让它的快乐度增加

带宠物看病会让它的健康度增加。

宠物有6个不同的图片:

一个睡觉的图片

一个醒着但什么也不做的图片

一个散步的图片

一个玩耍的图片

一个进食的图片

一个看病的图片

图片可以使用一些简单的动画。后面几节我们将看到如何把所有这些整合在一起构成一个程序。

GUI

Carer和我为我们的电子宠物程序创建一个PythonCard GUI.其中有一些按钮用来完成活动,还有一些计量器显示重要的统计信息,另外还留有一个位置显示宠物的图片(宠物正在做什么)。看起来就像下图这样。

对应活动的按钮是一种ImageButton类型的PythonCard组件,利用这种组件可以创建带图片的按钮,而不只是文本。各个计量器的组件类型的Gauge。主图片是一个Image组件,标签是StaticText组件。

你可以使用PythonCard资源编辑器创建这样的GUI。

算法

要为电子宠物程序写代码,需要更明确地了解宠物的行为。以下是我们要使用的算法。

我们把宠物的一“天”分为60个部分,每一部分称为一个“滴答”。每个滴答的实际时间是5秒钟,所以宠物的“一天”就是我们实际时间的5分钟。

宠物在48个滴答中都醒着,然后它想睡12个滴答。你可以把它叫醒,不过这样会让它很不高兴!

饥饿感、快乐度和健康度的范围都是0到8.

醒着时,饥饿感每个滴答会增加1个单位,快乐度每2个滴答减少1个单位(除非在散步或者玩)

睡觉时,饥饿感每3个滴答增加1个单位。

进食时,饥饿感每个滴答减少1个单位。

玩时,快乐度每个滴答增加1个单位。

散步时,快乐度和健康度每2个滴答增加1个单位。

看病时,健康度每个滴答增加1个单位。

如果饥饿感达到7,健康度每2个滴答减少1个单位。

如果饥饿感达到8,健康度每个滴答减少1个单位。

如果睡觉时被叫醒,快乐度减少4个单位。

如果程序不在运行,宠物可能醒着(什么也不做),也可能在睡觉。

程序重启时,我们会统计过去了多少滴答,并对应过去的每个滴答更新统计信息。

看起来好像规则很多,不过编写代码其实很容易,实际上,你可能还想增加更多的行为。让它更加有趣。稍后就会给出代码(还会做一些解释)。

简单动画

并不总是需要Pygame才能完成动画。我们可以在PythonCard中通过使用定时器完成简单的动画,定时器每隔了段时间会创建一个事件。可以编写一个事件处理器,在定时器到时间时让某个事情发生。这就类似于为一个用户动作编写事件处理器,比如说点击一个按钮,只不过定时器事件是由程序(而不是用户)生成的。

我们的电子宠物GUI将使用两个定时器:一个用于动画,另一个用于滴答。动画每半秒(0.5秒)更新一次,滴答每5秒发生一次。

计算机仿真模拟python,计算机仿真之电子宠物,,相关推荐

  1. python 仿真模拟_Python SimPy 仿真系列 (1)

    本系列文章旨在介绍 SimPy 在工业仿真中的应用. 在物流行业/工厂制造业/餐饮服务业存在大量急需优化的场景, 例如: 如何最优化快递分拣人员的排班表以满足双十一突发的快递件量 如何估算餐厅在用餐高 ...

  2. 华师大计算机入门模拟卷,计算机入门模拟卷A-华东师范大学.docx

    计算机入门模拟卷 A- 华东师范大学 华东师范大学成人高等教育(网络教育) <计算机入门>模拟卷(A 卷) 考试形式:闭卷考试时间: 90 分钟 学习中心:_________ 姓名:___ ...

  3. 计算机组成原理模拟试题,计算机组成原理模拟试题及答案

    <计算机组成原理模拟试题及答案>由会员分享,可在线阅读,更多相关<计算机组成原理模拟试题及答案(6页珍藏版)>请在人人文库网上搜索. 1.本科生期末试卷一一 选择题(每小题1分 ...

  4. 计算机数学基础模拟试题,计算机数学基础(A)模拟试题.doc

    计算机数学基础(A)模拟试题 计算机数学基础(A)模拟试题 一.单项选择题(每小题3分,共21分) 1.设,则( ). A. B. C. D. 2.若是由及围成,则=( ) A. B. C. D. 3 ...

  5. 计算机表格模拟考试,计算机职称考试电子表格模拟题

    浙江省职称考试 计算机电子表格模拟题 第一课.EXCEL应用基础 1. 在"打开"对话框上,利用"工具"下拉菜单,将文件"阳光.xls",重 ...

  6. 计算机仿真模拟论文,计算机仿真论文

    计算机仿真论文 简介:该频道包含与计算机仿真和论文有关的范例,免费为你研究计算机仿真技术论文提供有关参考资料. [摘 要]随着物流技术的发展,物流规划的复杂性,多样性渐渐突出,为物流业的进一步发展造成 ...

  7. 计算机课件模拟实验,计算机模拟仿真密立根油滴实验课件.pdf

    计算机模拟仿真密立根油滴实验 倪敏 , (上海师范大学数理信息学院上海200234) 提要:根据教学实际,用计算机模拟仿真密立根油滴实验.使实验中的原理,仪器.操作方法,数据处理等形 象地呈现在计算机 ...

  8. python计算机_基础python计算机知识

    1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...

  9. 计算机数学基础模拟试题,计算机数学基础》模拟考试试题.doc

    PAGE / NUMPAGES <计算机数学基础(2)>模拟试题(1) 一.单项选择题(每小题3分,共15分) 1. 数值x*的近似值x=0.1215×10-2,若满足( ),则称x有4位 ...

最新文章

  1. python 自动化-五大自动化测试的Python框架
  2. python py生成及调用pyc文件
  3. 【转贴】PLSQL不安装客户端连接远程oracle
  4. Android之解决TabLayout里面每个Tab项的间距和修改指示线的长度(非反射)和修改选中字体大小
  5. 2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言
  6. 一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)
  7. Python求笛卡尔积
  8. 基于Java+SSM+MySQL的高校后勤综合管理系统
  9. 计算机基础硬件知识试题及答案,计算机基础知识试题及答案大全(总结一)
  10. 英语流利说 第39天
  11. [C++] [OpenGL] 基于GLFW+GLAD的OpenGL简单程序
  12. 最新触摸精灵开发教程(价值300
  13. 清华大学计算机吴教授,清华大学计算机系教授吴文虎到我校讲学
  14. Android接收和发送短信
  15. 更新harbor证书
  16. 我为什么还坚持做公众号?(二)
  17. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
  18. JavaScript 各声明var、let、const方式区别『详解』
  19. 会声会影x4素材_会声会影2020旗舰版Corel VideoStudio Ultimate 2020中文版
  20. wordpress采集插件支持任意wordpress主题

热门文章

  1. python数据分析项目——【国家统计局】学历分布/CPI/金融行业学历分布
  2. 大学计算机实验五北理工,北京理工大学计算机实验五报告表
  3. 大学计算机实验二报告表答案,北理大学计算机实验基础实验二实验报告表答案...
  4. Java的诞生以及发展
  5. LoRa技术的行业发展前景如何?
  6. Parcelable
  7. 【“鲸智搭”入驻钉钉应用市场!三步走,教你轻松搭建流程表单】
  8. android 飞机动画,Android Canvas打飞机之让背景动起来
  9. 【合辑】点云基础知识及点云催化剂软件功能介绍
  10. 解决虚拟机安装系统报错解决方法