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

嗯,我知道你们此时心里想的是什么:“上次为什么这么短?” “是不是存心搞我们?” 呃······但我的v1.0 beta 1就是这样发布的!!!但不管上次多短,我们的编程还是要继续下去。今天我们的工作:增加状态显示及彩色!
关于前作链接:由于文章太多,我决定只在每篇文章中显示上篇链接。这里就是:从0开始用python写一个命令行小游戏(六)

状态显示

我的v1.0 beta 1发布后,有测试用户说各种内部进行的操作看不出来,我就想到了这个方法:对于每个操作,都输出一个状态,就一目了然了。我的解决方法如下:

class Sunflower(Plant):
    indicating_char = 's'
    
    def __init__(self, pos):
        super().__init__(pos, 50)
        print("Sunflower planted at %d, costing 50 sunlight."
              % self.pos)
    
    def step(self):
        # 其余部分同前
        print("Sunflower at %d produced 25 sunlight."
              % self.pos)

别的类也类似。这里简单的说一下"%d""%s"等的作用。它们都是用来匹配一些动态内容的,只不过匹配的内容类型不同。所有值通过%操作符匹配。%d匹配int类型,%s匹配str类型,等等。有多个匹配值时,%后内容加括号(相当于使用元组)。例:

name = 'peter'
age = 20
print("%s is %d years old." % (name.title(), age))
# 输出:Peter is 20 years old.

这种将不同类型的动态值嵌入字符串的方法在嵌入int类型时十分高效,再也不用"..." + str(val) + "..."这样进行嵌入了。

好了,回到正题。

彩色显示

我的百度结果:\033[显示模式;颜色;背景m字符\033[0m
显示模式:0=正常,1=高亮(在Mac下为粗体)
颜色:30=正常,31=红,32=绿,33=黄,34=蓝,35=紫,36=青,37=白
背景:颜色+10
于是,一个color()函数诞生:

def color(font, text):
    return "\033[1;%dm%s\033[0m" % (font, text)

然后把需要加颜色的字符串变成:

color(颜色数字, "字符")

大功告成!(v1.0 beta 3发布状态)

下集预告

下次,该加上多行了!还有,一种新的僵尸(原创)正蠢蠢欲动······欢迎继续关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值