python实现你说我猜游戏
目录
前言
一、游戏规则
二、实现过程
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实现你说我猜游戏相关推荐
- python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏
Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...
- python经典小游戏-用Python设计一个经典小游戏:猜大小
码农那点事儿 关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下 ...
- 20行python代码的入门级小游戏-用Python设计一个经典小游戏
本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...
- python小游戏编程实例-Python实现的弹球小游戏示例
本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw ...
- python写一个游戏多少代码-使用Python写一个贪吃蛇游戏实例代码
我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...
- python游戏脚本实例-使用Python写一个贪吃蛇游戏实例代码
我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...
- python小项目实例流程-python实现的简单RPG游戏流程实例
本文实例讲述了python实现的简单RPG游戏流程.分享给大家供大家参考.具体如下: #RPG rpg = True whp = 100 mahp = 100 hhp = 100 MHP = 10 d ...
- python小游戏代码大全-20行python代码的入门级小游戏的详解
背景: 作为一个python小白,今天从菜鸟教程上看了一些python的教程,看到了python的一些语法,对比起来(有其他语言功底),感觉还是非常有趣,就随手添了一点内容,改了一个小例程,当着练练手 ...
- python经典小游戏-用Python设计一个经典小游戏
本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...
- c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏
假期最后一天,有些人在外面玩累了,有些人躺在家里快发霉了,闲暇时候不如动动手做个小游戏玩一玩吧! 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 1 import ...
最新文章
- js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。...
- JS获取用户控件中的子控件Id
- Linux系统的压缩技术
- 【小白学PyTorch】13.EfficientNet详解及PyTorch实现
- 次债危机:全世界陪着美国等死
- latex设置一级标题样式不居中_Word应用“样式”的设置
- LOJ#3085. 「GXOI / GZOI2019」特技飞行(KDtree+坐标系变换)
- 红外图像高低温校正【待补充】
- 爬虫项目十三:用Python两分钟爬下微信公众号900篇文章
- win10系统恢复win7的照片查看器
- 小米手机计算机usb连接,小米5手机怎么连接电脑 USB调试方法教程
- 华为服务器管理口在哪个位置,华为服务器默认管理口地址吗
- Vue创建app及App挂载和渲染
- Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线
- Omniplan for Mac v3.5.0汉化破解版
- 微信昵称加「福」字,最新官方攻略来了!
- python批量搜索关键字_多关键字是高效的搜索关键字
- 安徽科技学院 信网学院网络文化节 刘洪江
- WebOffice常用API接口使用说明
- 用 Flex Builder 3 + Pydev 打造全能 webgame 集成开发环境