嗯,我知道你们此时心里想的是什么:“上次为什么这么短?” “是不是存心搞我们?” 呃······但我的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发布状态)
下集预告
下次,该加上多行了!还有,一种新的僵尸(原创)正蠢蠢欲动······欢迎继续关注!