import random

kosci = [1, 2, 3, 4, 5]

nazwy_punktow = ['Jedynki', 'Dwójki', 'Trójki', 'Czwórki', 'Piątki'
                 , 'Szóstki', '3 jednakowe', '4 jednakowe', 'Full'
                 , 'Mały strit', 'Duży strit', 'Generał', 'Szansa']

punkty = [''] * len(nazwy_punktow)

def rzut_koscmi(numery_kosci:str):
    for i in numery_kosci:
        index = int(i) - 1
        kosci[index] = random.randint(1, 6)

def pokaz_kosci():
    print('_' * 30)
    for i in range(len(kosci)):
        print(f'{i + 1} : {kosci[i]}')
    print('_' * 30)

def sprawdz_czy_przerzucamy():
    odp = input('Czy chcesz przerzucić kości ? t/n ')
    if odp.lower() == 't':
        return True
    else:
        return False

def pokaz_tabele_punktow():
    print(f'\n============ TABELA PUNKTÓW ============')

    print("_" * 30)
    for i in range(len(punkty)):
        print(f'{i + 1}. {nazwy_punktow[i]} \t {punkty[i]}')
    print("_" * 30)

def wstaw_punkty():
    pole = int(input('Gdzie chcesz wstawić punkty (podaj nr rubryki): '))

    if punkty[pole - 1] == '':
        if 1 <= pole <= 6:
            wstaw_w_liczbowym(pole)
        elif pole == 7:
            wstaw_3i4_jednakowe(pole, 3)
        elif pole == 8:
            wstaw_3i4_jednakowe(pole, 4)
        elif pole == 9:
            wstaw_full(pole)
        elif pole == 12:
            wstaw_general(pole)
        elif pole == 13:
            wstaw_szansa(pole)
    else:
        print('Pole ma wstawione punkty')
        wstaw_punkty()

def wstaw_w_liczbowym(liczba):
    liczba_pkt = 0

    for kosc in kosci:
        if kosc == liczba:
            liczba_pkt += kosc

    punkty[liczba - 1] = liczba_pkt

def wstaw_3i4_jednakowe(pole, ilosc):
    lista_wystapien = [0,0,0,0,0,0]
    for kosc in kosci:
        lista_wystapien[kosc - 1] += 1
    if ilosc in lista_wystapien:
        punkty[pole - 1] = sum(kosci)
    else:
        punkty[pole - 1] = 0

def wstaw_full(pole):
    lista_wystapien = [0,0,0,0,0,0]
    for kosc in kosci:
        lista_wystapien[kosc - 1] += 1
    if 3 in lista_wystapien and 2 in lista_wystapien:
        punkty[pole - 1] = 25
    else:
        punkty[pole - 1] = 0

def wstaw_general(pole):
    lista_wystapien = [0,0,0,0,0,0]
    for kosc in kosci:
        lista_wystapien[kosc - 1] += 1
    if 5 in lista_wystapien:
        punkty[pole - 1] = 50
    else:
        punkty[pole - 1] = 0

def wstaw_szansa(pole):
    punkty[pole - 1] = sum(kosci)

for tura in range(len(punkty)):
    rzut_koscmi("12345")
    pokaz_tabele_punktow()
    pokaz_kosci()
    for i in range(2):
        czy_przerzut = sprawdz_czy_przerzucamy()
        if czy_przerzut:
            kosci_do_przerzutu = input('Wpisz nr kości, które chcesz przerzucić (BEZ SPACJI!!): ')
            rzut_koscmi(kosci_do_przerzutu)
            pokaz_kosci()
        else:
            break
    
    pokaz_tabele_punktow()
    wstaw_punkty()
    pokaz_tabele_punktow()

pokaz_tabele_punktow()