Алгоритм для игрового автомата в Python
Есть 3 столбца и 3 строки в самом автомате. Задача следующая: Если из возможных символов (А, 7, Wild) в одну строку выпадают одинаковые символы (Также нужно учитывать, что комбинации могут выпасть сразу и на 1-ой, на 2-ой и на 3-ей строке), то нужно добавить к балансу 10, а также в самом автомате с помощью модуля Colorama выделить зелёным цветом символы, которые "вошли" в комбинацию.
import random
import colorama
from colorama import *
colorama.init()
symbols = ["A", "7", "Wild"]
balance = 0
leave = False
def menu():
print(Fore.GREEN + "\nБаланс: " + str(balance))
print(Fore.CYAN + "1 - Играть")
print(Fore.CYAN + "2 - Выход")
def roll():
symb = []
print(Style.RESET_ALL)
for i in range(9):
symb.append(random.choice(symbols))
for x in range(len(symb)):
print(symb[x] + " | ", end=" ")
if x == 2 or x == 5 or x == 8:
print("\n")
def casino():
roll()
menu()
while not leave:
cmd = int(input(Fore.YELLOW + "Команда: "))
if cmd == 1:
casino()
elif cmd == 2:
print(Fore.RED + "Пока :(")
exit()
Ответы (1 шт):
Я для каждого ряда col сделал список символов(col_1, col_2, col_3) по 3 штуки. И после принта всего автомата проверил что бы все элементы списка второго ряда(col_2) были одинаковыми. Глобализировал balance что бы его редактировать внутри метода. Если хотите проверять другие колонки, скопируйте проверку и поменяйте переменную col_2 на col_3 или col_1 для 3 или 1 рядка соответственно. Исправил возможную ошибку если в инпут нечего не ввести или ввести не число(с помощю try)
import colorama
from colorama import *
colorama.init()
symbols = ["A", "7", "Wild"]
balance = 0
leave = False
def menu():
print(Fore.GREEN + "\nБаланс: " + str(balance))
print(Fore.CYAN + "1 - Играть")
print(Fore.CYAN + "2 - Выход")
def roll():
global balance
col_1 = []
col_2 = []
col_3 = []
print('balance', balance)
print(Style.RESET_ALL)
for i in range(3):
col_1.append(random.choice(symbols))
col_2.append(random.choice(symbols))
col_3.append(random.choice(symbols))
symb = col_1 + col_2 + col_3
for x in range(len(symb)):
print(symb[x] + " | ", end=" ")
if x in (2, 5, 8):
print("\n")
if col_2[0] == col_2[1] and col_2[1] == col_2[2]:
print(Back.GREEN + 'Вы выиграли')
print(Back.BLACK)
balance += 10
else:
print(Back.RED + 'Вы проиграли')
print(Back.BLACK)
def casino():
roll()
menu()
while not leave:
try:
cmd = int(input(Fore.YELLOW + "Команда: "))
if cmd == 1:
casino()
elif cmd == 2:
print(Fore.RED + "Пока :(")
exit()
except ValueError:
print('введите число')