Цикл while как процесс круток - продолжаем, пока не получим желаемый результат!
# Восстановление смолы
resin = 0
while resin < 160:
resin += 8 # +8 каждые 6 минут
print(f"Смола: {resin}/160")
# Цикл с составным условием
artifacts = 0
resin = 160
while resin >= 20 and artifacts < 5:
resin -= 20
artifacts += 1 # Получаем артефакт
# Крутим баннер до 5★
wishes = 0
pity = 0
while True: # Бесконечный цикл
wishes += 1
pity += 1
if pity == 90: # Гарантированный 5★
print("Получен 5★ персонаж!")
break
if random() < 0.006: # Шанс 0.6% на 5★
print("Ранний 5★!")
break
# Ищем 5★ артефакты
resin = 160
five_star = 0
while resin > 0:
resin -= 20
rarity = get_artifact_rarity()
if rarity < 5: # Пропускаем 4★ и ниже
continue
five_star += 1
print(f"5★ артефакт! Всего: {five_star}")
# Пытаемся получить артефакт с крит уроном
attempts = 5
while attempts > 0:
stats = roll_artifact_stats()
if "CRIT DMG" in stats:
print("Есть крит урон!")
break
attempts -= 1
else: # Выполнится если не было break
print("Не повезло с кританами...")
Создайте симулятор баннера с системой пити (гарантированного получения персонажа).
Правила гача-системы:
Реализуйте:
def wish_simulator(primogems):
wishes = primogems // 160
pity_5 = 0
guaranteed = False
while wishes > 0:
pity_5 += 1
# Увеличиваем шанс после 73 крутки
chance = 0.006 + max(0, (pity_5 - 73) * 0.06)
# ...