Алгоритм для игрового автомата в 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 шт):

Автор решения: Magan

Я для каждого ряда 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('введите число')
→ Ссылка