while True: syntax error
при запуске программы выдает ошибку SyntaxError на цикле while True(самый первый):
#МАГАЗИН
def magaz():
global My_Coins
print("\n Пройдя около часа вы натыкаетесь на торговца\n Интересно что он продает...")
for i in range(3):
FULL_SELL_OR += SELL_OR[ran(0,len(SELL_OR)-1)]
FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)
while True:
print("\n В продаже:\n ",*FULL_SELL_OR,"|",*FULL_SELL_Z,"\n У вас:",My_Coins,"монет>")
ask = input("\n Выйти|Что хотите просмотреть: ")
if ask in FULL_SELL_OR:
index1 = OR.index(ask)
index2 = SELL_OR.index(ask)
print("\n Оружие:",ask,"\n\n Атака:",OR_ATK[index1],"\n Цена:",SELL_OR_CEN[index2],"\n У вас:",My_Coins,"монет")
while True:
ask = input("\n <Купить|Выйти>")
if ask.lower() == "выйти":
break
elif ask.lower() == "купить" and My_Coins - SELL_OR_CEN[index2] >=0:
My_Coins -= SELL_OR_CEN[index2]
primt("\n Спасибо за покупку)")
inv_o += OR[index1]
if My_Coins - SELL_OR_CEN[index2< 0:
print("\n Не хватает монет")
break
if ask.lower() == "выйти":
print("\n Пока(")
peren()
Основная программа
from time import sleep as sl
from random import randint as ran
from colorama import init, Fore, Back
import sys
print("Fall Hero\n")
while True:
ask = input("Начать[1|0]: ")
if ask == "1":
print("\nНннннначинаем")
break
inv_o = [] #инвентарь оружия
inv_z = [] #инвентарь зелий
sl(1)
print("\n<>Вы проснулись в темнице, вокруг вас лежит огромное количество черепов.\n<>Вы умираете от голода, но рядом с вами лежит 'Бронзовый меч'\n<>И несколько зелий ХП\n<>Вы подбираете его и замечаете дверь...\n<>Похоже пора выбираться.")
sl(2)
print("\n Получен предмет 'Бронзовый меч'\n посмотрите характеристики в инвентаре")
inv_o.append("Бронзовый меч")
sl(1)
print("\n Получен предмет 'Зелье лечения'\n посмотрите характеристики в инвентаре")
inv_z.append("Зелье лечения")
#переменные для тем
text = ""
text2 = ""
My_ATK = 0 #атака
My_HP = 100 #хх
My_MAXHP = 100#максимальное хп
My_Coins = 15 #деньги
Kill_Mon = 0 #монстров убито
Rm_go = 0 #Комнат пройдено
#список получаемых оружий
ch_o=[]
#список получаемых аксессуаров
ch_a=["Браслет жизни"]
#цвета для тем
COLORS = ["Зеленый","Белый","Черный","Синий","Красный"]
COLOR_F = [Back.GREEN,Back.WHITE,Back.BLACK,Back.BLUE,Back.RED]
COLOR_S = [Fore.GREEN,Fore.WHITE,Fore.BLACK,Fore.BLUE,Fore.RED]
#Моя любимка
ZL=["М. зелье лечения","Зелье лечения","Б. зелье лечения"]
ZL_Count=[0,ran(1,6),2]#кол-во
ZL_H=[15,20,30]#хил
#Оружие
OR = ["Бронзовый меч","Вилка","Титановый трезубец","Огненная коса","Катана","Двуручное копье","Динамит","Сюрикен"]
OR_ATK = [ran(7,15),ran(12,18),ran(20,25),ran(22,28),30,ran(19,27),ran(25,35),ran(15,30)]#Урон
#Акссесуары
AKS = ["Браслет жизни"]
AKS_G = [20]
AKS_SELL = [20]
#Продаваемое оружие
SELL_OR = ["Огненная коса","Катана","Двуручное копье","Динамит","Сюрикен"]
SELL_OR_CEN =[40,50,35,45,20]
#Продаваемые зелья
SELL_Z = ["М. зелье лечения","Зелье лечения","Б. зелье лечения"]
SELL_Z_CEN = [15,25,35]
SELL_Z_COUNT=[ran(20,30),ran(20,30),ran(10,30)]
#Продаваемое в данный момент
FULL_SELL_OR = []
FULL_SELL_Z = []
#События
sob = ["Битва","Магазин"]
#Монстры
MONSTERS = ["Гаргамель","Гнида","Слизень","Демон","Гоблин"]
def monster():
global MONSTERS_ATK,MONSTERS_HP,MONSTERS_Coins
MONSTERS_ATK = [ran(10,15),ran(7,13),ran(5,10),ran(15,20),10]
MONSTERS_HP = [ran(30,45),ran(20,34),ran(15,25),ran(40,65),20]
MONSTERS_Coins = [ran(10,15),ran(9,17),ran(6,9),ran(30,60),16]
#Инвентарь
def inve():
global My_ATK, My_HP
print("\n ",*inv_z,"|",*inv_o)#вывод всего инвентаря
while True:
ask = input("\n<Выйти|Предмет>< ")
if ask == "Выйти":#просто выход
peren()
if ask in inv_z: #зельки
index2 = ZL.index(ask)
print("\n Зелье:",ask,"\n Лечение:",ZL_H[index2],"\n Кол-во:",ZL_Count[index2],"\n Ваше хп:",My_HP)
if ZL_Count[index2] != 0 and ZL_H[index2] + My_HP <= My_MAXHP:
ask = input("\nПолечиться?:")
if ask.lower() == "да":
My_HP += ZL_H[index2]
ZL_Count[index2] -= 1
print("\n Крутяк\n Ваше хп теперь:",My_HP,"\n Вы исцелились на:",ZL_H[index2],"\n Теперь у вас:",ZL_Count[index2],ZL[index2])
elif ask in inv_o:#для оружяя
index2 = OR.index(ask)
print("\n Оружие:",ask,"\n Урон:",OR_ATK[index2],"\n Ваш урон:",My_ATK)
ask = input("\n>Одеть?:")
if ask.lower() == "да":
My_ATK = OR_ATK[index2]
print("\nУспешно экипировано)")
#Темы
def tema():
global text,text2
print("\n Сейчас задний фон: \n Цвет текста: АБВГД\n ",*COLORS)
print("\n Вырвиглазно, не пользуйтесь этой функцией")
ask = input("\nЦвет фона:")
if ask in COLORS:
index = COLORS.index(ask)
text = COLOR_F[index]
print("Успешно)")
ask = input("\nЦвет текста:")
if ask in COLORS:
index = COLORS.index(ask)
text2 = COLOR_S[index]
print("Успешно")
#Информация
def infor():
print("\nУ вас:\n\nАтака:", My_ATK,"\nХП:",My_HP,"\nДеньги:",My_Coins,"\n\nКол-во маленьких зелий:",ZL_Count[0],"\nКол-во обычных зелий:",ZL_Count[1],"\nКол-во больших зелий:",ZL_Count[2],"\n\nМонстров убито:",Kill_Mon,"\nКомнат пройдено:",Rm_go)
#получения предмета после битвы
def p_chance():
pass
#БИТВА
def bitva():
monster()
global My_Coins,My_HP,Kill_Mon,Rm_go
a = ran(0,4)
print("\n\n Вы идете в полной темноте и вдруг натыкаетесь на:",MONSTERS[a],"\n Прийдется сражаться♤")
sl(2)
while True:
sl(1)
b = ran(0,1)
print("\n ХП",MONSTERS[a],":",MONSTERS_HP[a],"\n Ваше ХП:",My_HP)
if MONSTERS_HP[a] <= 0:#победа
sl(1)
print("\n Вы победили!!!\n Вы получили:",MONSTERS_Coins[a],"монет.")
a = ran(1,5)
if a == 2:
p_chance()
My_Coins += MONSTERS_Coins[a]
Kill_Mon += 1
Rm_go += 1
peren()
elif My_HP <=0: #функция самохила и смерть
n = -1
for i in ZL_Count:
n += 1
if i > 0:
print("\n На грани смерти вы используете ",ZL[n],"\n Ваше ХП теперь:",My_HP + ZL_H[n],"\n Осталось:",ZL_Count[n]-1)
My_HP += ZL_H[n]
ZL_Count[n] -= 1
break
if My_HP<=0 and ZL_Count[0] + ZL_Count[1] + ZL_Count[2] == 0:
print("\n Походу это конец...")
sl(3)
quit()
#сама драка
if b == 1:
sl(1)
print("\n Бьете вы\n Поздравляю вы нанесли ",My_ATK,"урона")
MONSTERS_HP[a] -= My_ATK
elif b == 0:
sl(1)
print("\n Бьет",MONSTERS[a],"\n Вам нанесли ",MONSTERS_ATK[a],"урона(")
My_HP -= MONSTERS_ATK[a]
#МАГАЗИН
def magaz():
global My_Coins
print("\n Пройдя около часа вы натыкаетесь на торговца\n Интересно что он продает...")
for i in range(3):
FULL_SELL_OR += SELL_OR[ran(0,len(SELL_OR)-1)]
FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)
while True:
print("\n В продаже:\n ",*FULL_SELL_OR,"|",*FULL_SELL_Z,"\n У вас:",My_Coins,"монет>")
ask = input("\n Выйти|Что хотите просмотреть: ")
if ask in FULL_SELL_OR:
index1 = OR.index(ask)
index2 = SELL_OR.index(ask)
print("\n Оружие:",ask,"\n\n Атака:",OR_ATK[index1],"\n Цена:",SELL_OR_CEN[index2],"\n У вас:",My_Coins,"монет")
while True:
ask = input("\n <Купить|Выйти>")
if ask.lower() == "выйти":
break
elif ask.lower() == "купить" and My_Coins - SELL_OR_CEN[index2] >=0:
My_Coins -= SELL_OR_CEN[index2]
primt("\n Спасибо за покупку)")
inv_o += OR[index1]
if My_Coins - SELL_OR_CEN[index2< 0:
print("\n Не хватает монет")
break
if ask.lower() == "выйти":
print("\n Пока(")
peren()
#ТАЙМЕР
def timer():
for i in reversed(range(1, 4)):
sys.stderr.write(f" {i:2d}\r")
sl(1)
#генератор событий
def gens():
a = ran(0,1)
if a == 0:
print("\nВаше событие:",sob[0],"\n")
timer()
bitva()
elif a == 1:
print("\nВаше событие:",sob[0],"\n")
timer()
magaz()
#основная лупа
def peren():
while True:
print("\nЧто делаем?<Инвентарь|Продолжить|Информация|Темы|Выйти>: ",text,text2)
ask = input("\n ")
if ask.lower() == "инвентарь":
inve()
elif ask.lower() == "информация":
infor()
elif ask.lower() == "темы":
tema()
elif ask.lower() == "продолжить":
sl(1)
gens()
elif ask.lower() == "выйти":
quit("\n Пока")
peren()
Не знаю поймете ли вы мой код, но надеюсь на помощь (это игра)
Ответы (1 шт):
Автор решения: XManit
→ Ссылка
Вы забыли закрыть квадратную скобку и поэтому цикл не запускался: (188)
FULL_SELL_Z += SELL_Z[ran(0,len(SELL_Z)-1)]
^
Ещё забыли тут: (204)
if My_Coins - SELL_OR_CEN[index2< 0:]:
^^