简单Python游戏(卡在类上)
我真的很喜欢我创建的这个简单的用户输入游戏。这是一个艰苦学习python的练习。我一个多星期以来一直试图自己解决这个问题,最后屈服于寻求帮助。我认为我的代码中的问题点是Engine()类。无论如何,代码如下:简单Python游戏(卡在类上),python,function,class,oop,methods,Python,Function,Class,Oop,Methods,我真的很喜欢我创建的这个简单的用户输入游戏。这是一个艰苦学习python的练习。我一个多星期以来一直试图自己解决这个问题,最后屈服于寻求帮助。我认为我的代码中的问题点是Engine()类。无论如何,代码如下: from sys import exit from random import randint class Island(object): def enter(self): pass class Engine(object): def __init__
from sys import exit
from random import randint
class Island(object):
def enter(self):
pass
class Engine(object):
def __init__(self, island_map):
self.island_map = island_map
def play(self):
current_island = island_map.opening_island()
last_island = self.island_map.next_island('Tropical')
while current_island != last_island:
next_island_name = current_island.enter()
current_island = self.island_map.next_island(next_island_name)
current_island.enter()
class Loser(Island):
snippets = ["Welcome to loser Island",
"Can't win them all",
"There's always next time"]
def enter(self):
print "Game over"
print Loser.snippets[randint(0,len(self.snippets)-1)]
exit(1)
class Jungle(Island):
def enter(self):
print "Welcome to the Jungle!"
print "You must fight the monkey to pass!"
print "Choose your weapon..."
weapons = ['stick', 'fly swatter', 'banana']
print weapons
fighter_weapon = raw_input("Choose from a a weapon above...")
if fighter_weapon == 'stick':
print "Stick can't beat a monkey!"
print "Monkey wins"
return 'Loser'
elif fighter_weapon == 'fly swatter':
print "The monkey steals your fly swatter"
print "Monkey wins"
return 'Loser'
elif fighter_weapon == 'banana':
print "The monkey is hypnotized by the banana"
print "You continue to the next island..."
return 'Frozen'
else:
print "What? Doesn't make sense"
return 'Jungle'
class Frozen(Island):
#add green, blue circle, and black diamond
def enter(self):
print "This is snow land"
print "Here's your snowboard, choose your path"
print "([[[[[[[[[)"
runs = ["green", "blue", "black"]
print runs
run_choice = raw_input(" >")
if run_choice == 'green':
print "Easy way out?"
print "No good"
print "Wrong"
return 'Loser'
elif run_choice == 'blue':
print "okay, at least not the easiest way"
print "You have some guts, I'll let you choose one more time"
return 'Frozen'
elif run_choice == 'black':
print "I like your style"
print "Going for the hard choice shows courage"
print "Continue to the next island"
return 'Tropical'
else:
print "Say whaaat?!"
return 'Frozen'
class Tropical(Island):
def enter(self):
print "You made it to the final Island!"
print "Look here's the treasure chest!"
print " All that's left to do is guess the code on the chest"
print "Be smart, you only get five guesses..."
t_key = "1234"
chest_guess = raw_input("What do you think it is?")
guesses = 0
while chest_guess != t_key and guesses < 4:
print "Guess again"
guesses += 1
chest_guess = raw_input(" ?")
if chest_guess == t_key:
print "You guessed right!"
print "You won"
else:
print "Sorry"
return 'Loser'
class Map(object):
islands = {
'Loser': Loser(),
'Jungle': Jungle(),
'Frozen': Frozen(),
'Tropical': Tropical(),
}
def __init__(self, start_island):
self.start_island = start_island
def next_island(self, island):
val = Map.islands.get(island)
return val
def opening_island(self):
return self.next_island(self.start_island)
mj_map = Map('Jungle')
mj_game = Engine(mj_map)
mj_game.play()
从系统导入退出
从随机导入randint
类岛(对象):
def输入(自我):
通过
类引擎(对象):
定义初始(自我,岛屿地图):
self.island\u map=island\u map
def播放(自我):
当前岛=岛地图。打开岛()
last_island=self.island_map.next_island('热带')
而当前的_岛!=最后一站:
下一个岛屿名称=当前岛屿。输入()
当前岛=自。岛地图。下一个岛(下一个岛名称)
当前_岛。输入()
班级(港岛):
snippets=[“欢迎来到失败者岛”,
“不可能全部赢”,
“总有下一次”]
def输入(自我):
打印“游戏结束”
打印.snippets[randint(0,len(self.snippets)-1]
出口(1)
丛林类(岛屿):
def输入(自我):
打印“欢迎来到丛林!”
打印“你必须与猴子搏斗才能通过!”
打印“选择你的武器…”
武器=[“棍子”、“苍蝇拍”、“香蕉”]
印刷武器
战斗机武器=原始输入(“从上面的武器中选择…”)
如果战斗机的武器==‘棍子’:
打印“棍子打不过猴子!”
打印“猴子赢了”
返回“失败者”
elif fighter_武器==“苍蝇拍”:
打印“猴子偷了你的苍蝇拍”
打印“猴子赢了”
返回“失败者”
elif fighter_武器==“香蕉”:
打印“猴子被香蕉催眠”
打印“您继续前往下一个岛屿…”
返回“冻结”
其他:
打印“什么?没有意义”
返回“丛林”
冰冻等级(岛屿):
#添加绿色、蓝色圆圈和黑色菱形
def输入(自我):
打印“这是雪地”
打印“这是你的滑雪板,选择你的路径”
打印“([
运行次数=[“绿色”、“蓝色”、“黑色”]
打印运行
运行选项=原始输入(“>”)
如果run_choice==“绿色”:
打印“简易解决方案?”
打印“不好”
打印“错误”
返回“失败者”
elif run_choice==“蓝色”:
打印“好吧,至少不是最简单的方式”
打印“你有胆量,我再让你选择一次”
返回“冻结”
elif run_choice==“黑色”:
打印“我喜欢你的风格”
打印“做出艰难选择显示勇气”
打印“继续到下一个岛”
返回“热带”
其他:
打印“说什么?!”
返回“冻结”
热带(岛屿)级:
def输入(自我):
打印“你到达了最后一个岛!”
打印“看,这是宝箱!”
打印“剩下要做的就是猜胸前的密码”
打印“聪明点,你只能猜五次…”
t_key=“1234”
胸部猜=原始输入(“你认为它是什么?”)
猜测=0
而胸部猜数!=t键和猜数<4:
打印“再次猜测”
猜测+=1
胸部猜测=原始输入(“?”)
如果cost_guess==t_key:
打印“你猜对了!”
打印“你赢了”
其他:
打印“对不起”
返回“失败者”
类映射(对象):
岛屿={
“失败者”:失败者(),
“丛林”:丛林(),
“冻结”:冻结(),
“热带”:热带(),
}
def _u初始(自我,启动岛):
self.start\u岛=start\u岛
def下一个_岛(自身,岛):
val=Map.islands.get(岛)
返回值
def打开_岛(自):
返回self.next_岛(self.start_岛)
mj_地图=地图(“丛林”)
mj_游戏=引擎(mj_地图)
mj_游戏
现在我遇到了一个错误,说“island_map”没有在我的引擎类中定义。我不明白,因为对我来说它看起来像是定义的。任何输入都将不胜感激
def play(self):
current_island = island_map.opening_island()
需要改成
def play(self):
current_island = self.island_map.opening_island()
因为它是那个例子的一部分
需要改成
def play(self):
current_island = self.island_map.opening_island()
因为它是那个例子的一部分
需要改成
def play(self):
current_island = self.island_map.opening_island()
因为它是那个例子的一部分
需要改成
def play(self):
current_island = self.island_map.opening_island()
由于它是该实例的一部分请提出您的问题,并发布您收到的错误的全文。您忘记在Engine.play()方法的这一行中添加
self
:当前岛=岛地图。打开岛()应该是self.current_island请回答您的问题,并发布您收到的错误的全文。您忘记在引擎的这一行中添加self
。play()方法:current_island=island_地图。打开_island()
应该是self.current_island请回答您的问题,并发布您收到的错误的全文。您忘记在引擎的这一行中添加self
。play()方法:current_island=island_地图。打开_island()
应该是self.current_island请回答您的问题,并发布您收到的错误的全文。您忘记在引擎的这一行中添加self
。play()方法:current_island=island_地图。打开_island()
应该是self。current_island
谢谢各位!我现在可以用了。太令人沮丧了,这是我鼻子底下的一个简单修复!谢谢各位!我现在可以用了。太令人沮丧了,这是我鼻子底下的一个简单修复!谢谢各位!我现在可以用了。太令人沮丧了,这是我鼻子底下的一个简单修复谢谢大家!我现在要开始工作了。所以