Member 13703676 Ответов: 2

Что не так с моим кодом? Я не могу понять, почему он не печатается?


(Это в Python!)
(Я также не знаю, почему он не отступает в предварительном просмотре)
(все, что должно быть отступом, является отступом)

Чтобы действительно получить ошибку, вам нужно выполнить следующие действия, когда она попросит вас ввести текст.
-Введите имя вашего героя
-Введите любое оружие, которое вы хотите
-Введите "Остаться"
-Введите "Да".
-Введите "Атака"

А потом вы получаете ошибку, и я не понимаю, почему...
Вот этот код:
hero_hp = 50
gold = 0

bow_stats = "Bow Stats: Attack - 7   Defense - 2   Range - 5"
bow_att = 7
bow_def = 2
bow_ran = 5

sword_stats = "Sword Stats: Attack - 10   Defense - 2   Range - 1"
sword_att = 10
sword_def = 2
sword_ran = 1

spear_stats = "Spear Stats: Attack - 6   Defense - 4   Range - 2"
spear_att = 6
spear_def = 4
spear_ran = 2

monster_1_hp = 10
monster_1_att = 7
monster_1_def = 0
monster_1_ran = 1

print "WARNING!"
print "THIS GAME IS CASE SENSITIVE WHEN ANSWERING!"
print "ALWAYS ANSWER WITH THE FIRST LETTER CAPITAL!"
print "THIS IS STILL A WORK IN PROGRESS!!!"
print ""
print ""
print ""
hero_name = input("Enter Your Hero's Name: ")
print ""
print "Hello Sir " + hero_name + ", my name is Grima."
print "I will be your guide on this journey!"
print "But first, you must choose your weapon!"
print "What will it be?" 
print "If you wish to know the weapons stats, type 'Info'"
print "Bow, Sword, Spear, or Info?"
hero_weapon = input("What do you choose: ")

if hero_weapon == "Info":
    print bow_stats
    print sword_stats
    print spear_stats
    hero_weapon = input("Bow, Sword, or Spear: ")

if hero_weapon == "Bow":
    print "You have chosen the Bow!"
    hero_att = bow_att
    hero_def = bow_def
    hero_ran = bow_ran

if hero_weapon == "Sword":
    print "You have chosen the Sword!"
    hero_att = sword_att
    hero_def = sword_def
    hero_ran = sword_ran

if hero_weapon == "Spear":
    print "You have chosen the Spear!"
    hero_att = spear_att
    hero_def = spear_def
    hero_ran = spear_ran

print ""
print "You arrive at the door to the dungeon!"
choice_1 = input("Do you 'Leave' or 'Stay'?")

if choice_1 == "Leave":
    print ""
    print "You decide to leave and go live a plain old..."
    print "boring life in the city."
    print "You live to see the dragon that was..."
    print "at the end of the dungeon slay everyone..."
    print "and conquer the world!!!"
    print ""
    print "THE BAD ENDING"
    
if choice_1 == "Stay":
    print "You decide to stay!"
    print "When you open the door to the dungeon..."
    print "You see a descending staircase down into the dungeon..."

if choice_1 == "Stay":  
    decision = input("Do you still wish to continue?(Yes/No) ")
    print ""

if decision == "No":
    print ""
    print "You decide to leave and go live a plain old..."
    print "boring life in the city."
    print "You live to see the dragon that was..."
    print "at the end of the dungeon slay everyone..."
    print "and conquer the world!!!"
    print ""
    print "THE BAD ENDING"
    
if decision == "Yes":
    print "You decide to continue on with your journey!"
    print "You descend into the first room..."
    print "But there is a monster blocking your path!"
    print "Do you 'Attack' or 'Defend'?"
    ad = input("Attack or Defend? ")
    
if ad == "Attack":
    print "You decide to attack the monster!"
    print "You do " + int(hero_att) + " with your " + hero_weapon + "!"
    ca = hero_att - monster_1_def
    monster_1_hp = monster_1_hp - ca
    print "Monster's Current Health: " + monster_1_hp
    if monster_1_hp > 0:
        print "The monster attacks you!"
        da = monster_1_att - hero_def
        hero_hp = hero_hp - da
        print hero_name + "'s Current Health: " + hero_hp + "!"
        jump(101)
    else:
        print "Congratulations!!!"
        print "You've slayed your very first monster!"
        print "You received 500 gold!"
        gold = gold + 500
        print ""
        print "Grima: You have done very well for now..."
        print "But can you beat the next one?"
        print ""
        print ""
        print ""
        print "END!!! (for now...)"


Что я уже пробовал:

Я пробовал удалять и добавлять скобки и многое другое, но я просто не понимаю, почему это не сработает...

(Это, вероятно, что-то очень простое, и я этого не вижу)

CHill60

Я отредактировал ваш вопрос, чтобы вставить теги <pre>...</pre> - Вот почему он не будет отступать в предварительном просмотре

Richard MacCutchan

Какую версию Python и какую ошибку вы видите? Кроме того, что такое jump(101) предполагалось, что так и будет?

Patrice T

- А потом ты получаешь ошибку, и я не понимаю, почему..."
а сообщение об ошибке есть ?

2 Ответов

Рейтинг:
2

OriginalGriff

Добро пожаловать в удивительный мир "это не работает"!
Поверь мне, ты будешь здесь часто бывать ... поэтому имеет смысл выяснить, как это исправить самостоятельно. И первое, что нужно сделать, это собрать информацию о том, что именно происходит.

Начните с отладчика (Google может вам в этом помочь: python debugger - поиск в Google[^]) и начните внимательно изучать свой код во время его выполнения.

Поставьте точку останова на линии

if ad == "Attack":
И запустите свой код в отладчике. Когда он достигнет его, он остановится и позволит вам взять управление на себя - вы можете посмотреть на содержимое переменной, один шаг вашего кода (который Менас запускает его по одной строке и времени и точно видит, что происходит) и многие другие действительно полезные вещи.

Продумайте в уме, что должно произойти, прежде чем вы сделаете один шаг в каждой строке, и сравните это с тем, что произошло. Это что-то другое? Если так, то почему? Это может занять несколько попыток, но вы должны быть в состоянии понять, что происходит.

Дайте ему попробовать - это важный навык, и очень весело, когда вы получите повесить его!


Рейтинг:
1

CPallini

Вы должны определенно выбрать Python версия. :-D

Цитата:
hero_name = input("введите имя вашего героя: ")
С Python 2 вышеприведенная строка не работает (вы должны использовать raw_input вместо)



также

Цитата:
печать "внимание!"
С Python 3 вышеприведенная строка не работает (вы должны поставить фигурные скобки вокруг строки).