资讯专栏INFORMATION COLUMN

从0开始用python写一个命令行小游戏(四)

graf / 950人阅读

摘要:讲点搞笑的,最近在开发时,发现最令程序猿头疼的一点就是没有语句。但自动的僵尸呢哎,别急,那是后话下集预告下次,我要把游戏变得全自动具体工作令僵尸自动出现,和让用户用命令控制游戏这些工作完成后,就可以发布了欢迎继续关注

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

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

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

从0开始用python写一个命令行小游戏(一)

从0开始用python写一个命令行小游戏(二)

从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了!!!欢迎继续关注!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42131.html

相关文章

  • 0开始python一个命令游戏(六)

    摘要:嗯,今天我们的从开始用写一个命令行小游戏系列总算走到了我发布的时候。玩过我的正式版的话,你会发现现在的游戏还和正式版差别很大。好,现在就来顺便补充一下,上次方法后追加僵尸被打败是完成了好好庆祝一下 嗯,今天我们的从0开始用python写一个命令行小游戏系列总算走到了我发布v1.0 beta 1的时候。玩过我的1.0正式版的话,你会发现现在的游戏还和正式版差别很大。不管怎么样,现在就开始...

    channg 评论0 收藏0
  • 0开始python一个命令游戏(五)

    摘要:今天我时间有点紧张,所以不说废话了,直接进入正题。好现在,游戏可以自动产生僵尸了。然后呢用户可控的植物真正的植物大战僵尸游戏可以让玩家用鼠标控制游戏。由于这是命令行游戏,所以我们得用命令控制。 今天我时间有点紧张,所以不说废话了,直接进入正题。前作链接: 从0开始用python写一个命令行小游戏(一) 从0开始用python写一个命令行小游戏(二) 从0开始用python写一个命令行...

    skinner 评论0 收藏0
  • 0开始python一个命令游戏(十)

    摘要:前几天出去旅游了,所以没能更新文章,但转眼间,从开始用写一个命令行小游戏系列已经更新到了第十篇。闲话少说,今天我们要开始重构了但第一件事还是上篇的链接从开始用写一个命令行小游戏九。所以,我们需要一个标志变量,以标志游戏的结束。 前几天出去旅游了,所以没能更新文章,但转眼间,从0开始用python写一个命令行小游戏系列已经更新到了第十篇。闲话少说,今天我们要开始重构了!但第一件事还是上篇...

    OnlyLing 评论0 收藏0
  • 0开始python一个命令游戏(三)

    摘要:今天就开始由于整个游戏会有自己的一些属性和行为,所以我决定把它编写在类里。初始化游戏定义自己的属性先定义这些。我计划使用格式,以第几步出现作为键,以出现的僵尸类型以后可能会出现不同类型的僵尸和是否在它被消灭后结束游戏作为值。 Hey, everyone! 文章迟到了一天,但我今天心情很好,因为有两个好消息,你们想先听哪个?哎,算了,反正都是好消息,一起听吧。 本游戏的v1.1 bet...

    Tony_Zby 评论0 收藏0
  • 0开始python一个命令游戏(八)

    摘要:这项乱入的修改就是修改目录结构,为多关卡作准备上篇链接从开始用写一个命令行小游戏七多关卡目录结构我计划把目录结构改成这样关卡文件,是关卡用完后的默认配置其中是目前的关卡数,为表示关卡已经用完,使用默认关卡。 今天,我突然想起了另一项修改,所以原计划的多行+新僵尸就改到第九篇再介绍。这项乱入的修改就是:修改目录结构,为多关卡作准备!上篇链接:从0开始用python写一个命令行小游戏(七)...

    MorePainMoreGain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<