如何利用python制作一个猜字游戏

Admin 2022-09-16 群英技术资讯 303 次浏览

这篇文章将为大家详细讲解有关“如何利用python制作一个猜字游戏”的知识,下文有详细的介绍,小编觉得挺实用的,对大家学习或工作或许有帮助,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

   


目录
  • 前言
  • 一、游戏规则
  • 二、实现过程
    • 1、基本框架
    • 2、完整案例
  •  三、总结

    前言

    一、游戏规则

    请你使用类 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()

    效果图:

     三、总结


    以上就是关于“如何利用python制作一个猜字游戏”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
    群英智防CDN,智能加速解决方案
    标签: python

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    猜你喜欢

    成为群英会员,开启智能安全云计算之旅

    立即注册
    专业资深工程师驻守
    7X24小时快速响应
    一站式无忧技术支持
    免费备案服务
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    在线客服
    微信公众号
    返回顶部
    返回顶部 返回顶部
    在线客服
    在线客服