手把手教你用Python完成一个控制台小游戏
很多人想学Python程序设计或者已经了解过一点Python程序设计基础,却没办法开发出一个项目。
今天,通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,即便你是个新手,也完全可以跟着操作。
开始前,我们先简明扼要的讨论一下Python是什么,以及Python应该注意的一些规范。
1、Python简介
Python广泛应用web开发、人工智能、数据分析、自动化运维领域,对初学者来说,是一门相对于其他程序设计语言来讲容易上手的一门程序设计语言。
2、规范
在Python之中使用#来表示单行注释,三重引号来表示多行注释,注释应该遵循 “奥卡姆剃刀原理”,即不要使用不必要的注释,好的代码胜于千言万语。
如无必要,勿增实体
在对变量和函数命名的时候,尽量要使用英文单词,一眼就能明白该变量或该函数的用处。
如有必要,可以使用todo注释,来表明将来要做某事,例如下面的注释
# TODO(Zeke) Change this to use relations.
那么接下来,我们进入这次文章的主题吧——控制台的井字棋游戏,效果如下图所示。
既然是控制台游戏,我们欢迎界面就不做的花里胡哨的了。
1、首先我们先创建一个欢迎界面(界面如下)
其实就是在屏幕上输出下面格式的内容
我们可以使用pycharm、IDLE、sublime等开发工具来帮助我们开发,首先我们先创建一个game.py文件,打开文件,输入如下的代码:
此时,我们可以测试一下,这个欢迎界面是否正常。
2、确认玩家选择哪种标记
这里我们就假设只能选择O或者X?这里我们让玩家自己选择。我们一样定一个函数来确定玩家的使用标记。
3、确认玩家还是电脑先手
这里采用了random模块,来随机确定玩家先手还是电脑先手。
原理:我们产生一个从0到1的随机整数,如果是0就是电脑先手,如果非0就是玩家先手。
4、接下来主要的游戏逻辑部分的确定,输赢判断的逻辑(重点)。
我们先把游戏的步骤给大家分析清楚了。
5、游戏的运行逻辑
电脑与玩家轮流下棋,每次下棋都要判断要下的位置是否已经有棋了,并且下完后判断是否产生了进行输赢的判断。
原文发布时间为:2018-07-23
本文作者: 小詹学Python
本文来自云栖社区合作伙伴“小詹学Python”,了解相关信息可以关注“小詹学Python”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?
谈谈学习 我做前端已经有五年的时间了,从大学刚毕业的时候,我是一个完全什么都不懂的小白。虽然我大学里学的是软件工程专业,但是因为在大学里荒废学业,每天只知道打游戏,基本上到大学毕业之前我是什么都不会的,而且大学里是没有教前端相关的东西的。 我是在大学毕业之前,两三个月,自学了一点点前端的皮毛,也就是会写一点点的html和css。那个时候找工作也不容易,终于有一个公司收留了我,虽然说工资什么的我们暂时按下不提。但是至少他们要我,我就非常地开心了。 从那个时候开始,因为有了项目要做,所以我逼迫自己,每天去学习新的内容。那个时候我从jQuery开始做,因为公司的项目比较特殊,就是单页应用,总共加起来大概就五六个页面,但是要一次性全部加载完,后续的所有数据都是根据接口去获取。那个时候没有框架,没有React,ngular也刚刚出来,还并不流行。所以那个时候我们就用jQuery。 然后我就想办法去做,第一版做的非常的烂,就一个js文件我写了3000多行代码。所以在那个时候我逼迫自己想办法去解决各种问题。我就针对自己当时的认知,比如说js文件太大了,应该怎么办? 然后我去网上搜,我发现了sea.j...
-
下一篇
如何用JavaScript手动实现一个栈
什么是栈(Stack) 栈是一种遵从后进先出(LIFO)原则的有序集合。 新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端叫栈底。 在栈里,新元素都靠近栈顶,旧元素都接近栈底 现实中的例子 在生活中也能发现很多栈的例子。例如,厨房里堆放的盘子,总是叠在上方的先被使用;输入框内容进行删除时,总是最后输入的先删除;弹夹中的子弹,越后装入的,越先发射...... 手动实现一个栈 首先,创建一个类来表示栈 function Stack () { } 我们需要选择一种数据结构来保存栈里的元素,可以选择数组 function Stack(){ var items = []; //用来保存栈里的元素 } 接下来,为栈添加一些方法 push(element(s)); //添加新元素到栈顶 pop(); //移除栈顶的元素,同时返回被移除的元素 peek(); //返回栈顶的元素,不对栈做任何修改 isEmpty(); //如果栈里没有任何元素就返回true,否则false clear(); //移除栈里的所有元素 size(); //返回栈里的元素个数,类似于数组的length属性 我们需要实...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- MySQL数据库在高并发下的优化方案
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)