嗯,还是我,我又回来了——以后文章就两天一篇吧。讲点搞笑的,最近在开发v1.1 beta 3时,发现Python最令程序猿头疼的一点就是没有switch/case语句。要匹配值,就得不停地if...elif...实在头疼。后来我想到了一种方法:字典!于是···

config = {value1: func1, value2: func2...}
config[xxx]()

哈哈,脑洞清奇吧?好,进入正题!首先,我的前作链接:

  1. 从0开始用python写一个命令行小游戏(一)
  2. 从0开始用python写一个命令行小游戏(二)
  3. 从0开始用python写一个命令行小游戏(三)

今天要干什么来着?对了,用户界面!

用户界面:第二步

上次我们定义的Game类是这样的:

import game_obj as o

class Game:
    def __init__(self):
        o.sunlight = 50
        o.board = [0] * 10
        self.sunlight = o.sunlight
        self.board = o.board
        import json
        with open("level.json") as fr:
            self.steps = json.load(fr)

但既然是用户界面,那总得输出点东西吧!好,这就定义过一步的方法:

def step(self):
    print("Sunlight: %d." % self.sunlight)
    print("Current state:")
    for obj in self.board:
        if isinstance(obj, o.GameObject):
            obj.step()
        print(obj, end='  ')

试一试:

In [1]: from game import Game

In [2]: Game().step()
Sunlight: 50.
Current state:
0  0  0  0  0  0  0  0  0  0  

In [3]: g = Game()

In [4]: import game_obj as o

In [5]: o.Sunflower(0)

In [6]: g.step()
Sunlight: 25.
Current state:
s  0  0  0  0  0  0  0  0  0  

好,可以用“半自动”方式玩游戏了。但自动的僵尸呢?哎,别急,那是后话······

下集预告

下次,我要把游戏变得全自动!具体工作:令僵尸自动出现,和让用户用命令控制游戏!这些工作完成后,就可以发布v1.0 beta 1了!!!欢迎继续关注!


leosz
30 声望6 粉丝

喜欢Python的业余程序猿