import random baza_danych = [] def obsluga_plikow(): """Funkcja sprawdza czy plik z pytaniami istnieje. Jesli nie, to jest on tworzony razem z piecioma pytaniami.""" try: plik = open("pytania.txt", "r") print("(Questions database file loaded successfully.)\n") plik.close() return except: print("(Questions database file not found. Created new one.)\n") plik = open("pytania.txt", "w+") examples = [("Polska", "Warszawa"), ("Ukraina", "Kijów"), ("Kanada", "Ottawa"), ("Niemcy", "Berlin"), ("Szwecja", "Stockholm")] for el in examples: plik.write(str(el[0]) + "\n" + str(el[1]) + "\n") plik.close() return def dane(): """Funkcja ma za zadanie wczytac z pliku txt pytania do pamieci operacyjnej(do zmiennej baza_danych).""" baza_danych.clear() kraj = "" miasto = "" i = 0 flaga = True plik = open("pytania.txt", "r") plik_list = plik.readlines() #print(plik_list) for el in plik_list: if flaga == True: kraj = el[0:-1] flaga = False else: miasto = el[0:-1] flaga = True i += 1 if i % 2 == 0 and i != 0: gotowy = (kraj, miasto) baza_danych.append(gotowy) plik.close() return def koniec_gry(punkty, max_punkty): """Funkcja jest wywolywana, gdy przebieg gry sie skonczyl. Jesli tak wola gracza, wywoluje funkcje odp za wprowadzanie nowych pytan do pliku txt. Przyjmuje z funkcji "przegieg gry()" dwie zmienne stanowiace informacje o punktach(punkty, max_punkty).\n Zwraca jej "prawde" lub "falsz" w zal czy gra ma sie skonczyc. """ print("\n") odpowiedz = "" if punkty == max_punkty: print("You won!!!") print("Game over. You score: [",punkty,"/", max_punkty,"]\n") print("New game?[y/n]") odpowiedz = input() if odpowiedz == "n" or odpowiedz == "N": print("Do you want to spend some time to expand our question database[y/n]?") odpowiedz = input() if odpowiedz == "y" or odpowiedz == "Y": dodaj_do_bazy() return False else: return False else: print("\n\n") return True def dodaj_do_bazy(): """Funckja dodaje do pliku txt nowe pytania.""" plik = open("pytania.txt", "a") while True: kraj = "" stolica = "" print("Country:") kraj = input() print("Capital:") stolica = input() plik.write(kraj + "\n") plik.write(stolica + "\n") print("Thank you. Do you want to add another question?[y/n]:") odpowiedz = input() if odpowiedz == "y" or odpowiedz == "Y": continue else: plik.close() return def przebieg_gry(): """Funkcja obsluguje przebieg rozgrywki. Zwraca "prawde" lub "falsz" funkji "gra()" w zal od tego, czy gracz chce grac dalej. """ odpowiedz = "" punkty = 0 max_punkty = len(baza_danych) while True: indeks = random.randint(0, len(baza_danych)-1) wariant = baza_danych[indeks] del baza_danych[indeks] print("Guess the capital of: [",wariant[0],"]: ") odpowiedz = input() if odpowiedz.upper() == wariant[1].upper(): punkty += 1 print("Correct Answer! Score: [",punkty,"/", max_punkty,"]") else: print("Incorrect answer. Score: [",punkty,"/", max_punkty,"]") if not baza_danych: return koniec_gry(punkty, max_punkty) return print("Next round?[y/n]:") odpowiedz = input() if odpowiedz == "n" or odpowiedz == "n": return koniec_gry(punkty,max_punkty) return if not baza_danych: return koniec_gry(punkty, max_punkty) return False def gra(): """Funkcja ta wywoluje podlegajace jej funkcje oblugujace gre. Jesli funkcja: "przebieg_gry()" zwroci falsz to gra sie konczy. """ while True: print('Welcome in "Guess the Capital"!') obsluga_plikow() dane() if przebieg_gry() == False: print("Goodbye!") break else: continue