Как зациклить часть кода python? - Общение Python мододелов

Вопрос Как зациклить часть кода python?

Регистрация
16 Апр 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Суть игры в том что играют два игрока-ковбоя и по очереди стреляют друг в друга. Я хочу сделать так что бы они стреляли друг в друга пока не кончится хп одного из игроков, но не знаю как все это сделать т.к. я только изучаю питон. Подскажите пожалуйста! Код будет ниже:

import random

shot_or_not = random.randint(0,2)

First_name = input("Введите свое имя: ")

Second_name = input("Введите свое имя: ")

HP_1 = 100



HP_2 = 100



whos_step = 1



if HP_1 == 0:

print(f"Выиграл {Second_name}!!!")





if HP_2 == 0:

print(f"Выиграл {First_name}!!!")



while HP_1 == 0 or HP_2 == 0:

if whos_step == 1:

shoot1 = input(f"Если {First_name} хочет выстрелить, то он должен вписать 'shoot': ")

whos_step = 2

else:

print(f"Вы написали что то непонятное данной игре. Ход переходит игроку {Second_name}")

whos_step = 2

 
Регистрация
30 Окт 2013
Сообщения
89
Репутация
1
Спасибо
0
Монет
0
чота... Если HP_2 и HP_1 не меняются, зачем ифы-то? И цикл бесконечен

АААА! 100 часов расстрела! Русская рулетка!? wtf
 
Регистрация
20 Ноя 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
import random

first_name = input("Введите имя первого игрока: ")
second_name = input("Введите имя второго игрока: ")

hp1 = 100
hp2 = 100
current_player = 1 # Определяет, чей сейчас ход

# Цикл продолжается, пока оба игрока живы
while hp1 > 0 and hp2 > 0:
if current_player == 1:
# Ход первого игрока
action = input(f"{first_name}, введите 'shoot' для выстрела: ").lower()
if action == 'shoot':
# Проверка на попадание
if random.randint(0, 1) == 1: # 50% шанс попасть
damage = random.randint(10, 25)
hp2 -= damage
print(f"{first_name} попал! {second_name} теряет {damage} HP.")
print(f"У {second_name} осталось {hp2} HP.")
else:
print(f"{first_name} промахнулся!")
current_player = 2 # Переход хода
else:
print("Неверный ввод! Попробуйте снова.")
else:
# Ход второго игрока
action = input(f"{second_name}, введите 'shoot' для выстрела: ").lower()
if action == 'shoot':
if random.randint(0, 1) == 1: # 50% шанс попасть
damage = random.randint(10, 25)
hp1 -= damage
print(f"{second_name} попал! {first_name} теряет {damage} HP.")
print(f"У {first_name} осталось {hp1} HP.")
else:
print(f"{second_name} промахнулся!")
current_player = 1 # Переход хода
else:
print("Неверный ввод! Попробуйте снова.")

# Проверка на победу
if hp1 <= 0:
print(f"\n{second_name} победил!")
break
if hp2 <= 0:
print(f"\n{first_name} победил!")
break
 
Регистрация
13 Ноя 2013
Сообщения
70
Репутация
-2
Спасибо
0
Монет
0
import random

first_player = input("Введите имя первого игрока: ")
second_player = input("Введите имя второго игрока: ")

hp1 = 100
hp2 = 100

current_player = 1 # 1 - первый игрок, 2 - второй

while hp1 > 0 and hp2 > 0:
# Определяем, чей сейчас ход
if current_player == 1:
name = first_player
opponent = second_player
opponent_hp = hp2
else:
name = second_player
opponent = first_player
opponent_hp = hp1

# Игрок должен ввести 'shoot' для выстрела
while True:
action = input(f"{name}, введите 'shoot' для выстрела: ").lower()
if action == "shoot":
break
print("Некорректный ввод. Попробуйте ещё раз!")

# Проверяем, попал ли игрок
shot = random.randint(0, 2)
if shot != 0: # 0 - промах, 1 и 2 - попадание
damage = random.randint(10, 30)
if current_player == 1:
hp2 = max(0, hp2 - damage)
print(f"{name} попал! {opponent} теряет {damage} HP. Осталось {hp2} HP.")
else:
hp1 = max(0, hp1 - damage)
print(f"{name} попал! {opponent} теряет {damage} HP. Осталось {hp1} HP.")
else:
print(f"{name} промахнулся!")

# Проверка на победу
if hp1 <= 0:
print(f"{second_player} победил!")
break
elif hp2 <= 0:
print(f"{first_player} победил!")
break

# Переход хода к другому игроку
current_player = 2 if current_player == 1 else 1
 
Сверху Снизу