Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.22 KB | None | 0 0
  1. import random
  2.  
  3. player_location = "start_room"
  4.  
  5. player_data = {
  6. "name": "none",
  7. "location": "Znajdujesz sie w hallu Twierdzy.\n",
  8. "location_name": "hall",
  9. "health": 100
  10. }
  11.  
  12. inventory = ["s","s","s","s","s",]
  13.  
  14. text_file = open("stan_gry.txt", "w")
  15.  
  16.  
  17. class Location:
  18. def __init__(self, moves, actions, keys):
  19. self.moves = moves
  20. self.actions = actions
  21. self.keys = keys
  22. 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." \
  23. "\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." \
  24. "\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" \
  25. "[up] Przed toba znajduja sie szerokie schody"
  26.  
  27.  
  28. def help_file():
  29. print("\n************************************************\n")
  30.  
  31. print("Twoim zadaniem jest rozwiazac zagadke: gdzie znajduja sie Insygnia Krolewskie\n")
  32.  
  33. print("Aby zmienic lokalizacje wpisz 'move'.")
  34.  
  35. print("Prosze uzywac numerow pomieszczen w celu nawigacji.\n")
  36.  
  37. print("Aby skorzystac z inwentarza podaj nazwe obiektu, a program wyswietli co mozesz z nimi zrobic\n")
  38.  
  39. print("Aby wyswietlic opis pokoju, w ktorym sie znajdujesz, wpisz 'opis'.\n")
  40.  
  41. print("Aby wyswietlic te instrukcje wpisz 'help'.\n")
  42.  
  43. print("Aby wyswietlic swoje przedmioty wpisz 'inventory'\n")
  44.  
  45. print("Wcisnij ENTER aby kontynuowac\n")
  46. input()
  47.  
  48. print("\n************************************************\n")
  49.  
  50.  
  51. start_room_keys = {"light": "off"}
  52. start_room = Location(("1", "2", "3", "4", "5", "6", "sala_tronowa", "jadalnia", "kuchnia", "biblioteka", "czytelnia",
  53. "pokoj_skryby", "hall"),
  54. ("look", "light", "light switch", "skrzynia", "otworz"), start_room_keys)
  55.  
  56.  
  57. def start_room_moves_actions(player_input):
  58. if player_input in start_room.moves:
  59. start_room_moves(player_input)
  60. elif player_input in start_room.actions:
  61. start_room_actions(player_input)
  62. else:
  63. print("\nNiepoprawne polecenie!\n")
  64. play_level_one()
  65.  
  66.  
  67. def start_room_moves(player_move):
  68. rooms_in = []
  69. print(len(inventory))
  70.  
  71. if len(inventory) < 5:
  72. if player_move == "1" or player_move == "sala_tronowa":
  73. player_data["location"] = "Sala tronowa - Pierwszy pokoj po lewej stronie od hallu"
  74. player_data["location_name"] = "sala_tronowa"
  75. # text_file.write("Byles w sali tronowej\n")
  76. sala_tronowa(input("Znajdujesz sie w Sali Tronowej\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
  77.  
  78.  
  79. elif player_move == "2" or player_move == "jadalnia":
  80. player_data["location"] = "Jadalnia - Drugi pokoj po lewej stronie hallu."
  81. player_data["location_name"] = "jadalnia"
  82. # text_file.write("Byles w jadalni.\n")
  83.  
  84. jadalnia(input("Znajdujesz sie w Jadalni\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
  85.  
  86.  
  87.  
  88. elif player_move == "3" or player_move == "kuchnia":
  89. player_data["location"] = "Znajdujesz sie w kuchni."
  90. player_data["location_name"] = "kuchnia"
  91. text_file.write("Byles w kuchni\n")
  92. print("Znajdujesz sie w kuchni\n")
  93.  
  94. kuchnia(input("Znajdujesz sie w kuchni\n [look] rozejrzyj sie \n [quest] wykonaj zadanie"))
  95.  
  96. elif player_move == "4" or player_move == "biblioteka":
  97. player_data["location"] = "Znajdujesz sie w bibliotece."
  98. player_data["location_name"] = "biblioteka"
  99. print("Znajdujesz sie w bibliotece.")
  100.  
  101. biblioteka(input("Znajdujsz sie w bibliotece\n[look] rozejrzyj sie \n [quest] wykonaj zadanie "))
  102.  
  103.  
  104. elif player_move == "5" or player_move == "czytelnia":
  105.  
  106. player_data["location"] = "Znajdujesz sie w czytelni."
  107. player_data["location_name"] = "czytelnia"
  108. print("Znajdujesz sie w czytelni.\n")
  109.  
  110. czytelnia(input("Znajdujsz sie w czytelnii.\n[look] rozejrzyj sie \n[quest] wykonaj zadanie "))
  111.  
  112. elif player_move == "hall":
  113. start_room_actions(input("[look] Rozejrzyj sie \n[odpal]Zapal pochodnie. \n[skrzynia]Otworz wieko skrzyni"))
  114. if start_room.keys["light"] == "off":
  115. print("Tu jest za ciemno? Czy chcesz odpalic pochodnie?\n")
  116. else:
  117. print("Przed Toba znajduje sie skrzynia.\n")
  118.  
  119. elif len(inventory) >= 5 and len(inventory) < 10:
  120. print("POZIOM 2")
  121. if player_move == "6":
  122. player_data["location"] = "Pierwszy etap walki ze smokiem"
  123. player_data["location_name"] = "atak"
  124. # text_file.write("Zaatakowales smoka\n")
  125.  
  126. atak(input("Wychodzisz po schodach na pietro. \n[look] Rozejrzyj sie. \n[quest] Wykonaj zadanie"))
  127.  
  128. elif player_move == 7:
  129. player_data["location"] = "[7] Drugi etap walki ze smokiem"
  130. player_data["location_name"] = "obrona"
  131. # text_file.write("Bronisz sie przed ciosem smoka\n")
  132.  
  133. obrona(input(
  134. "Skutecznie zadany cios niestety rozjuszyl potwora! \n[look] Rozejrzyj sie. \n[quest] Wykonaj zadanie."))
  135.  
  136. elif player_move == 8:
  137. pass
  138. elif player_move == 9:
  139. pass
  140. elif player_move == 10:
  141. pass
  142. else:
  143. print("niepoprawna wartosc")
  144.  
  145.  
  146. def start_room_actions(player_action):
  147. if player_action == "look":
  148. print(
  149. "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'")
  150. elif player_action == "odpal":
  151. print(
  152. "\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."
  153. "\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."
  154. "\n\n [up] Na koncu korytarza znajduja sie szerokie schody"
  155. "\n\n Przed toba na podlodze lezy skrzynia. Aby zobaczyc jej zawartosc wpisz otworz")
  156. start_room.keys["light"] = "on"
  157. elif player_action == "skrzynia" or player_action == "otworz":
  158. if start_room.keys["light"] == "off":
  159. print("Najpierw odpal pochodnie!\n")
  160. else:
  161. print("\nW skrzyni znajduje sie kawalek pergaminu. Nie mozesz uwierzyc w to, co widzisz\n")
  162. print("\n Drogi przybyszu!\n W Twierdzy znajduja sie zagubione insygnia krolewskie!\n"
  163. "Aby dotrzec do nich musisz pokonac wiele niebezpieczenstw oraz rozwiazac niejedna zagadke!\n\n Powodzenia!")
  164.  
  165.  
  166. def sala_tronowa(player_action):
  167. if player_action == "look":
  168. print("Znajdujesz sie w sali tronowej. Twoim oczom ukazuje sie tron strzezony przez postac w zbroi")
  169.  
  170. elif player_action == "quest":
  171.  
  172. print("Znajdujesz sie w sali tronowej")
  173. print("Twoja droge zagradza Znudzony Rycerz.\n"
  174. "Proponuje partie gry w kosci\nW zamian za wygrana odda ci swoj miecz!"
  175. "Rzuc tak, aby kazda z nich pokazywala taka sama liczbe oczek.")
  176.  
  177. min = 1
  178. max = 6
  179.  
  180. roll_again = "tak"
  181.  
  182. while roll_again == "tak" or roll_again == "y":
  183. print("Wykonuje rzut...")
  184. print("Kosci pokazuja...")
  185. x = random.randint(min, max)
  186. y = random.randint(min, max)
  187. print(x)
  188. print(y)
  189.  
  190. if x == y:
  191. print("Taki sam wynik")
  192. inventory.append("miecz")
  193. elif x > y:
  194. print("Rozne wyniki")
  195. roll_again = input("Czy chcesz rzucic jeszcze raz?")
  196.  
  197. print("Gratulacje! Przechodzisz dalej!")
  198.  
  199.  
  200. def jadalnia(player_action):
  201. if player_action == "look":
  202. print("Jestes w jadalni")
  203. elif player_action == "quest":
  204. # print("Przed toba lezy tarcza. Czy chesz ja podniesc?")
  205. # pick_up = input()
  206. # if pick_up == "tak":
  207. # inventory.append("tarcza")
  208. # else:
  209. # pass
  210.  
  211. print(
  212. "Spotykasz Kucharke. \nJej syn zginal na wojnie. Chcialaby zrobic dobry uzynek dla innych rycerzy.\n"
  213. "Zjedz tyle lyzek zupy, aby poziom najedzenia byl wyzszy niz 3. Uzyj komendy 'jedz'.")
  214. hunger = 0
  215.  
  216. while hunger < 4:
  217. eat = input("Czy chcesz dalej jesc?")
  218. if eat == "jedz":
  219. hunger += 1
  220. print("Twoj poziom glodu to:", hunger)
  221. if hunger > 3:
  222. print("Wzruszona Kucharka ofiaruje Ci tarcze swojego syna")
  223. inventory.append("Tarcza")
  224. else:
  225. continue
  226. else:
  227. print("Zla komenda")
  228.  
  229.  
  230. def kuchnia(player_action):
  231. if player_action == "look":
  232. print("Jestes w kuchni")
  233. elif player_action == "quest":
  234. print("Wchodzac do kuchni zuwazasz starca. Nie ma od sily wstac po miske z potrawa.")
  235. print("Na palenisku gotuje sie potrawka z indyka. Wymaga posolenia! Ile razy trzeba dodac soli?")
  236. number_salt = int(input("Podaj liczbe 1-5"))
  237. for i in range(number_salt):
  238. print("Mieszaj w garnku")
  239. print("Dodaj soli")
  240. print(
  241. "Podajesz Starcowi miske z potrawka. Potrawka jest pyszna! W podziekowaniu Starzec ofiaruje Ci fiolke z magicznym napojem.")
  242. inventory.append("magiczny napoj")
  243.  
  244.  
  245. def biblioteka(player_action):
  246. if player_action == "look":
  247. print("Jestes w bibliotece")
  248. elif player_action == "quest":
  249.  
  250. print("W biblitece znajduje sie wiele innych ksiazek. ")
  251. reading = input("Czy chcesz przeczytac jedna z nich?")
  252. if reading == "tak":
  253. choose_book = input("Wybierz tytul: \n 'Kroniki Krolewskie' \n 'Atlas botaniczny' \n 'Ksiega zaklec'")
  254. if choose_book == "Kroniki Krolewskie":
  255. print("...Historia Krola Twierdzy...")
  256. elif choose_book == "Atlas botaniczny":
  257. print("...Opis roslin...")
  258. elif choose_book == 'Kiega zaklec':
  259. print("...Magiczne zaklecia...")
  260. print("Ta ksiega moze nam sie jeszcze przydac! Chowasz ja do swojej sakwy")
  261. inventory.append("ksiega_zaklec")
  262. else:
  263. pass
  264. elif reading == "nie":
  265. pass
  266.  
  267.  
  268. def czytelnia(player_action):
  269. if player_action == "look":
  270. print("Jestes w czytelnii")
  271. elif player_action == "quest":
  272.  
  273. print("Spotykasz sympatycznego skrybe")
  274. print("Proponuje Ci on partie gry w kolko i krzyzyk!")
  275.  
  276. def tic_tac_toe():
  277. board = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  278. end = False
  279. 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))
  280.  
  281. def draw():
  282. print(board[0], board[1], board[2])
  283. print(board[3], board[4], board[5])
  284. print(board[6], board[7], board[8])
  285. print()
  286.  
  287. def p1():
  288. n = choose_number()
  289. if board[n] == "X" or board[n] == "O":
  290. print("\nTutaj nie mozesz zakreslic!")
  291. p1()
  292. else:
  293. board[n] = "X"
  294.  
  295. def p2():
  296. n = choose_number()
  297. if board[n] == "X" or board[n] == "O":
  298. print("\nTutaj nie mozesz zakreslic!")
  299. p2()
  300. else:
  301. board[n] = "O"
  302.  
  303. def choose_number():
  304. while True:
  305. while True:
  306. a = input()
  307. try:
  308. a = int(a)
  309. a -= 1
  310. if a in range(0, 9):
  311. return a
  312. else:
  313. print("\nTej liczby nie ma na tablicy")
  314. continue
  315. except ValueError:
  316. print("\nTo nie jest numer. Sprobuj jeszcze raz")
  317. continue
  318.  
  319. def check_board():
  320. count = 0
  321. for a in win_commbinations:
  322. if board[a[0]] == board[a[1]] == board[a[2]] == "X":
  323. print("Wygrales!\n")
  324. print("W nagrode dostajesz od mnicha magiczna rozdzke\n")
  325. inventory.append("rozdzka")
  326. return True
  327.  
  328. if board[a[0]] == board[a[1]] == board[a[2]] == "O":
  329. print("Mnich wygral!\n")
  330. print("Podajecie sobie dlonie!\n")
  331. return True
  332. for a in range(9):
  333. if board[a] == "X" or board[a] == "O":
  334. count += 1
  335. if count == 9:
  336. print("Gra konczy sie remisem\n")
  337. return True
  338.  
  339. while not end:
  340. draw()
  341. end = check_board()
  342. if end == True:
  343. break
  344. print("Wybierz gdzie postawic X")
  345. p1()
  346. print()
  347. draw()
  348. end = check_board()
  349. if end == True:
  350. break
  351. print("Wybierz, gdzie mnich stawia O")
  352. p2()
  353. print()
  354.  
  355. if input("Zagraj jeszcze raz (y/n)\n") == "y":
  356. print()
  357. tic_tac_toe()
  358.  
  359. tic_tac_toe()
  360.  
  361.  
  362. def atak(player_action):
  363. if player_action == "look":
  364. print("Wychodzisz schodami do gory. Twoim oczom ukazuje sie Smok!")
  365. elif player_action == "quest":
  366. print("Przed toba stoi ogromny smok. Czas na atak!")
  367. print("Oto przedmioty ktore posiadasz:", inventory)
  368. print("Wykorzystaj to, ze mozesz podejsc do smoka blisko i zaatkuj mieczem!")
  369.  
  370. attack = 5
  371. defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
  372. while defense != 0:
  373. if attack > defense:
  374. print("Za malo ")
  375. defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
  376. continue
  377. elif attack < defense:
  378. print("! Wygrana!")
  379. break
  380. else:
  381. print("Remis")
  382. defense = int(input("Podaj wartosc Twojej obrony (3-20)"))
  383. continue
  384.  
  385. def obrona(player_action):
  386. if player_action == "look":
  387. print("Piekny cios... Niestety smok nadal ma sile")
  388. elif player_action == "quest":
  389. print("Smok atakuje!")
  390. print("Oto przedmioty ktore posiadasz:", inventory)
  391. print("Wykorzystaj tarcze!")
  392.  
  393. print("Twoje zycie przed atakiem smoka to:", player_data["health"])
  394. dragon_attack = random.randint(0, 10)
  395. player_data["health"] -= dragon_attack
  396. print("Twoje zycie po ataku smoka to:", player_data["health"])
  397.  
  398.  
  399. help_file()
  400.  
  401. print(start_room.description)
  402.  
  403.  
  404. def main():
  405. print(
  406. "Witaj graczu!\n Twoim zadaniem jest znalezienie zaginionych insygniow krolewskich. Znajduja sie one w Twierdzy.")
  407.  
  408. def get_player_features():
  409. health = 100
  410. name_input = input()
  411.  
  412. if len(name_input) > 10 or len(name_input) < 1:
  413. print("Podaj swoje imie (prosze wprowadzic 1-10 liter):\n")
  414. get_player_features()
  415. else:
  416. player_data["name"] = name_input
  417.  
  418. get_player_features()
  419. play_level_one()
  420.  
  421.  
  422. def play_level_one():
  423. player_input = input("Co chcialbys teraz zrobic?\n").lower()
  424.  
  425. if player_input == "opis":
  426. current_location = player_data["location"]
  427. print("\n" + str(current_location))
  428. elif player_input == "help":
  429. help_file()
  430. elif player_input == "":
  431. print("Sprobuj jeszcze raz")
  432. elif player_input == "move":
  433. start_room_moves(input("Podaj nr pokoju"))
  434. elif player_input == "inventory":
  435. print(inventory)
  436. elif player_input == "save":
  437. zapis_stanu = open("zapis_stanu.txt", "w")
  438. zapis_stanu.writelines(inventory)
  439. text_file.close()
  440. else:
  441. current_location_name = player_data["location_name"]
  442. if current_location_name == "start_room":
  443. start_room_moves_actions(player_input)
  444. current_location_name = player_data["location_name"]
  445. if current_location_name == 'start_room':
  446. start_room_moves_actions(player_input)
  447.  
  448. if player_data["health"] < 1:
  449. print("Niestety umarles, twoj poziom zycia wynosi mniej niz 1. ")
  450. else:
  451. play_level_one()
  452.  
  453.  
  454. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement