Advertisement
Guest User

Untitled

a guest
Jan 16th, 2023
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.42 KB | None | 0 0
  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. liczba_prob = 0
  34.  
  35. #losujemy hasła do zgadnięcia
  36. for i in range(4):
  37.     #kwadratowe nawiasy oznaczają tu pozycje w liście, random.randint to losowanie liczby całkowitej od 0 do 3
  38.     wylosowana_gra = gry[random.randint(0, 3)]
  39.     #append oznacza dołączenie do listy
  40.     lista_gier_do_zgadniecia.append(wylosowana_gra)
  41.  
  42. #warto na tym etapie pokazać do celów testowych wygenerowane hasło
  43. print(lista_gier_do_zgadniecia)
  44. #na koniec tą linijkę trzeba zakomentować, żeby gracz nie widział jakie gry zostały wylosowane. To jest potrzebne tylko do testów
  45.  
  46.  
  47. ###STARTER
  48. #wyświetlamy instrukcje
  49. print("Witaj w grze master mind")
  50. print("Twoim celem jest jak najszybciej odgadnąć 4 gry, które i w jakiej kolejności komputer wylosował gry")
  51. print("Uwaga gry mogą się powtórzyć!!!")
  52. print("Oto zestaw gier z jakich korzysta komputer (zwróć uwagę na wielkość liter)")
  53. print(gry)
  54.  
  55. #właściwa gra która nie zakończy się dopóki nie podamy prawidłowego zestawu gier
  56. while lista_wprowadzonych_gier != lista_gier_do_zgadniecia:
  57.     #za każdym razem jak od nowa podajemy gry musimy wyczyścić listę podanych gier
  58.     lista_wprowadzonych_gier = []
  59.     #zaznaczamy nową próbę
  60.     print("Nowa próba")
  61.  
  62.     # tworzymy pętle która wykona się 4 razy
  63.     for i in range(4):
  64.         #dzięki input podajemy tytuł kolejnej gry
  65.         wpisana_gra = input(f"Podaj grę nr {i+1}: ")
  66.         #append dokleja nam grę na koniec listy
  67.         lista_wprowadzonych_gier.append(wpisana_gra)
  68.         pass
  69.     #tworzymy dwa liczniki żeby sprawdzić ile gier było na idealnej pozycji a ile było poprawnych ale na złej pozycji
  70.     idealne_gry = 0
  71.     poprawne_gry = 0
  72.  
  73.     # sprawdzanie ile trafił idealnie gier
  74.     #wykonujemy sprawdzenie wszystkich 4 elementów które podaliśmy
  75.     for i in range(4):
  76.         #sprawdzamy czy gra którą podaliśmy jest na tej samej pozycji w grach wylosowanych przez komputer
  77.         if lista_wprowadzonych_gier[i] == lista_gier_do_zgadniecia[i]:
  78.             #jeśli jest to doliczamy ją do gier idealnych
  79.             idealne_gry += 1
  80.        
  81.     poprawne_gry = policz_poprawne_gry(lista_wprowadzonych_gier, lista_gier_do_zgadniecia)
  82.    
  83.     #Do gier poprawnych zaliczyło nam także gry idealne więc musimy je odjąć żeby nie wprowadzić gracza w błąd
  84.     poprawne_gry -= idealne_gry
  85.     #Dodajemy jeden do licznika tur
  86.     liczba_prob += 1
  87.  
  88.  
  89.     #wyświetlamy graczowi w jednej lini wszystkie gry jakie podał w tej turze
  90.     print(f"Podałeś następujące gry: {lista_wprowadzonych_gier}")
  91.     #Jeśli nie wszystkie gry są idealnie ustawione to wyświetlamy informacje o ilości poprawnie umiejscowionych gier
  92.     if idealne_gry < 4:
  93.     #Wyświetlamy mu informacje o tym ile gier podał dobrze
  94.         print(f"niestety nie zgadłeś. Idealnie trafiłeś {idealne_gry} gier oraz ustawiłeś {poprawne_gry} gier poprawnych, ale w złych miejscach")
  95.  
  96. #gratulujemy zwycięstwa
  97. print(f"Brawo zgadłeś za {liczba_prob} razem!!!")
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement