Как сделать, чтобы при неправильном ответе, игрока переносило обратно к вопросу

Flogsten

Новичок
Пользователь
Окт 13, 2020
5
0
1
1-Mac os High Siera
2-Python 3.7.6
3-Код также залил на pastebin- https://pastebin.com/HhnMH2B8
Здравстуйте. Я недавно начал изучать python. Узнав определенное кол-во информации, решил сделать своё первое приложение, точнее игру. (Знаю, что python, не для геймдева, просто хочу применить на практике полученные знания). Это небольшой кусочек, а точнее боёвка.
1 вопрос-Как сделать, чтобы при неправильном ответе, игрока переносило обратно к вопросу
2 вопрос-как сделать чтобы, когда здоровье персонажа достигло 0 игра закрывалась
3 вопрос- как сделать чтобы, код проверял достигло ли здоровье врага 0
Я понимаю как это провернуть с переменной, а вот как с циклом не очень.
Заранее извините, если задал слишком тупой вопрос

Python:
import time
stats = [["энергия",6],["здоровье", 10]]#Статистика персонажа
statsM = [["здоровье", 7]]#Статистика врага
 
print("Ваша статистика")
print (stats)
print("Стастика врага")
print (statsM)
time.sleep(6)
attack=input("Какое количество ударов нанести?:")
if attack<"1":
    print("Вы вступили в бой, необходимо нанести удары")
    attack=input("Какое количество ударов нанести?:")
if attack=="1":
    stats[0][1] -= 1#вычитаем одну энергию
    statsM[0][1] -= 1#вычитаем одно здоровье у врага
if attack=="2":
    stats[0][1] -= 2
    statsM[0][1] -= 2
if attack=="3":
    stats[0][1] -= 3
    statsM[0][1] -= 3
if attack=="4":
    stats[0][1] -= 4
    statsM[0][1] -= 4
if attack=="5":
    stats[0][1] -= 5
    statsM[0][1] -= 5
if attack=="6":
    stats[0][1] -= 6
    statsM[0][1] -= 6
if attack>"6":
    print("У вас не хватает энергии")
print("Ваша статистика")
print (stats)
print("Стастика врага")
print (statsM)
time.sleep(4)
print("Ход врага")
time.sleep(2)
print("...")
defense=input("Враг сейчас нанесет вам 1 урон.1)Уклониться (-1 энергия); 2) Принять удар (0 энергии):") # уклонения тратят столько энергии, сколько урона наносит враг
if defense=="1":
    print("Вы уклонились от атаки ")
    stats[0][1] -= 1
    print("Ваша статистика")
    print (stats)
    print("Стастика врага")
    print (statsM)
if defense=="2":
    print("Вы получили 1 урон ")
    print("Ваша статистика")
    print (stats)
    print("Стастика врага")
    print (statsM)
 
Последнее редактирование:

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
циклом.

правильно - обрываете цикл и делаете свои дела
неправильно - на следующую итерацию
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 611
467
83
через цикл while
1-Mac os High Siera
2-Python 3.7.6
3-Код также залил на pastebin- https://pastebin.com/HhnMH2B8
Здравстуйте. Я недавно начал изучать python. Узнав определенное кол-во информации, решил сделать своё первое приложение, точнее игру. (Знаю, что python, не для геймдева, просто хочу применить на практике полученные знания). Это небольшой кусочек, а точнее боёвка.
1 вопрос-Как сделать, чтобы при неправильном ответе, игрока переносило обратно к вопросу
2 вопрос-как сделать чтобы, когда здоровье персонажа достигло 0 игра закрывалась
3 вопрос- как сделать чтобы, код проверял достигло ли здоровье врага 0
Я понимаю как это провернуть с переменной, а вот как с циклом не очень.
Заранее извините, если задал слишком тупой вопрос

Python:
import time
stats = [["энергия",6],["здоровье", 10]]#Статистика персонажа
statsM = [["здоровье", 7]]#Статистика врага

print("Ваша статистика")
print (stats)
print("Стастика врага")
print (statsM)
time.sleep(6)
attack=input("Какое количество ударов нанести?:")
if attack<"1":
    print("Вы вступили в бой, необходимо нанести удары")
    attack=input("Какое количество ударов нанести?:")
if attack=="1":
    stats[0][1] -= 1#вычитаем одну энергию
    statsM[0][1] -= 1#вычитаем одно здоровье у врага
if attack=="2":
    stats[0][1] -= 2
    statsM[0][1] -= 2
if attack=="3":
    stats[0][1] -= 3
    statsM[0][1] -= 3
if attack=="4":
    stats[0][1] -= 4
    statsM[0][1] -= 4
if attack=="5":
    stats[0][1] -= 5
    statsM[0][1] -= 5
if attack=="6":
    stats[0][1] -= 6
    statsM[0][1] -= 6
if attack>"6":
    print("У вас не хватает энергии")
print("Ваша статистика")
print (stats)
print("Стастика врага")
print (statsM)
time.sleep(4)
print("Ход врага")
time.sleep(2)
print("...")
defense=input("Враг сейчас нанесет вам 1 урон.1)Уклониться (-1 энергия); 2) Принять удар (0 энергии):") # уклонения тратят столько энергии, сколько урона наносит враг
if defense=="1":
    print("Вы уклонились от атаки ")
    stats[0][1] -= 1
    print("Ваша статистика")
    print (stats)
    print("Стастика врага")
    print (statsM)
if defense=="2":
    print("Вы получили 1 урон ")
    print("Ваша статистика")
    print (stats)
    print("Стастика врага")
    print (statsM)
как то так
Python:
import time

stats = [["энергия", 6], ["здоровье", 10]]  # Статистика персонажа
statsM = [["здоровье", 7]]  # Статистика врага

print("Ваша статистика")
print(stats)
print("Стастика врага")
print(statsM)
time.sleep(6)

while statsM[0][1] != 0:

    while True:
        attack = input("Какое количество ударов нанести?:")
        if attack < "1":
            print("Вы вступили в бой, необходимо нанести удары")
            continue
        break

    if attack == "1":
        stats[0][1] -= 1  # вычитаем одну энергию
        statsM[0][1] -= 1  # вычитаем одно здоровье у врага
    if attack == "2":
        stats[0][1] -= 2
        statsM[0][1] -= 2
    if attack == "3":
        stats[0][1] -= 3
        statsM[0][1] -= 3
    if attack == "4":
        stats[0][1] -= 4
        statsM[0][1] -= 4
    if attack == "5":
        stats[0][1] -= 5
        statsM[0][1] -= 5
    if attack == "6":
        stats[0][1] -= 6
        statsM[0][1] -= 6
    if attack > "6":
        print("У вас не хватает энергии")
    print("Ваша статистика")
    print(stats)
    print("Стастика врага")
    print(statsM)

    if statsM[0][1] == 0:
        break

    time.sleep(4)
    print("Ход врага")
    time.sleep(2)
    print("...")

    while True:
        defense = input(
            "Враг сейчас нанесет вам 1 урон.1)Уклониться (-1 энергия); 2) Принять удар (0 энергии):")  # уклонения тратят столько энергии, сколько урона наносит враг
        if defense == '1' or defense == '2':
            break
        else:
            print('Ход врага, выберите действие (1 или 2)')
            continue

    if defense == "1":
        print("Вы уклонились от атаки ")
        stats[0][1] -= 1
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
    if defense == "2":
        print("Вы получили 1 урон ")
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
 

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
через цикл while

как то так
Python:
import time

stats = [["энергия", 6], ["здоровье", 10]]  # Статистика персонажа
statsM = [["здоровье", 7]]  # Статистика врага

print("Ваша статистика")
print(stats)
print("Стастика врага")
print(statsM)
time.sleep(6)

