本节书摘来自华章计算机《树莓派Python编程指南》一书中的第2章,第2.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 一个Python游戏:猫和老鼠

现在,让我们开始第二个Python程序。这次你将写出一个猫和老鼠的游戏。游戏者使用方向键来控制老鼠,使其保持在猫的前方(由计算机控制猫)。保持时间越长,得分越高。
下面例子中的程序名字是Chapter2-catandmouse.py。
打开一个IDLE3新窗口并输入下面的代码:


https://yqfile.alicdn.com/229f8a0fcdcb725e4fe026b4d2b1d5a4202ef7c9.png
" >


代码很多,在仔细读之前可以先试玩几次感受一下。这样也可以检验你的输入是否完全正确。如果程序出错,先检查下输入,然后再试一下。图2-4给出了程序运行界面。


https://yqfile.alicdn.com/80bd7f4cc8b7f3287950038df555eb2172f32149.png
" >

2.2.1 理解变量
程序前两行导入turtle和time模块,接下来的三行:


使用了我们之前接触过但没有深入介绍的概念:变量(variable)。我们可以在变量中存入值以便后面使用。例如,第一行中在变量boxsize中存入200。写完这行,你就可以在程序中使用boxsize,Python将使用正确的值来替代它。这个结构之所以称为变量是因为它可以变化。在我们的这个程序中,boxsize保持不变,但caught和score的值会发生变化。每次需要一个新值时,可以使用单个等号对其重新赋值。这和我们在第一个程序中对window和babbage赋值的做法一样,它们分别保存了screen和turtle。在第3章中我们将介绍变量,以及可以在变量中存储什么值。
2.2.2 定义函数
程序中接下来的代码定义了一些函数。注意在函数checkbounds()中的这一行:


https://yqfile.alicdn.com/e69b49d05c144ab4b807fe49cc0d2eb86edc010b.png
" >

这行是必需的,因为函数无法存取定义在函数外面的变量。这一行告诉Python我们将在本函数中使用变量boxsize,而该变量是在函数外部定义的。
可能最让人困惑的就是这一节:


https://yqfile.alicdn.com/93a3f78d80c25382c1faf3870c414024e18ac4c3.png" >

这段代码告诉窗体当不同的键按下时应该做什么。例如,第一行表示当“向上”键(键盘方向键的向上按键)按下时,运行函数up(我们已经定义好了)。
2.2.3 在游戏中循环
接下来就到了游戏的主循环中:



代码中使用了不同的循环方法。while循环如下:


它表示如果条件(condition)为真,将执行后面的循环代码(loop code)。在程序的变量列表中,可以看到变量caught被赋为False:


因此,这里使用的条件为not caught(因为not False为真,程序开始时该条件为真),程序一直运行到caught被赋值为真,因为not True表示假。这样描述会有点复杂。但如果按字面意思就很容易理解:前面的not表示将真和假反一下。
time.sleep()告诉Python停止在给定的时间,单位为秒。本例中我们随着难度等级(由用户输入一个值存在变量中)增加而减少程序等待时间。你会发现,随着难度增加,猫的运动速度也在增加。
此时也许你很想知道如何记住各个模块中对应的所有方法。比如,怎么才能知道应该使用forward(10)而不是forwards(10)或者move_forwards(10),或者怎么才能知道哪里可以找到向前移动的方法呢?使用Python不需要有超人的记忆力,你只需要知道在哪里可以查看帮助就好了。如果使用IDLE3,按下F1 Python文档就会显示在Web浏览器里。这里有很多有用信息,非常值得浏览一下。例如需要查看turtle模块的信息,只需要在快速查找窗口中输入turtle,然后选择第一项,你将会看到,我们已经使用过它的方法了。

《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠相关推荐

  1. 自学python 编程基础知识_一个python编程自学者的历程以及给自学新手的一些建议...

    文章原本昨晚已经在电脑写好了,今天准备用手机润润色再发表,结果误操作给删了,又要重新码字,真是日了狗了. 由于手机码字,以下python就用py简称代替了.写之前其实也犹豫再三,一则自己编程水平实在有 ...

  2. 《树莓派Python编程指南》—— 1.3 树莓派快速指南

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第1章,第1.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  3. 《树莓派Python编程指南》——2.3 小结

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  4. 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第3章,第3.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  5. 学习大数据分析python编程指南

    每个人都喜欢Python.如果您打算开始从事数据科学事业,我们可以肯定Python在您心中已经占有特殊的位置.它直观且易于在任何平台上运行,并且具有大量令人惊叹的库和工具.与其他编程语言相比,Pyth ...

  6. python入门指南小说免费阅读-Python入门指南

    原标题:Python入门指南 python是一门编程语言,本文主要讲述了python入门的基础知识. 目录 一.编程与编程语言 二.编程语言分类 三.主流编程语言介绍 四.python介绍 五.安装p ...

  7. python编程入门到实践pdf,python编程入门课 视频

    初学者学Python编程如何快速入门? 谷歌人工智能写作项目:小发猫 初学python入门都需要具备那些条件? Python相对比较简单,零基础也能学typescript在npm安装后检测不到.系统学 ...

  8. python编程入门经典百度云-python电子书学习资料打包分享百度云资源下载

    [300dpi高清版] Python基砒教程(第2版)LHD,pdf Head. First. Python中文版pdf [ Python3程序开发指南第二版pdf [ thon编程第4版)]( Pr ...

  9. 手机python编程软件 turtle,安卓手机python编程软件

    如何用手机编程Python? 1.QPython3:这是一个在安卓手机上运行python3的脚本引擎,整合了python3解释器.控制台.QEdit编辑器和SLA4库,可以在安卓手机上运行python ...

最新文章

  1. 有人竟然为了两千多的眼镜倒贴10亿???
  2. 使用RegularExpressionValidator限制多行文本框的字数
  3. 【effective c++读书笔记】【第8章】定制new和delete(2)
  4. Linux中Shell循环结构for用法笔记
  5. android布局的一些知识
  6. linux 智联 网卡设置,Linux初学者DNS配置指南(四)配置Bind常见问题
  7. JQuery下锚点的平滑跳转
  8. 为什么牛顿法下降的速度比梯度下降的快
  9. ASP.NET URL Rewrite. URL重写
  10. ThinPHP_5的请求和响应
  11. 转载--卷积神经网络卷积层池化层输出计算公式
  12. 双色球神经网络算法分析,双色球预测程序算法
  13. 阅读圣经丨变量引起的上下文
  14. LintCode-颜色分类
  15. C#番外篇-SpinWait
  16. U盘文件系统格式快速转换
  17. SOFARPC —— SPI 解析
  18. 唱响艾泽拉斯-泰兰德的拥抱专辑
  19. MATLAB人脸检测系统
  20. 数理统计学类毕业论文文献都有哪些?

热门文章

  1. MySQL Innodb日志机制深入分析
  2. 字符串的最大相似匹配
  3. 【SLAM后端】—— ceres优化相机位姿求解
  4. 基础数据结构【一】————数组
  5. Oracle自增列创建方法
  6. PHP动态编译出现Cannot find autoconf
  7. PHP连接MySQL的2种方法以及防止乱码
  8. asp.net/c#字符格式化大总结
  9. Asp.Net 动态生成验证码
  10. 提高C++性能的编程技术笔记:设计优化/可扩展性/系统体系结构相关+测试代码