2025年python实现你画我猜游戏

python实现你画我猜游戏目录 前言 一 游戏规则 二 实现过程 1 基本框架 2 完整案例 三 总结 前言 五一参加 python 技能书的答疑 发现题目中的逻辑存在问题 对应的你说我猜游戏里面的都是恒相等的 就调试修正了对应的代码 分享给大家 供大家学习与娱乐 一 游戏规则 请你使用类

大家好,我是讯享网,很高兴认识大家。

目录

前言

一、游戏规则

二、实现过程

1、基本框架

2、完整案例

 三、总结


讯享网

前言

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

一、游戏规则

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

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

二、实现过程

1、基本框架

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

# -*- coding: UTF-8 -*- class GuessSentenceGame: def __init__(self): self.kv = KeyValueSet() self.score = 0 def setup(self, sentences): # TODO(You): 请在此编写装载逻辑 def guess(self, first_word): # TODO(You): 请在此编写猜测结果,返回 err, value def run(self): self.score = 0 for first_word in self.kv.keys(): ret = input("猜一猜下半句是什么? {} -> :".format(first_word)) err, value = self.guess(first_word) if err==0: print('你太厉害了,这都能猜得到!+10分!') self.score += 10 else: self.score -= 2 print('哈哈,肯定猜不到得啦:{}->{},扣除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] = value def 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, value def run(self): self.score = 0 for first_word in self.kv.keys(): ret = input("猜一猜下半句是什么? {} -> :".format(first_word)) err, value = self.guess(first_word) if value==ret:#比较输入值与返回默认下句是否一致即可 print('你太厉害了,这都能猜得到!+10分!') self.score += 10 else: self.score -= 2 print('哈哈,肯定猜不到得啦:{}->{},扣除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技能树的贡献,但是还是需要好好校验下对应案例哦,不然就容易误导大家哦,岂不是违背了初衷

小讯
上一篇 2025-04-11 07:27
下一篇 2025-01-26 23:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/59424.html