while statsM[0][1] != 0:

    while True:
        attack = input("Какое количество ударов нанести?:")
        if attack < "1":
            print("Вы вступили в бой, необходимо нанести удары")
            continue
        break

    if attack == "1":
        stats[0][1] -= 1  # вычитаем одну энергию
        statsM[0][1] -= 1  # вычитаем одно здоровье у врага
    if attack == "2":
        stats[0][1] -= 2
        statsM[0][1] -= 2
    if attack == "3":
        stats[0][1] -= 3
        statsM[0][1] -= 3
    if attack == "4":
        stats[0][1] -= 4
        statsM[0][1] -= 4
    if attack == "5":
        stats[0][1] -= 5
        statsM[0][1] -= 5
    if attack == "6":
        stats[0][1] -= 6
        statsM[0][1] -= 6
    if attack > "6":
        print("У вас не хватает энергии")
    print("Ваша статистика")
    print(stats)
    print("Стастика врага")
    print(statsM)

    if statsM[0][1] == 0:
        break

    time.sleep(4)
    print("Ход врага")
    time.sleep(2)
    print("...")

    while True:
        defense = input(
            "Враг сейчас нанесет вам 1 урон.1)Уклониться (-1 энергия); 2) Принять удар (0 энергии):")  # уклонения тратят столько энергии, сколько урона наносит враг
        if defense == '1' or defense == '2':
            break
        else:
            print('Ход врага, выберите действие (1 или 2)')
            continue

    if defense == "1":
        print("Вы уклонились от атаки ")
        stats[0][1] -= 1
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
    if defense == "2":
        print("Вы получили 1 урон ")
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
пусть сам делает, не надо за него, лучше подсказать
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 611
467
83
пусть сам делает, не надо за него, лучше подсказать
прошу прощения
 

Flogsten

Новичок
Пользователь
Окт 13, 2020
5
0
1
через цикл while

как то так
Python:
import time

stats = [["энергия", 6], ["здоровье", 10]]  # Статистика персонажа
statsM = [["здоровье", 7]]  # Статистика врага

print("Ваша статистика")
print(stats)
print("Стастика врага")
print(statsM)
time.sleep(6)

while statsM[0][1] != 0:

    while True:
        attack = input("Какое количество ударов нанести?:")
        if attack < "1":
            print("Вы вступили в бой, необходимо нанести удары")
            continue
        break

    if attack == "1":
        stats[0][1] -= 1  # вычитаем одну энергию
        statsM[0][1] -= 1  # вычитаем одно здоровье у врага
    if attack == "2":
        stats[0][1] -= 2
        statsM[0][1] -= 2
    if attack == "3":
        stats[0][1] -= 3
        statsM[0][1] -= 3
    if attack == "4":
        stats[0][1] -= 4
        statsM[0][1] -= 4
    if attack == "5":
        stats[0][1] -= 5
        statsM[0][1] -= 5
    if attack == "6":
        stats[0][1] -= 6
        statsM[0][1] -= 6
    if attack > "6":
        print("У вас не хватает энергии")
    print("Ваша статистика")
    print(stats)
    print("Стастика врага")
    print(statsM)

    if statsM[0][1] == 0:
        break

    time.sleep(4)
    print("Ход врага")
    time.sleep(2)
    print("...")

    while True:
        defense = input(
            "Враг сейчас нанесет вам 1 урон.1)Уклониться (-1 энергия); 2) Принять удар (0 энергии):")  # уклонения тратят столько энергии, сколько урона наносит враг
        if defense == '1' or defense == '2':
            break
        else:
            print('Ход врага, выберите действие (1 или 2)')
            continue

    if defense == "1":
        print("Вы уклонились от атаки ")
        stats[0][1] -= 1
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
    if defense == "2":
        print("Вы получили 1 урон ")
        print("Ваша статистика")
        print(stats)
        print("Стастика врага")
        print(statsM)
Спасибо большое
 

Flogsten

Новичок
Пользователь
Окт 13, 2020
5
0
1
пусть сам делает, не надо за него, лучше подсказать
Хорошо не буду списывать)
 

Форум IT Специалистов