今天以一个小实例带你入门Python,编写一个叫"拿石子"的小游戏,让你可以与电脑对弈。

拿石子游戏规则很简单,一开始有一定数量的石子(假如是10),然后两人轮流从石子堆中取走一定范围的数量(例如是1,2,3)。以此类推,最后拿走剩余的所有石子的人就输了。

先看看最终效果的动态:

我们就用Python简单实现一个,来吧。

定义主要的方法

  • 如上图,这次主要需要一个随机函数
  • 一个可以重复尝试调用某个方法的功能,我们使用retrying库
  • 使用命令 pip install retrying 即可安装完成

再来看看主流程是如何调用这些方法

  • 一开始就调用 get_start_num ,生成一个开局的数
  • 然后来个死循环 while 1:
  • 循环中,先调用 cpu_number,表示电脑先做选择
  • 然后调用方法 judge,用于判断当前局面的情况,并返回一个当前石子数量
  • 紧接着调用 user_number,获取我们的输入数,也做一样的局面判断方法

然后,我们回头去把那些方法给实现就好了。

  • (1) 使用方法 random.randint ,得到一个随机数
  • (2) 同样使用方法 random.randint,得到随机数,不过如果当前只剩下少于3的数量,那么就用这个数来作为end。
  • (3) 这里就是用 retrying库的一个retry装饰器,表示我们这个方法只要做错误就会被重新执行
  • (4) 由于这里是我们输入,所以这里判断输入的东西是否可以转成int,不合法的情况下只要主动抛出异常即可触发retry
  • (5) 这里就判断输入的值是否在范围中

今天的重点

  • 使用 random.randint 生成随机数
  • 使用 retrying模块 ,可以简单方便让某个方法重复执行

最后

这个游戏的实现其实还有不完善的地方,比如电脑玩家目前的选择是随机的,如果你有兴趣可以自己改善他。

接下来我会改造这个部分,让电脑玩家可以自己跟自己不断进行对弈,然后学会如何取胜。

Python入门教程实战,用Python做一个有趣的拿石子游戏相关推荐

  1. python入门教程非常详细-python初学者怎么入门:python入门教程非常详细

    python安装后如何打开 ,先找到python安装位置. python学习网,大量的免费python入门教程,在线学习! 进装目录之后,点击Lib文件夹. 相关推荐:<Python教程> ...

  2. python入门教程(非常详细)-python初学者怎么入门:python入门教程非常详细

    python安装后如何打开 ,先找到python安装位置. python学习网,大量的免费python入门教程,在线学习! 进装目录之后,点击Lib文件夹. 相关推荐:<Python教程> ...

  3. python入门教程廖雪峰-Python 入门1 浅读廖雪峰老师的网站入门教程

    Photo by Julia 距离上次写学习笔记已经过去近三周了,五月玩的有点过于high了,加上陪胖哥慢慢步入细胞的殿堂也用去了较多时间.不管怎么说,自己立下的flag倒了也要马上扶起来,一切都不是 ...

  4. python入门教程(非常详细),python教学资源百度网盘

    python入门教程 <[3]学习视频>百度网盘资源免费下载链接提取码:m6tm[3]学习视频|python视频教程|Python入门基础视频教程|lets python 视频教程|Let ...

  5. python入门教程非常详细-Python编程入门教程:从入门到高级,非常详细

    本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...

  6. python入门教程 非常详细-Python编程入门教程:从入门到高级,非常详细

    本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...

  7. 蘑菇云「行空板Python入门教程」第七课:舒尔特方格小游戏

    注意力是一切学习的根本,是大脑进行感知.学习.思维等认知活动的基本条件.然而,无论是孩子还是成年人,我们常常会因开小差.注意力无法集中而困扰.此时,找到一个合适的方法来训练我们的注意力势在必行. 舒尔 ...

  8. python入门教程非常详细-Python该怎么入门?Python入门教程(非常详细)

    Python要学多久可以学会,达到精通呢? 任何知识都是基础入门比较快,达到通晓的程序是需求时日的,这是一个逐渐激烈的进程. 通晓任何一门编程语言,都需求通过大量的实践来积累经验,解决遇到的各种疑难问 ...

  9. python入门教程完整版-Python入门教程完整版(懂中文就能学会)

    隐藏内容,您需要满足以下条件方可查看 目录大纲: 本套教程15天 学前环境搭建 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频 ...

最新文章

  1. 论新时代软件测试人员的工作之道(一)之一个故事
  2. 我在Archlinux下使用的软件
  3. 机器学习知识点(八)感知机模型Java实现
  4. MySQL的4大版本
  5. 手撕python_Pytorch手撕经典网络之LeNet5
  6. Linux开机启动过程(7):内核执行入口点
  7. Windows 8实用窍门系列:1.使用Xaml+C#开发第一个Metro Style应用程序
  8. 什么是订单管理系统OMS
  9. 一文看懂张小龙 2018 微信公开课演讲
  10. 阿里云ECS云服务器快照
  11. 凌晨半夜短信通道异常,乙方如何答复?
  12. 如何拆分PDF文件或提取PDF页面为一个单独文件?
  13. 环形电流计算公式_环形电流的磁场分布 怎么计算
  14. 第四周.直播.03.论文带读+GAT
  15. Windows提权流程及手法
  16. 计算机科学与技术500分左右的大学,全国所有500分左右的211大学
  17. 用爬虫玩转石墨文档API
  18. hive on tez 执行任务报错
  19. 一个C语言程序是由( )组成?
  20. R语言实战读书笔记(五)高级数据管理

热门文章

  1. STM32 - 定时器基础应用说明 - 03 - Application: timer clocking using external clock-source on ETR timer input
  2. pcie usb3.0 驱动 for linux_微软WSL——Linux桌面版未来之光
  3. 服务器信号怎么设置好,手机这样设置,WIFI信号马上提高!
  4. oracle一体机flash卡,PCIe Flash卡设备的测试
  5. python列表反向_python反向列表
  6. h5评论直接显示代码_全套H5教程免费学,让你0基础自学制作H5页面
  7. ssas脚本组织程序_脚本调试编辑
  8. 都说它是年度Android机皇,都说它是年度Android机皇,Galaxy Note20 Ultra到底怎么样?...
  9. python可变序列_Python3基础(二)—— Python可变序列
  10. hutool 取前12个月_Excel – 创建 12 个月的工资表模板,我只要 20 秒