giganciprogramowania

Yahtzee l18

May 23rd, 2023 (edited)
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2. kosci = [2,1,3,6,4]
  3.  
  4.  
  5. nazwy_punktow = ['Jedynki', 'Dwójki', 'Trójki', 'Czwórki', 'Piątki', "Szóstki",
  6.                  "3 jednakowe","4 jednakowe","Full","Mały strit","Duży strit","Generał","Szansa"]
  7. punkty = ['','','','','','','','','','','','','']
  8. def rzuc_koscmi(numery_kosci:str):
  9.     for i in numery_kosci:
  10.         index = int(i) - 1
  11.         kosci[index] = random.randint(1,6)
  12.      
  13. def pokaz_kosci():
  14.     print('_________________________')
  15.     for i in range(len(kosci)):
  16.         print(f'{i+1}. {kosci[i]}')
  17.     print('_________________________')
  18.  
  19. def sprawdz_czy_przerzucamy():
  20.     odp = input("czy chcesz przerzucać kości?(t/n) ")
  21.     if odp == 't' or odp == 'T':
  22.         return True
  23.     else:
  24.         return False
  25.  
  26. def pokaz_tabele_punktow():
  27.     print('_________________________')
  28.     for i in range(len(punkty)):
  29.         print(f'{i+1}.{nazwy_punktow[i]}\t{punkty[i]}')
  30.     print('_________________________')
  31.  
  32. def wstaw_w_liczbowym(liczba):
  33.     liczba_punktow = 0
  34.     for kosc in kosci:
  35.         if kosc == liczba:
  36.             liczba_punktow += kosc
  37.     punkty[liczba-1] = liczba_punktow
  38.  
  39. def wstaw_3i4_jednakowe(pole,ilosc):
  40.     lista_wystapien = [0,0,0,0,0,0]
  41.     for kosc in kosci:
  42.         lista_wystapien[kosc-1] += 1
  43.     if ilosc in lista_wystapien:
  44.         punkty[pole-1] = sum(kosci)
  45.     else:
  46.         punkty[pole-1] = 0
  47.  
  48. def wstaw_full(pole):
  49.     lista_wystapien = [0,0,0,0,0,0]
  50.     for kosc in kosci:
  51.         lista_wystapien[kosc-1] += 1
  52.     if 3 in lista_wystapien and 2 in lista_wystapien:
  53.         punkty[pole-1] = 25
  54.     else:
  55.         punkty[pole-1] = 0
  56.  
  57. def wstaw_duzy_strit(pole):
  58.     kosci.sort()
  59.     dlugosc_strita = 0
  60.     for i in range(1,5):
  61.         if kosci[i-1] == kosci[i] - 1:
  62.             dlugosc_strita += 1
  63.         else:
  64.             dlugosc_strita = 0
  65.     if dlugosc_strita == 4:
  66.         punkty[pole-1] = 40
  67.     else:
  68.         punkty[pole-1] = 0
  69.  
  70. def wstaw_maly_strit(pole):
  71.     kosci_bez_powtorzen = list(set(kosci))
  72.     kosci_bez_powtorzen.sort()
  73.     dlugosc_strita = 0
  74.     for i in range(len(kosci_bez_powtorzen)-1,0, -1):
  75.         if kosci_bez_powtorzen[i] == kosci_bez_powtorzen[i-1] + 1:
  76.             dlugosc_strita += 1
  77.             if dlugosc_strita == 3:
  78.                 punkty[pole-1] = 30
  79.                 return
  80.         else:
  81.             dlugosc_strita = 0
  82.     punkty[pole-1] = 0
  83.  
  84. def wstaw_general(pole):
  85.     lista_wystapien = [0,0,0,0,0,0]
  86.     for kosc in kosci:
  87.         lista_wystapien[kosc-1] += 1
  88.     if 5 in lista_wystapien:
  89.         punkty[pole-1] = 50
  90.     else:
  91.         punkty[pole-1] = 0
  92.  
  93. def wstaw_szansa(pole):
  94.     punkty[pole-1] = sum(kosci)
  95.  
  96. def wstaw_punkty():
  97.     pole = int(input('Gdzie chcesz wstawić punkty (podaj numer rubryki): '))
  98.     if punkty[pole-1] == '':
  99.         if 1 <= pole <= 6:
  100.             wstaw_w_liczbowym(pole)
  101.         elif pole == 7:
  102.             wstaw_3i4_jednakowe(pole,3)
  103.         elif pole == 8:
  104.             wstaw_3i4_jednakowe(pole,4)
  105.         elif pole == 9:
  106.             wstaw_full(pole)
  107.         elif pole == 10:
  108.             wstaw_maly_strit(pole)
  109.         elif pole == 11:
  110.             wstaw_duzy_strit(pole)
  111.         elif pole == 12:
  112.             wstaw_general(pole)
  113.         elif pole == 13:
  114.             wstaw_szansa(pole)
  115.     else:
  116.         print('Wybrałeś pole w którym już wstawiłeś punkty')
  117.         wstaw_punkty()
  118.  
  119.  
  120.  
  121. for tura in range(13):
  122.     rzuc_koscmi("12345")
  123.     pokaz_tabele_punktow()
  124.     pokaz_kosci()
  125.     for i in range(2):
  126.         czy_przerzut = sprawdz_czy_przerzucamy()
  127.         if czy_przerzut:
  128.             kosci_do_przerzutu = input("Wypisz numery kości, które chcesz przerzucić(bez spacji): ")
  129.             rzuc_koscmi(kosci_do_przerzutu)
  130.             pokaz_kosci()
  131.         else:
  132.             break
  133.     pokaz_tabele_punktow()
  134.     pokaz_kosci()
  135.     wstaw_punkty()
  136.     pokaz_tabele_punktow()
  137.  
  138. print(f"Twój wynik to: {sum(punkty)}")
Add Comment
Please, Sign In to add comment