Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def policz_poprawne_gry(lista_podanych_gier, lista_gier_do_zgadniecia):
- #poprawne gry
- liczba_odgadnietych_gier = 0
- #Tworzymy sobie kopie gier które mamy w liście do zgadnięcia żeby nie uszkodzić orginalnej listy
- kopia_listy_gier_do_zgadniecia = lista_gier_do_zgadniecia.copy()
- #wykonujemy operacje dla każdej gry którą podaliśmy
- for gra in lista_podanych_gier:
- #jeżeli gra którą podaliśmy znajduje się w liście to zaliczamy ją do poprawnej
- if gra in kopia_listy_gier_do_zgadniecia:
- #doliczamy ją jako poprawną
- liczba_odgadnietych_gier += 1
- #sprawdzamy na którym miejscu w liście jest
- miejsce_poprawnej_gry = kopia_listy_gier_do_zgadniecia.index(gra)
- #usuwanie wystąpienia z kontrolnej listy tak aby nie zaliczyło nam jednej gry dwa razy, zastępujemy jej miejsce "Skreśleniem"
- kopia_listy_gier_do_zgadniecia[miejsce_poprawnej_gry] = "/"
- pass
- pass
- return liczba_odgadnietych_gier
- #gry to wszystkie nazwy gier z jakich może korzystać program, dzieci mogą podać własne propozycje
- gry = ["Pokemon", "Fortnite", "Minecraft", "CS"]
- #wylosowane_do_zgadniecia to zmienna do której wstawimy hasło do zgadnięcia
- lista_gier_do_zgadniecia = []
- #podane_gry to lista gier które poda użytkownik
- lista_wprowadzonych_gier = []
- ###WSZYSTKO POWYŻEJ TO STARTER
- #licznik tur
- ile_razy_zgadywano = 0
- #Rozszerzenie
- punkty = 0
- max_punkty = 0
- #losujemy hasła do zgadnięcia
- for i in range(4):
- #kwadratowe nawiasy oznaczają tu pozycje w liście, random.randint to losowanie liczby całkowitej od 0 do 3
- wylosowana_gra = gry[random.randint(0, 3)]
- #append oznacza dołączenie do listy
- lista_gier_do_zgadniecia.append(wylosowana_gra)
- #warto na tym etapie pokazać do celów testowych wygenerowane hasło
- print(lista_gier_do_zgadniecia)
- #na koniec tą linijkę trzeba zakomentować, żeby gracz nie widział jakie gry zostały wylosowane. To jest potrzebne tylko do testów
- ###STARTER
- #wyświetlamy instrukcje
- print("Witaj w grze MasterMind")
- print("Twoim celem jest jak najszybciej odgadnąć 4 gry, które zostały wylosowane przez komputer.")
- print("Podczas zgadywania ważna jest kolejność gier.")
- print("Uwaga gry mogą się powtórzyć!!!")
- print("Oto zestaw gier z jakich korzysta komputer (zwróć uwagę na wielkość liter)")
- print(gry)
- #właściwa gra która nie zakończy się dopóki nie podamy prawidłowego zestawu gier
- while lista_wprowadzonych_gier != lista_gier_do_zgadniecia:
- #za każdym razem jak od nowa podajemy gry musimy wyczyścić listę podanych gier
- lista_wprowadzonych_gier = []
- #zaznaczamy nową próbę
- print("Nowa próba")
- # tworzymy pętle która wykona się 4 razy
- for i in range(4):
- #dzięki input podajemy tytuł kolejnej gry
- wpisana_gra = input(f"Podaj grę nr {i+1}: ")
- #append dokleja nam grę na koniec listy
- lista_wprowadzonych_gier.append(wpisana_gra)
- pass
- #tworzymy dwa liczniki żeby sprawdzić ile gier było na idealnej pozycji a ile było poprawnych ale na złej pozycji
- idealne_gry = 0
- poprawne_gry = 0
- # sprawdzanie ile trafił idealnie gier
- #wykonujemy sprawdzenie wszystkich 4 elementów które podaliśmy
- for i in range(4):
- #sprawdzamy czy gra którą podaliśmy jest na tej samej pozycji w grach wylosowanych przez komputer
- if lista_wprowadzonych_gier[i] == lista_gier_do_zgadniecia[i]:
- #jeśli jest to doliczamy ją do gier idealnych
- idealne_gry += 1
- poprawne_gry = policz_poprawne_gry(lista_wprowadzonych_gier, lista_gier_do_zgadniecia)
- #Do gier poprawnych zaliczyło nam także gry idealne więc musimy je odjąć żeby nie wprowadzić gracza w błąd
- poprawne_gry -= idealne_gry
- #Dodajemy jeden do licznika tur
- ile_razy_zgadywano += 1
- punkty += idealne_gry
- max_punkty += 4
- #wyświetlamy graczowi w jednej lini wszystkie gry jakie podał w tej turze
- print(f"Podałeś następujące gry: {lista_wprowadzonych_gier}")
- #Jeśli nie wszystkie gry są idealnie ustawione to wyświetlamy informacje o ilości poprawnie umiejscowionych gier
- if idealne_gry < 4:
- #Wyświetlamy mu informacje o tym ile gier podał dobrze
- print(f"Niestety, nie zgadłeś. Idealnie trafiłeś {idealne_gry} gier oraz ustawiłeś {poprawne_gry} gier poprawnych, ale w złych miejscach")
- #gratulujemy zwycięstwa
- print(f"Brawo zgadłeś za {ile_razy_zgadywano} razem!!!")
- # informacja o punktach
- print(f"Zdobyłeś {punkty}/{max_punkty} punktów")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement