giganciprogramowania

Dice 10000 python l1

Jun 14th, 2023
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2.  
  3. lista_opcji = ["100 punktów za 1", "50 punktów za 5","Punkty za 3 kości"]
  4. trzy_kosci = 0
  5. liczba_kosci = 5
  6. mozliwe_opcje = []
  7. wyrzucone_kosci = []
  8. punkty = [0,0]
  9. punkty_tury = 0
  10. gracz = 0
  11. def rzut_koscmi(ile_kosci):
  12.     wyrzucone_kosci.clear()
  13.     for i in range(ile_kosci):
  14.         wyrzucone_kosci.append(random.randint(1,6))
  15.     pokaz_kosci()
  16.    
  17. def pokaz_kosci():
  18.     print("____________________")
  19.     print("Wyniki rzutu koścmi:")
  20.     for i in range(len(wyrzucone_kosci)):
  21.         print(f"Kość {i+1}: {wyrzucone_kosci[i]} oczek ")
  22.  
  23. def mozliwe_punktowania():
  24.     mozliwe_opcje.clear()
  25.     if 1 in wyrzucone_kosci:
  26.         mozliwe_opcje.append(0)
  27.     if 5 in wyrzucone_kosci:
  28.         mozliwe_opcje.append(1)
  29.     if len(wyrzucone_kosci) >= 3:
  30.         for i in range(1,7):
  31.             if wyrzucone_kosci.count(i) >= 3:
  32.                 global trzy_kosci
  33.                 trzy_kosci = i
  34.                 mozliwe_opcje.append(2)
  35.  
  36. def kontynuacja_tury():
  37.     global liczba_kosci
  38.     while liczba_kosci > 0:
  39.         pokaz_kosci()
  40.         mozliwe_punktowania()
  41.         if len(mozliwe_opcje) >=1:
  42.             print("0. Przydziel więcej punktów z tego rzutu")
  43.         print("1. Przerzuć niezapunktowane kości, jeśli wykorzystałeś wszystkie to rzuć ponownie wszystkimi")
  44.         print("2. Zakończ ture i dopisz punkty")
  45.        
  46.         wybor = int(input("Podaj wybor:"))
  47.         if wybor == 0:
  48.             przydziel_punkty()
  49.         elif wybor == 1:
  50.             if liczba_kosci == 0:
  51.                 liczba_kosci = 5
  52.             return True
  53.         elif wybor == 2:
  54.             return False
  55.  
  56. def przydziel_punkty():
  57.     i = 1
  58.     for opcja in mozliwe_opcje:
  59.         tekst = lista_opcji[opcja]
  60.         print(f"{i}. {tekst}")
  61.         i += 1
  62.  
  63.     wpisany_wybor = 0
  64.     while not 0 < wpisany_wybor <= len(mozliwe_opcje):
  65.         wpisany_wybor = int(input("Podaj wybor: "))
  66.     wpisany_wybor -= 1
  67.     global liczba_kosci
  68.     global punkty_tury
  69.     if mozliwe_opcje[wpisany_wybor] == 0:
  70.         liczba_kosci -= 1
  71.         punkty_tury += 100
  72.         wyrzucone_kosci.remove(1)
  73.     elif mozliwe_opcje[wpisany_wybor] == 1:
  74.         liczba_kosci -= 1
  75.         punkty_tury += 50
  76.         wyrzucone_kosci.remove(5)
  77.     elif mozliwe_opcje[wpisany_wybor] == 2:
  78.         liczba_kosci -= 3
  79.         if trzy_kosci == 1:
  80.             punkty_tury += 1000
  81.         else:
  82.             punkty_tury += trzy_kosci*100
  83.         for i in range(3):
  84.             wyrzucone_kosci.remove(trzy_kosci)
  85.      
  86. czy_ktos_wygral = False
  87.  
  88. while not czy_ktos_wygral:
  89.     liczba_kosci = 5
  90.     punkty_tury = 0
  91.     czy_kontynuowac = True
  92.     print(f"Punkty: gracz 1 - {punkty[0]}| gracz 2 - {punkty[1]}")
  93.     print(f"Tura Gracza {gracz+1}")
  94.     while czy_kontynuowac:
  95.         rzut_koscmi(liczba_kosci)
  96.         mozliwe_punktowania()
  97.         if len(mozliwe_opcje) == 0:
  98.             print("Niestety nie możesz zdobyć punktów. Twoja tura kończy się")
  99.             punkty_tury = 0
  100.             break
  101.         else:
  102.             przydziel_punkty()
  103.         print(f"Punkty zdobyte w tej turze: {punkty_tury}")
  104.         czy_kontynuowac = kontynuacja_tury()
  105.     punkty[gracz] += punkty_tury
  106.     if punkty[gracz] >= 10000:
  107.         print("Wygrałeś!!!")
  108.         czy_ktos_wygral = True
  109.     if gracz == 0:
  110.         gracz = 1
  111.     else:
  112.         gracz = 0
  113.  
  114.    
Add Comment
Please, Sign In to add comment