Ваша остающаяся проблема привыкает, когда вы вызываете функцию, и когда вы ссылаетесь на функцию как на объект .
вы не получили никаких ошибок при импорте textbasedadventures
(который я сократил до tba
, чтобы избежать опечаток), я предполагаю, что вы обработали это правильно: файл с именем textbasedadventures.py
находится в локальном каталоге.
Мне пришлось удалить строку input(pause)
, поскольку вы не определили pause
, и она там для оболочки, отличной от той, которую я использую.Мне также пришлось удалить title()
, поскольку его больше нет в вашем коде.
Когда вы передаете функцию основной игры основной программы, вы должны передать ее как объект функции .Вы сделали это:
t.gameMenu(gameMain(),"please work")
Это вызывает gameMain (из-за скобок), получает возвращаемое значение и передает , что , в t.gameMenu
.Поскольку не никакого такого возвращаемого значения, ваше удаленное меню получает только значение None
.
. Просто снимите скобки:
t.gameMenu(gameMain,"please work")
Это займетвся функция gameMain
(ну, ссылка на нее) и передает ее вашей удаленной функции, где ...
Вместо вызова переданного модуля game
, вы просто перечислили его значение.Питон думает: «Хорошо, круто, я должен оценить это выражение. Ну и дела, ссылка на объект - это легко. Значение - это просто сама ссылка. Я даже не должен делать что-либос ним. Готово. "
Простое помещение значения в строку является допустимым Python, но скучно: значение отображается, если вы находитесь в интерактивной оболочке, но в противном случае игнорируется.Следовательно, вы никогда не получали никакого ответа от этой строки.
Вместо этого сейчас вы называете это: здесь вы ставите скобки, которые вы сняли на другом конце вызова:
game()
Я внес эти изменения, и вот результат:
enter G to start game
Choice: g
You are awoken by the blaring of your alarm clock.How did you sleep last night?
1 Very well
2 Well
3 Not good
4 atrociously
You slept