笨方法学python3: ex43中文魔改

该博客将Learn Python3 The Hard Way的第43个练习改编为中文版,并降低了难度。文中介绍了一个简单的文字冒险游戏,它利用有限状态机的概念,通过Engine和Map类来实现场景之间的转换。Map类将场景名称映射为类名,Engine则调用这些类的方法,实现游戏的进程。
摘要由CSDN通过智能技术生成

181007:把 Learn Python3 The Hard Way 一书的第43道练习题改成中文版。此外,刻意调低了难度。(话说中文书名翻成《用心学python》不可以么?)

这个游戏勉强算个“有限状态机”,核心在后面的Engine和Map两个类。后者把场景名字(字符串)转化为class名,前者在此基础上调用各class里的函数,从而实现“进入场景”的效果。

from sys import exit
from random import randint
from textwrap import dedent

class Scene(object):
    
    def enter(self):
        print("这是第一个class")
        print("Subclass it and implement enter().")
        exit(1)

class Death(Scene):
    
    quips = [
        "你死啦",
        "你妈会为你骄傲的",
        "唉,菜鸡...",
        "我的狗狗玩得更好",
        "这让我想起你爸的笑话",
    ]
    
    def enter(self):
        print(Death.quips[randint(0, len(self.quips)-1)])
        exit(1)

class CentralCorridor(Scene):

    def enter(self):
        print(dedent("""
                你的宇宙飞船被外星人入侵了。聪明的你立马想出了对策——先取出炸弹,定好时,自己再乘救生船逃出去。\n
                正想着,你便从中央走廊出发,准备去武器库。可是,一个黑不溜秋的外星人,被门卡住了。\n
                你会怎么办呢?\n\t
                1. 把它推走;\n\t
                2. 把它拉出来;\n\t
                3. 把它射死;\n\t
                4. 讲一个笑话。
                """))

        action = input("[请输入数字]> ")

        if action 
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值