gpt4 book ai didi

python - 艰难地学习 Python,练习 43

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:03 25 4
gpt4 key购买 nike

我目前正在研究 Zed Shaw 的 Learn Python the Hard Way。我正在努力练习练习 43,它指示我创建具有以下属性的文本游戏:

  • 使用超过 1 个文件
  • 每个“房间”一节课

到目前为止,我已经启动了两个文件,一个用于运行者,一个用于房间:

game_runner.py

from game_map import *

class Runner(object):
def __init__(self, start):
self.start = start

def play(self):
next_room = self.start

while True:
print '\n'
print '-' * 7
print next_room.__doc__
next_room.proceed()

firstroom = Chillin()

my_game = Runner(firstroom)

my_game.play()

game_map.py

from sys import exit

class Chillin(object):
"""It's 8pm on a Friday night in Madison. You're lounging on the couch with your
roommates watching Dazed and Confused. What is your first drink?
1. beer
2. whiskey
3. vodka
4. bowl
"""
def __init__(self):
self.prompt = '> '

def proceed(self):
drink = raw_input(self.prompt)

if drink == '1' or drink == 'beer':
print '\n Anytime is the right time.'
print 'You crack open the first beer and sip it down.'
room = Pregame()
return room
#rest of drinks will be written the same way


class Pregame(object):
"""It's time to really step up your pregame.
How many drinks do you take?
"""

def proceed(self):
drinks = raw_input('> ')
#and so on

我的问题是我无法让 game_runner 进入下一个房间。当我运行它时,它会无限循环第一个房间:打印 Chillin() 的文档字符串,请求输入,然后重复。

在第一节课中输入正确的答案后,如何更改我的运行者和/或 map 以返回下一节课,即 Pregame()?

最佳答案

我认为您需要做的(如果我正确地遵循了您的代码)就是更改此内容:

next_room.proceed()

为此:

next_room = next_room.proceed()

您永远不会重新分配您在 while True: 循环中使用的变量,因此您永远会得到相同的行为。

关于python - 艰难地学习 Python,练习 43,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8930399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com