從0開始用python寫乙個命令列小遊戲(一)
從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=' ')
這個類離全自動還差這些元素:
下面就先解決前兩個!
之前,我們已經有了配置檔案。我們現在要做的就是每步都看看這一步有沒有在配置檔案**現。
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
self.step_num = 0
import json
with open("level.json") as fr:
self.steps = json.load(fr)
def step(self):
self.step_num += 1
print("sunlight: %d." % self.sunlight)
print("current state:")
for obj in self.board:
if isinstance(obj, o.gameobject):
obj.step()
print(obj, end=' ')
if str(self.step_num) in self.steps.keys():
action = self.steps[str(self.step_num)]
if action == "zombie":
o.zombie(9)
elif action == "exit zombie":
o.zombie(9, die_to_exit=true)
好!現在,遊戲可以自動產生殭屍了。然後呢?
真正的植物大戰殭屍遊戲可以讓玩家用滑鼠控制遊戲。由於這是命令列遊戲,所以我們得用命令控制。我突然發現,居然還得編寫處理命令的方法!
def process_command(self, commands):
for command in commands:
command_list = command.split()
if command_list[0] == 'plant' and len(command_list) == 3:
plant_type = command_list[1]
try:
pos = int(command_list[2])
except valueerror:
print("invalid command.")
else:
if plant_type == 's':
o.sunflower(pos)
elif plant_type == 'p':
o.peashooter(pos)
else:
print("invalid command.")
好,用用它吧(當然,是在step()
裡面)!
def step(self):
pass # 同前
first_command = input("next step: ")
if first_command:
commands = [first_command]
next_command = 'some content'
while next_command:
next_command = input(" -: ")
else:
commands =
self.process_command(commands)
後來我又知道,可以把不依賴例項的方法宣告為@staticmethod
,並把self
引數去掉,於是把process_command
改為:
@staticmethod
def process_command(commands):
pass # 同前
好了!至此,我們的三個需求只剩乙個了,而這乙個將會在第三步的後半步解決!歡迎繼續關注! 從0開始用python寫乙個命令列小遊戲(11)
首先,我要強調一點 所有需要變數匹配的地方 類似別的語言中的switch 都可以用配置檔案 主要是字典 比如,我的遊戲裡面種植植物時匹配植物名稱。既然這個配置檔案需要與植物的類互動,所以要使用python格式,而非json或別的語言。試試看 config.py import game obj as ...
從0開始用python寫乙個命令列小遊戲(六)
從0開始用python寫乙個命令列小遊戲 一 從0開始用python寫乙個命令列小遊戲 二 從0開始用python寫乙個命令列小遊戲 三 從0開始用python寫乙個命令列小遊戲 四 從0開始用python寫乙個命令列小遊戲 五 上次,我們還缺乙個功能 自動呼叫step 的方法。好,現在就來!順便補...
從0開始用python寫乙個命令列小遊戲(三)
hey,everyone 文章遲到了一天,但我今天心情很好,因為有兩個好訊息,你們想先聽哪個?哎,算了,反正都是好訊息,一起聽吧。從0開始用python寫乙個命令列小遊戲 一 從0開始用python寫乙個命令列小遊戲 二 好,懷著良好的心 zi wo 情 gan jue 進入正題!殭屍的行為在基礎類...