目录

前言

一、游戏规则

二、实现过程

1、基本框架

2、完整案例

三、总结

前言

五一参加python技能书的答疑,发现题目中的逻辑存在问题,对应的你说我猜游戏里面的都是恒相等的。就调试修正了对应的代码,分享给大家,供大家学习与娱乐。

一、游戏规则

请你使用类 KeyValueSet 完成一个交互式命令行你想我猜游戏。支持:

  • 装载N个句子对
  • 你猜我想 闯关,输出上半句,等待用户猜测下半句
  • 如果猜中就累加10分,否则扣2分
  • 全部结束输出用户本次得分

二、实现过程

1、基本框架

我们编写一个新的class,内部通过组合KeyValueSet来支持上述功能,程序框架如下:

# -*- coding: UTF-8 -*-
class GuessSentenceGame:def __init__(self):self.kv = KeyValueSet()self.score = 0def setup(self, sentences):# TODO(You): 请在此编写装载逻辑def guess(self, first_word):# TODO(You): 请在此编写猜测结果,返回 err, valuedef run(self):self.score = 0for first_word in self.kv.keys():ret = input("猜一猜下半句是什么? {} -> :".format(first_word))err, value = self.guess(first_word)if err==0:print('你太厉害了,这都能猜得到!+10分!')self.score += 10else:self.score -= 2print('哈哈,肯定猜不到得啦:{}->{},扣除2分!'.format(first_word, value))print('游戏结束,你本次游戏得分:', self.score)if __name__ == '__main__':sentences = ["hello world",'monkey king','tomorrow is another day',"good bye"]game = GuessSentenceGame()game.setup(sentences)game.run()

一个示例输出是:

猜一猜下半句是什么? hello -> :world
你太厉害了,这都能猜得到!+10分!
猜一猜下半句是什么? monkey -> :king
你太厉害了,这都能猜得到!+10分!
猜一猜下半句是什么? tomorrow -> :is another day
你太厉害了,这都能猜得到!+10分!
猜一猜下半句是什么? good -> :a
哈哈,肯定猜不到得啦:good->bye,扣除2分!
游戏结束,你本次游戏得分: 28

2、完整案例

代码:

# -*- coding: UTF-8 -*-
class KeyValueSet:def __init__(self) -> None:self.dict = {}def set(self, key, value):self.dict[key] = valuedef get(self, key):return self.dict.get(key)def keys(self):return self.dict.keys()
# -*- coding: UTF-8 -*-
class GuessSentenceGame:def __init__(self):self.kv = KeyValueSet()self.score = 0
#获取按空格截取的上下句def setup(self, sentences):for sentence in sentences:cut_pos = sentence.find(' ')first_word, rest = sentence[0:cut_pos], sentence[cut_pos + 1:].strip()self.kv.set(first_word, rest)
#根据上句返回对应的值,这是原逻辑返回了一个状态码和下句值,但逻辑存在问题,状态码是恒等于0的因此我们比较输入值与返回默认下句是否一致即可def guess(self, first_word):value = self.kv.get(first_word)#err = 0 if value else 1#print(err, value)return err, valuedef run(self):self.score = 0for first_word in self.kv.keys():ret = input("猜一猜下半句是什么? {} -> :".format(first_word))err, value = self.guess(first_word)if  value==ret:#比较输入值与返回默认下句是否一致即可print('你太厉害了,这都能猜得到!+10分!')self.score += 10else:self.score -= 2print('哈哈,肯定猜不到得啦:{}->{},扣除2分!'.format(first_word, value))print('游戏结束,你本次游戏得分:', self.score)if __name__ == '__main__':sentences = ["他们叫我 技术总监",'hello world','monkey king','tomorrow is another day','good bye',"谢谢 大家"]game = GuessSentenceGame()game.setup(sentences)game.run()

效果图:

三、总结

感谢各位大佬对CSDN技能树的贡献,但是还是需要好好校验下对应案例哦,不然就容易误导大家哦,岂不是违背了初衷

python实现你说我猜游戏相关推荐

  1. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

  2. python经典小游戏-用Python设计一个经典小游戏:猜大小

    码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...

  3. 20行python代码的入门级小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  4. python小游戏编程实例-Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw ...

  5. python写一个游戏多少代码-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  6. python游戏脚本实例-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  7. python小项目实例流程-python实现的简单RPG游戏流程实例

    本文实例讲述了python实现的简单RPG游戏流程.分享给大家供大家参考.具体如下: #RPG rpg = True whp = 100 mahp = 100 hhp = 100 MHP = 10 d ...

  8. python小游戏代码大全-20行python代码的入门级小游戏的详解

    背景: 作为一个python小白,今天从菜鸟教程上看了一些python的教程,看到了python的一些语法,对比起来(有其他语言功底),感觉还是非常有趣,就随手添了一点内容,改了一个小例程,当着练练手 ...

  9. python经典小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  10. c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏

    假期最后一天,有些人在外面玩累了,有些人躺在家里快发霉了,闲暇时候不如动动手做个小游戏玩一玩吧! 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 1 import ...

最新文章

  1. js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。...
  2. JS获取用户控件中的子控件Id
  3. Linux系统的压缩技术
  4. 【小白学PyTorch】13.EfficientNet详解及PyTorch实现
  5. 次债危机:全世界陪着美国等死
  6. latex设置一级标题样式不居中_Word应用“样式”的设置
  7. LOJ#3085. 「GXOI / GZOI2019」特技飞行(KDtree+坐标系变换)
  8. 红外图像高低温校正【待补充】
  9. 爬虫项目十三:用Python两分钟爬下微信公众号900篇文章
  10. win10系统恢复win7的照片查看器
  11. 小米手机计算机usb连接,小米5手机怎么连接电脑 USB调试方法教程
  12. 华为服务器管理口在哪个位置,华为服务器默认管理口地址吗
  13. Vue创建app及App挂载和渲染
  14. Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线
  15. Omniplan for Mac v3.5.0汉化破解版
  16. 微信昵称加「福」字,最新官方攻略来了!
  17. python批量搜索关键字_多关键字是高效的搜索关键字
  18. 安徽科技学院 信网学院网络文化节 刘洪江
  19. WebOffice常用API接口使用说明
  20. 用 Flex Builder 3 + Pydev 打造全能 webgame 集成开发环境

热门文章

  1. 可以联机的的单机游戏
  2. xshell5 的账号密码搬家
  3. 解决DOS窗口中文乱码问题
  4. win8.1 安装kb2999226 一直提示 搜索更新
  5. php zend studio 下载地址,Zend Studio
  6. mtk2503 如何支持使用epo?
  7. mysql实现用拼音搜索中文的数据库实现
  8. Java分页之后再进行排序
  9. UTM投影带号计算以及投影具体操作
  10. matlab数组、矩阵运算