Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- player_location = "start_room"
- player_data = {
- "name": "none",
- "location": "Znajdujesz sie w hallu Twierdzy.\n",
- "location_name": "hall",
- "health": 100
- }
- inventory = ["s","s","s","s","s",]
- text_file = open("stan_gry.txt", "w")
- class Location:
- def __init__(self, moves, actions, keys):
- self.moves = moves
- self.actions = actions
- self.keys = keys
- self.description = "Znajdujesz sie w hallu Twierdzy. Jest to dlugi korytarz, po bokach ustawione sa puste zbroje rycerskie. Z lewej i prawej strony widzisz po trzy bramy prowadzace do sasiednich pokojow." \
- "\n\n [1] Pierwsze drzwi po lewej to Sala Tronowa.\n\n [2] Drugie drzwi po lewej to jadalnia.\n\n [3] Trzecie drzwi po lewej to Kuchnia." \
- "\n\n[4] Pierwsze drzwi po prawej to Biblioteka.\n\n[5] Drugie drzwi po prawej to czytelnia.\n\n[6] Trzecie drzwi po prawej to Pokoj Skryby.\n\n" \
- "[up] Przed toba znajduja sie szerokie schody"
- def help_file():
- print("\n************************************************\n")
- print("Twoim zadaniem jest rozwiazac zagadke: gdzie znajduja sie Insygnia Krolewskie\n")
- print("Aby zmienic lokalizacje wpisz 'move'.")
- print("Prosze uzywac numerow pomieszczen w celu nawigacji.\n")
- print("Aby skorzystac z inwentarza podaj nazwe obiektu, a program wyswietli co mozesz z nimi zrobic\n")
- print("Aby wyswietlic opis pokoju, w ktorym sie znajdujesz, wpisz 'opis'.\n")
- print("Aby wyswietlic te instrukcje wpisz 'help'.\n")
- print("Aby wyswietlic swoje przedmioty wpisz 'inventory'\n")
- print("Wcisnij ENTER aby kontynuowac\n")
- input()
- print("\n************************************************\n")
- start_room_keys = {"light": "off"}
- start_room = Location(("1", "2", "3", "4", "5", "6", "sala_tronowa", "jadalnia", "kuchnia", "biblioteka", "czytelnia",
- "pokoj_skryby", "hall"),
- ("look", "light", "light switch", "skrzynia", "otworz"), start_room_keys)
- def start_room_moves_actions(player_input):
- if player_input in start_room.moves:
- start_room_moves(player_input)
- elif player_input in start_room.actions:
- start_room_actions(player_input)
- else:
- print("\nNiepoprawne polecenie!\n")
- play_level_one()
- def start_room_moves(player_move):
- rooms_in = []
- print(len(inventory))
- if len(inventory) < 5:
- if player_move == "1" or player_move == "sala_tronowa":
- player_data["location"] = "Sala tronowa - Pierwszy pokoj po lewej stronie od hallu"
- player_data["location_name"] = "sala_tronowa"
- # text_file.write("Byles w sali tronowej\n")
- sala_tronowa(input("Znajdujesz sie w Sali Tronowej\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
- elif player_move == "2" or player_move == "jadalnia":
- player_data["location"] = "Jadalnia - Drugi pokoj po lewej stronie hallu."
- player_data["location_name"] = "jadalnia"
- # text_file.write("Byles w jadalni.\n")
- jadalnia(input("Znajdujesz sie w Jadalni\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
- elif player_move == "3" or player_move == "kuchnia":
- player_data["location"] = "Znajdujesz sie w kuchni."
- player_data["location_name"] = "kuchnia"
- text_file.write("Byles w kuchni\n")
- print("Znajdujesz sie w kuchni\n")
- kuchnia(input("Znajdujesz sie w kuchni\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
- elif player_move == "4" or player_move == "biblioteka":
- player_data["location"] = "Znajdujesz sie w bibliotece."
- player_data["location_name"] = "biblioteka"
- print("Znajdujesz sie w bibliotece.")
- biblioteka(input("Znajdujsz sie w bibliotece\n[look] rozejrzyj sie \n [quest] wykonaj zadanie "))
- elif player_move == "5" or player_move == "czytelnia":
- player_data["location"] = "Znajdujesz sie w czytelni."
- player_data["location_name"] = "czytelnia"
- print("Znajdujesz sie w czytelni.\n")
- czytelnia(input("Znajdujsz sie w czytelnii.\n[look] rozejrzyj sie \n[quest] wykonaj zadanie "))
- elif player_move == "hall":
- start_room_actions(input("[look] Rozejrzyj sie \n[odpal]Zapal pochodnie. \n[skrzynia]Otworz wieko skrzyni"))
- if start_room.keys["light"] == "off":
- print("Tu jest za ciemno? Czy chcesz odpalic pochodnie?\n")
- else:
- print("Przed Toba znajduje sie skrzynia.\n")
- elif len(inventory) >= 5 and len(inventory) < 10:
- print("POZIOM 2")
- if player_move == "6":
- player_data["location"] = "Pierwszy etap walki ze smokiem"
- player_data["location_name"] = "atak"
- # text_file.write("Zaatakowales smoka\n")
- atak(input("Wychodzisz po schodach na pietro. \n[look] Rozejrzyj sie. \n[quest] Wykonaj zadanie"))
- elif player_move == 7:
- player_data["location"] = "[7] Drugi etap walki ze smokiem"
- player_data["location_name"] = "obrona"
- # text_file.write("Bronisz sie przed ciosem smoka\n")
- obrona(input(
- "Skutecznie zadany cios niestety rozjuszyl potwora! \n[look] Rozejrzyj sie. \n[quest] Wykonaj zadanie."))
- elif player_move == 8:
- pass
- elif player_move == 9:
- pass
- elif player_move == 10:
- pass
- else:
- print("niepoprawna wartosc")
- def start_room_actions(player_action):
- if player_action == "look":
- print(
- "Znajdujesz sie w hallu Twierdzy. Jest to dlugi, ciemny korytarz, po bokach ustawione sa puste zbroje rycerskie. Z lewej i prawej strony widzisz po trzy bramy prowadzace do sasiednich pokojow. Zanim wykonasz pierwszy krok odpal pochodnie. W tym celu wpisz: 'odpal'")
- elif player_action == "odpal":
- print(
- "\n\n [1] Pierwsze drzwi po lewej to Sala Tronowa.\n\n[2] Drugie drzwi po lewej to jadalnia.\n\n[3] Trzecie drzwi po lewej to Kuchnia."
- "\n\n [4] Pierwsze drzwi po prawej to Biblioteka.\n\n[5] Drugie drzwi po prawej to czytelnia.\n\n [6] Trzecie drzwi po prawej to Pokoj Skryby."
- "\n\n [up] Na koncu korytarza znajduja sie szerokie schody"
- "\n\n Przed toba na podlodze lezy skrzynia. Aby zobaczyc jej zawartosc wpisz otworz")
- start_room.keys["light"] = "on"
- elif player_action == "skrzynia" or player_action == "otworz":
- if start_room.keys["light"] == "off":
- print("Najpierw odpal pochodnie!\n")
- else:
- print("\nW skrzyni znajduje sie kawalek pergaminu. Nie mozesz uwierzyc w to, co widzisz\n")
- print("\n Drogi przybyszu!\n W Twierdzy znajduja sie zagubione insygnia krolewskie!\n"
- "Aby dotrzec do nich musisz pokonac wiele niebezpieczenstw oraz rozwiazac niejedna zagadke!\n\n Powodzenia!")
- def sala_tronowa(player_action):
- if player_action == "look":
- print("Znajdujesz sie w sali tronowej. Twoim oczom ukazuje sie tron strzezony przez postac w zbroi")
- elif player_action == "quest":
- print("Znajdujesz sie w sali tronowej")
- print("Twoja droge zagradza Znudzony Rycerz.\n"
- "Proponuje partie gry w kosci\nW zamian za wygrana odda ci swoj miecz!"
- "Rzuc tak, aby kazda z nich pokazywala taka sama liczbe oczek.")
- min = 1
- max = 6
- roll_again = "tak"
- while roll_again == "tak" or roll_again == "y":
- print("Wykonuje rzut...")
- print("Kosci pokazuja...")
- x = random.randint(min, max)
- y = random.randint(min, max)
- print(x)
- print(y)
- if x == y:
- print("Taki sam wynik")
- inventory.append("miecz")
- elif x > y:
- print("Rozne wyniki")
- roll_again = input("Czy chcesz rzucic jeszcze raz?")
- print("Gratulacje! Przechodzisz dalej!")
- def jadalnia(player_action):
- if player_action == "look":
- print("Jestes w jadalni")
- elif player_action == "quest":
- # print("Przed toba lezy tarcza. Czy chesz ja podniesc?")
- # pick_up = input()
- # if pick_up == "tak":
- # inventory.append("tarcza")
- # else:
- # pass
- print(
- "Spotykasz Kucharke. \nJej syn zginal na wojnie. Chcialaby zrobic dobry uzynek dla innych rycerzy.\n"
- "Zjedz tyle lyzek zupy, aby poziom najedzenia byl wyzszy niz 3. Uzyj komendy 'jedz'.")
- hunger = 0
- while hunger < 4:
- eat = input("Czy chcesz dalej jesc?")
- if eat == "jedz":
- hunger += 1
- print("Twoj poziom glodu to:", hunger)
- if hunger > 3:
- print("Wzruszona Kucharka ofiaruje Ci tarcze swojego syna")
- inventory.append("Tarcza")
- else:
- continue
- else:
- print("Zla komenda")
- def kuchnia(player_action):
- if player_action == "look":
- print("Jestes w kuchni")
- elif player_action == "quest":
- print("Wchodzac do kuchni zuwazasz starca. Nie ma od sily wstac po miske z potrawa.")
- print("Na palenisku gotuje sie potrawka z indyka. Wymaga posolenia! Ile razy trzeba dodac soli?")
- number_salt = int(input("Podaj liczbe 1-5"))
- for i in range(number_salt):
- print("Mieszaj w garnku")
- print("Dodaj soli")
- print(
- "Podajesz Starcowi miske z potrawka. Potrawka jest pyszna! W podziekowaniu Starzec ofiaruje Ci fiolke z magicznym napojem.")
- inventory.append("magiczny napoj")
- def biblioteka(player_action):
- if player_action == "look":
- print("Jestes w bibliotece")
- elif player_action == "quest":
- print("W biblitece znajduje sie wiele innych ksiazek. ")
- reading = input("Czy chcesz przeczytac jedna z nich?")
- if reading == "tak":
- choose_book = input("Wybierz tytul: \n 'Kroniki Krolewskie' \n 'Atlas botaniczny' \n 'Ksiega zaklec'")
- if choose_book == "Kroniki Krolewskie":
- print("...Historia Krola Twierdzy...")
- elif choose_book == "Atlas botaniczny":
- print("...Opis roslin...")
- elif choose_book == 'Kiega zaklec':
- print("...Magiczne zaklecia...")
- print("Ta ksiega moze nam sie jeszcze przydac! Chowasz ja do swojej sakwy")
- inventory.append("ksiega_zaklec")
- else:
- pass
- elif reading == "nie":
- pass
- def czytelnia(player_action):
- if player_action == "look":
- print("Jestes w czytelnii")
- elif player_action == "quest":
- print("Spotykasz sympatycznego skrybe")
- print("Proponuje Ci on partie gry w kolko i krzyzyk!")
- def tic_tac_toe():
- board = [1, 2, 3, 4, 5, 6, 7, 8, 9]
- end = False
- win_commbinations = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (0, 3, 6), (1, 4, 7), (2, 5, 8), (0, 4, 8), (2, 4, 6))
- def draw():
- print(board[0], board[1], board[2])
- print(board[3], board[4], board[5])
- print(board[6], board[7], board[8])
- print()
- def p1():
- n = choose_number()
- if board[n] == "X" or board[n] == "O":
- print("\nTutaj nie mozesz zakreslic!")
- p1()
- else:
- board[n] = "X"
- def p2():
- n = choose_number()
- if board[n] == "X" or board[n] == "O":
- print("\nTutaj nie mozesz zakreslic!")
- p2()
- else:
- board[n] = "O"
- def choose_number():
- while True:
- while True:
- a = input()
- try:
- a = int(a)
- a -= 1
- if a in range(0, 9):
- return a
- else:
- print("\nTej liczby nie ma na tablicy")
- continue
- except ValueError:
- print("\nTo nie jest numer. Sprobuj jeszcze raz")
- continue
- def check_board():
- count = 0
- for a in win_commbinations:
- if board[a[0]] == board[a[1]] == board[a[2]] == "X":
- print("Wygrales!\n")
- print("W nagrode dostajesz od mnicha magiczna rozdzke\n")
- inventory.append("rozdzka")
- return True
- if board[a[0]] == board[a[1]] == board[a[2]] == "O":
- print("Mnich wygral!\n")
- print("Podajecie sobie dlonie!\n")
- return True
- for a in range(9):
- if board[a] == "X" or board[a] == "O":
- count += 1
- if count == 9:
- print("Gra konczy sie remisem\n")
- return True
- while not end:
- draw()
- end = check_board()
- if end == True:
- break
- print("Wybierz gdzie postawic X")
- p1()
- print()
- draw()
- end = check_board()
- if end == True:
- break
- print("Wybierz, gdzie mnich stawia O")
- p2()
- print()
- if input("Zagraj jeszcze raz (y/n)\n") == "y":
- print()
- tic_tac_toe()
- tic_tac_toe()
- def atak(player_action):
- if player_action == "look":
- print("Wychodzisz schodami do gory. Twoim oczom ukazuje sie Smok!")
- elif player_action == "quest":
- print("Przed toba stoi ogromny smok. Czas na atak!")
- print("Oto przedmioty ktore posiadasz:", inventory)
- print("Wykorzystaj to, ze mozesz podejsc do smoka blisko i zaatkuj mieczem!")
- attack = 5
- defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
- while defense != 0:
- if attack > defense:
- print("Za malo ")
- defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
- continue
- elif attack < defense:
- print("! Wygrana!")
- break
- else:
- print("Remis")
- defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
- continue
- def obrona(player_action):
- if player_action == "look":
- print("Piekny cios... Niestety smok nadal ma sile")
- elif player_action == "quest":
- print("Smok atakuje!")
- print("Oto przedmioty ktore posiadasz:", inventory)
- print("Wykorzystaj tarcze!")
- print("Twoje zycie przed atakiem smoka to:", player_data["health"])
- dragon_attack = random.randint(0, 10)
- player_data["health"] -= dragon_attack
- print("Twoje zycie po ataku smoka to:", player_data["health"])
- help_file()
- print(start_room.description)
- def main():
- print(
- "Witaj graczu!\n Twoim zadaniem jest znalezienie zaginionych insygniow krolewskich. Znajduja sie one w Twierdzy.")
- def get_player_features():
- health = 100
- name_input = input()
- if len(name_input) > 10 or len(name_input) < 1:
- print("Podaj swoje imie (prosze wprowadzic 1-10 liter):\n")
- get_player_features()
- else:
- player_data["name"] = name_input
- get_player_features()
- play_level_one()
- def play_level_one():
- player_input = input("Co chcialbys teraz zrobic?\n").lower()
- if player_input == "opis":
- current_location = player_data["location"]
- print("\n" + str(current_location))
- elif player_input == "help":
- help_file()
- elif player_input == "":
- print("Sprobuj jeszcze raz")
- elif player_input == "move":
- start_room_moves(input("Podaj nr pokoju"))
- elif player_input == "inventory":
- print(inventory)
- elif player_input == "save":
- zapis_stanu = open("zapis_stanu.txt", "w")
- zapis_stanu.writelines(inventory)
- text_file.close()
- else:
- current_location_name = player_data["location_name"]
- if current_location_name == "start_room":
- start_room_moves_actions(player_input)
- current_location_name = player_data["location_name"]
- if current_location_name == 'start_room':
- start_room_moves_actions(player_input)
- if player_data["health"] < 1:
- print("Niestety umarles, twoj poziom zycia wynosi mniej niz 1. ")
- else:
- play_level_one()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement