Advertisement
giganciprogramowania

kzg python rozszerzony

Jan 20th, 2023 (edited)
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2. def policz_poprawne_gry(lista_podanych_gier, lista_gier_do_zgadniecia):
  3.     #poprawne gry
  4.     liczba_odgadnietych_gier = 0
  5.     #Tworzymy sobie kopie gier które mamy w liście do zgadnięcia żeby nie uszkodzić orginalnej listy
  6.     kopia_listy_gier_do_zgadniecia = lista_gier_do_zgadniecia.copy()
  7.     #wykonujemy operacje dla każdej gry którą podaliśmy
  8.     for gra in lista_podanych_gier:
  9.         #jeżeli gra którą podaliśmy znajduje się w liście to zaliczamy ją do poprawnej
  10.         if gra in kopia_listy_gier_do_zgadniecia:
  11.             #doliczamy ją jako poprawną
  12.             liczba_odgadnietych_gier += 1
  13.             #sprawdzamy na którym miejscu w liście jest
  14.             miejsce_poprawnej_gry = kopia_listy_gier_do_zgadniecia.index(gra)
  15.             #usuwanie wystąpienia z kontrolnej listy tak aby nie zaliczyło nam jednej gry dwa razy, zastępujemy jej miejsce "Skreśleniem"
  16.             kopia_listy_gier_do_zgadniecia[miejsce_poprawnej_gry] = "/"
  17.             pass
  18.         pass
  19.     return liczba_odgadnietych_gier
  20.  
  21.  
  22. #gry to wszystkie nazwy gier z jakich może korzystać program, dzieci mogą podać własne propozycje
  23. gry = ["Pokemon", "Fortnite", "Minecraft", "CS"]
  24. #wylosowane_do_zgadniecia to zmienna do której wstawimy hasło do zgadnięcia
  25. lista_gier_do_zgadniecia = []
  26. #podane_gry to lista gier które poda użytkownik
  27. lista_wprowadzonych_gier = []
  28. ###WSZYSTKO POWYŻEJ TO STARTER
  29.  
  30.  
  31.  
  32. #licznik tur
  33. ile_razy_zgadywano = 0
  34. #Rozszerzenie
  35. punkty = 0
  36. max_punkty = 0
  37.  
  38.  
  39. #losujemy hasła do zgadnięcia
  40. for i in range(4):
  41.     #kwadratowe nawiasy oznaczają tu pozycje w liście, random.randint to losowanie liczby całkowitej od 0 do 3
  42.     wylosowana_gra = gry[random.randint(0, 3)]
  43.     #append oznacza dołączenie do listy
  44.     lista_gier_do_zgadniecia.append(wylosowana_gra)
  45.  
  46. #warto na tym etapie pokazać do celów testowych wygenerowane hasło
  47. print(lista_gier_do_zgadniecia)
  48. #na koniec tą linijkę trzeba zakomentować, żeby gracz nie widział jakie gry zostały wylosowane. To jest potrzebne tylko do testów
  49.  
  50.  
  51. ###STARTER
  52. #wyświetlamy instrukcje
  53. print("Witaj w grze MasterMind")
  54. print("Twoim celem jest jak najszybciej odgadnąć 4 gry, które zostały wylosowane przez komputer.")
  55. print("Podczas zgadywania ważna jest kolejność gier.")
  56. print("Uwaga gry mogą się powtórzyć!!!")
  57. print("Oto zestaw gier z jakich korzysta komputer (zwróć uwagę na wielkość liter)")
  58. print(gry)
  59.  
  60. #właściwa gra która nie zakończy się dopóki nie podamy prawidłowego zestawu gier
  61. while lista_wprowadzonych_gier != lista_gier_do_zgadniecia:
  62.     #za każdym razem jak od nowa podajemy gry musimy wyczyścić listę podanych gier
  63.     lista_wprowadzonych_gier = []
  64.     #zaznaczamy nową próbę
  65.     print("Nowa próba")
  66.  
  67.     # tworzymy pętle która wykona się 4 razy
  68.     for i in range(4):
  69.         #dzięki input podajemy tytuł kolejnej gry
  70.         wpisana_gra = input(f"Podaj grę nr {i+1}: ")
  71.         #append dokleja nam grę na koniec listy
  72.         lista_wprowadzonych_gier.append(wpisana_gra)
  73.         pass
  74.     #tworzymy dwa liczniki żeby sprawdzić ile gier było na idealnej pozycji a ile było poprawnych ale na złej pozycji
  75.     idealne_gry = 0
  76.     poprawne_gry = 0
  77.  
  78.     # sprawdzanie ile trafił idealnie gier
  79.     #wykonujemy sprawdzenie wszystkich 4 elementów które podaliśmy
  80.     for i in range(4):
  81.         #sprawdzamy czy gra którą podaliśmy jest na tej samej pozycji w grach wylosowanych przez komputer
  82.         if lista_wprowadzonych_gier[i] == lista_gier_do_zgadniecia[i]:
  83.             #jeśli jest to doliczamy ją do gier idealnych
  84.             idealne_gry += 1
  85.        
  86.     poprawne_gry = policz_poprawne_gry(lista_wprowadzonych_gier, lista_gier_do_zgadniecia)
  87.    
  88.     #Do gier poprawnych zaliczyło nam także gry idealne więc musimy je odjąć żeby nie wprowadzić gracza w błąd
  89.     poprawne_gry -= idealne_gry
  90.     #Dodajemy jeden do licznika tur
  91.     ile_razy_zgadywano += 1
  92.  
  93.     punkty += idealne_gry
  94.     max_punkty += 4
  95.  
  96.     #wyświetlamy graczowi w jednej lini wszystkie gry jakie podał w tej turze
  97.     print(f"Podałeś następujące gry: {lista_wprowadzonych_gier}")
  98.     #Jeśli nie wszystkie gry są idealnie ustawione to wyświetlamy informacje o ilości poprawnie umiejscowionych gier
  99.     if idealne_gry < 4:
  100.     #Wyświetlamy mu informacje o tym ile gier podał dobrze
  101.         print(f"Niestety, nie zgadłeś. Idealnie trafiłeś {idealne_gry} gier oraz ustawiłeś {poprawne_gry} gier poprawnych, ale w złych miejscach")
  102.  
  103. #gratulujemy zwycięstwa
  104. print(f"Brawo zgadłeś za {ile_razy_zgadywano} razem!!!")
  105. # informacja o punktach
  106. print(f"Zdobyłeś {punkty}/{max_punkty} punktów")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement