Advertisement
Sanady

Untitled

Dec 14th, 2019
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.16 KB | None | 0 0
  1. '''
  2. Projekt: Clovece nezlobsa
  3. Vypracoval: Ivan Rener
  4. '''
  5.  
  6. from random import SystemRandom
  7. import math
  8.  
  9.  
  10. ############### Poznamka: Kazdy hrac na zaciatku hry maju sancu 3x zavrtiet kocku pokial nedostanu 6 a nevihodia figurku na cestu
  11. # Cistenie obrazovky tak ze naspamujeme nove riadky
  12. def ocist():
  13. print('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'); # 20x novy riadok, urobi vec :P
  14.  
  15.  
  16. # Pauzu urobime v skripte aby sme dali cas hracu precitat si navod
  17. def pauza():
  18. input('Stlacte ENTER pre pokracovanie...')
  19.  
  20.  
  21. # Pred ako co zacneme potrebujeme si vicistit command line
  22. ocist()
  23.  
  24. # Vstup pre dosku, aka bude velka (minimum je 5)
  25. print('Vstupna hodnota pre velkost dosky')
  26. print('Poznamka: Hodnota musi byt 5 alebo vecie a neparne cislo\n\n\r')
  27.  
  28. nsize = int(input('N = '))
  29. # nsize = 9 # Debug pre test, aby som nemusel vzdy zadavat istu hodnotu
  30.  
  31. ### N musi byt aspon 5 aby nasledovalo rovnicu (n-3)/2 domcekov pre hracov
  32. if (nsize < 5):
  33. print('N musi byt neparne cislo a vacsie ako 4,')
  34. print('kedze ste zadali nespravne cislo, vygeneruje sa cislo 9.')
  35. nsize = 9
  36.  
  37. if (nsize % 2 == 0):
  38. print('N musi byt neparne cislo,')
  39. print('namiesto poskytnuteho cisla ', nsize, ' pouzijeme ', nsize + 1)
  40. nsize += 1
  41.  
  42. # Zvazime to, ze su toto konstanty
  43. MAX_PANACIKOV = int((nsize - 3) / 2)
  44. STREDNA_POLOHA = int((nsize - 1) / 2)
  45. DLZKA_CESTY = (STREDNA_POLOHA * 8)
  46.  
  47. # V sucasnosti hrajuci hrac (moze byt 0 do 1 a to je A,B)
  48. hracHra = int(0) # 0 = A, 1 = B
  49. hracovPanacik = {0: 'A', 1: 'B'}
  50.  
  51. # -2 = v domceku, -1 = nie je na ceste, 0 to (n-1) = pole na ceste
  52. hracovPanacikPrecestoval = [[int(-1) for x in range(MAX_PANACIKOV)], [int(-1) for x in range(MAX_PANACIKOV)]]
  53.  
  54. ### definovanie premennej kocky tak, aby sme ju mohli použit neskor (0 je invalidna hodnota/nenastavenne)
  55. kocka = int(0) # Hodnoty kocky (hodnoty od 1 - 6)
  56.  
  57. # Deklarujeme premennu dosky, ale teraz len ako zastupny symbol (takže možeme odkazovat vo funkciach)
  58. doska = None
  59.  
  60.  
  61. #################################################################################################
  62. #################################################################################################
  63.  
  64. ### Generuje dosku s veľkosťou n * n, vyplni cesty a domy
  65. def genSachovnica(n):
  66. # Generuje prazdnu dosku
  67. sachovnica = [[' ' for x in range(nsize)] for y in range(nsize)]
  68.  
  69. for i in range(n):
  70. for x in range(n):
  71. # Malo by byt prazno miesto ale nastavime zase v kazdom pripade ( neuskodi :D)
  72. sachovnica[i][x] = ' '
  73.  
  74. # kontroluvanie vsetkych 4 smerov (hore/dolu/lavo/pravo)
  75. if (n - 1) / 2 == i + 1 or (n - 1) / 2 == x + 1 or (n + 1) / 2 == i or (n + 1) / 2 == x:
  76. sachovnica[i][x] = '*'
  77.  
  78. # V tomto kroku potrebujeme iba naplnit medzeri ( spojit cestu )
  79. sachovnica[0][STREDNA_POLOHA] = '*'
  80. sachovnica[STREDNA_POLOHA][0] = '*'
  81. sachovnica[n - 1][STREDNA_POLOHA] = '*'
  82. sachovnica[STREDNA_POLOHA][n - 1] = '*'
  83.  
  84. # Domceky
  85. for i in range(1, MAX_PANACIKOV + 1):
  86. # Hore
  87. sachovnica[i][STREDNA_POLOHA] = 'D'
  88. # Dolu
  89. sachovnica[n - (i + 1)][STREDNA_POLOHA] = 'D'
  90. # Lavo
  91. sachovnica[STREDNA_POLOHA][i] = 'D'
  92. # Vpravo
  93. sachovnica[STREDNA_POLOHA][n - (i + 1)] = 'D'
  94.  
  95. # Naplnanie nasho vstredu s X
  96. sachovnica[STREDNA_POLOHA][STREDNA_POLOHA] = 'X'
  97.  
  98. return sachovnica;
  99.  
  100.  
  101. #################################################################################################
  102. #################################################################################################
  103.  
  104.  
  105. # Logika pre znazornenie figuriek na poli
  106. # Nie je hlupe ak to robi :D
  107. def prikazPanacika(hrac=0, pole=0):
  108. # Hrac A startuje od 0, ale hrac 2 musi zacat s druhej strany ceste
  109. if (hrac == 1):
  110. pole = (pole + (DLZKA_CESTY / 2))
  111. pole = pole % DLZKA_CESTY
  112.  
  113. a = 0
  114. b = STREDNA_POLOHA - 1
  115.  
  116. # Mozno je lepsia cesta na toto ale robi to aj takto :D
  117. if (pole >= 0 and pole < 2):
  118. a = 0
  119. b = STREDNA_POLOHA - 1 + (pole)
  120. elif (pole < (2 + STREDNA_POLOHA)):
  121. a = (pole - 2)
  122. b = STREDNA_POLOHA + 1
  123. elif (pole < (2 + STREDNA_POLOHA + STREDNA_POLOHA) - 1):
  124. a = STREDNA_POLOHA - 1
  125. b = STREDNA_POLOHA + 1 + (pole - (2 + STREDNA_POLOHA) + 1)
  126. elif (pole < (3 + STREDNA_POLOHA + STREDNA_POLOHA)):
  127. a = STREDNA_POLOHA - 1 + (pole - (2 + STREDNA_POLOHA + STREDNA_POLOHA - 2))
  128. b = nsize - 1
  129. elif (pole < (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  130. x = (2 + STREDNA_POLOHA + STREDNA_POLOHA)
  131. a = STREDNA_POLOHA + 1
  132. b = nsize - 1 - (pole - x)
  133. elif (pole < (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA) - 1):
  134. x = (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA) - 1
  135. a = STREDNA_POLOHA + 1 + (pole - x)
  136. b = STREDNA_POLOHA + 1
  137. elif (pole < (3 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  138. x = (STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)
  139. a = nsize - 1
  140. b = STREDNA_POLOHA + 1 - (pole - x)
  141. elif (pole < (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  142. x = (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)
  143. a = nsize - 1 - (pole - x)
  144. b = STREDNA_POLOHA - 1
  145. elif (pole < (
  146. 1 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  147. x = (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA) - 1
  148. a = STREDNA_POLOHA + 1
  149. b = STREDNA_POLOHA - 1 - (pole - x)
  150. elif (pole < (
  151. 3 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  152. x = (STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)
  153. a = STREDNA_POLOHA + 1 - (pole - x)
  154. b = 0
  155. elif (pole < (
  156. 2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  157. x = (2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)
  158. a = STREDNA_POLOHA - 1
  159. b = 0 + (pole - x)
  160. elif (pole < (
  161. STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA)):
  162. x = (
  163. 2 + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA + STREDNA_POLOHA) - 1
  164. a = STREDNA_POLOHA - 1 - (pole - x)
  165. b = STREDNA_POLOHA - 1
  166. elif (pole >= DLZKA_CESTY):
  167. print('Domcek!!!')
  168. return
  169. doska[int(a)][int(b)] = hracovPanacik[hrac]
  170. return
  171.  
  172.  
  173. #################################################################################################
  174. #### Hlavna funckia pre prikazovanie
  175. #################################################################################################
  176. def tlacSachovnicu(sachovnica):
  177. # Vytlačime nove riadky, aby sme vymazali obrazovku a vytvorili novu mriežku
  178. ocist()
  179.  
  180. # Zotieranie figuriek s mriezky
  181. for i in range(nsize):
  182. for x in range(nsize):
  183. if (((i >= 1 and i <= 4) or (i <= (nsize - 2) and i >= (nsize - 5))) and (x == STREDNA_POLOHA)):
  184. continue
  185.  
  186. if (sachovnica[i][x] == 'A' or sachovnica[i][x] == 'B'):
  187. sachovnica[i][x] = '*'
  188.  
  189. # Pridavanie vsetkych figuriek na ceste do matice
  190. for hrac in range(2):
  191. for figurka in range(MAX_PANACIKOV):
  192. if (hracovPanacikPrecestoval[hrac][figurka] >= 0) and (
  193. hracovPanacikPrecestoval[hrac][figurka] < DLZKA_CESTY):
  194. prikazPanacika(hrac, hracovPanacikPrecestoval[hrac][figurka])
  195.  
  196. ### Tlač najvyššieho poradoveho čisla
  197. print('', end=' ')
  198. for i in range(nsize):
  199. ### Limitujeme ich od 0-9
  200. print(i % 10, end=' ')
  201. print('')
  202.  
  203. # Prikazovanie matice
  204. for i in range(nsize):
  205. print(i % 10, end=' ')
  206. for x in range(nsize):
  207. print(str(sachovnica[i][x]), end='')
  208. print(' ', end='')
  209. print('') # Po defaulte python dava \n na konci print
  210.  
  211. print('')
  212. print('')
  213.  
  214.  
  215. #################################################################################################
  216. #################################################################################################
  217.  
  218.  
  219. def najdiHracovogPanacikaNaCeste(hrac, figurka): # 1 - 4 | 1 = prvy, 2 = druhy,...
  220.  
  221. pocitat = 1
  222. for i in range(MAX_PANACIKOV):
  223. if (-1 < hracovPanacikPrecestoval[hracHra][i] < DLZKA_CESTY):
  224. if (pocitat == figurka):
  225. return i
  226. else:
  227. pocitat += 1
  228. return -1
  229.  
  230.  
  231. #################################################################################################
  232. #################################################################################################
  233.  
  234.  
  235. def hracoviPanacikoviaNaCeste(hracHra=0):
  236. pocitat = int(0)
  237. for i in range(MAX_PANACIKOV):
  238. if (-1 < hracovPanacikPrecestoval[hracHra][i] < DLZKA_CESTY):
  239. pocitat += 1
  240. return pocitat
  241.  
  242.  
  243. def hracoviPanacikoviaVDome(hracHra=0):
  244. pocitat = int(0)
  245. for i in range(MAX_PANACIKOV):
  246. if (hracovPanacikPrecestoval[hracHra][i] >= DLZKA_CESTY):
  247. pocitat += 1
  248. return pocitat
  249.  
  250.  
  251. #################################################################################################
  252. #################################################################################################
  253.  
  254.  
  255. # Return
  256. # Figurky v poli
  257. # -1 - prazdno
  258. # 0 - hrac A
  259. # 1 - hrac B
  260. # ID Figurky (-1 ak nieto)
  261.  
  262. def preverPolia(pole):
  263. for i in range(MAX_PANACIKOV):
  264. if (hracovPanacikPrecestoval[0][i] != -1 and hracovPanacikPrecestoval[0][i] == pole):
  265. return 0, i
  266. elif (hracovPanacikPrecestoval[1][i] != -1 and int(
  267. (hracovPanacikPrecestoval[1][i] + (DLZKA_CESTY / 2)) % DLZKA_CESTY) == pole):
  268. return 1, i
  269. return -1, -1
  270.  
  271.  
  272. #################################################################################################
  273. #################################################################################################
  274.  
  275. def polozNovehoPanacikaNaCestu(hrac):
  276. protihrac = (hrac + 1) % 2
  277. for i in range(MAX_PANACIKOV):
  278. # Ak figurka nie je v domceku ani na ceste, tak ju chceme vyhodit von
  279. if (hracovPanacikPrecestoval[hrac][i] == -1):
  280. preverofset = 0
  281. if (hrac == 1):
  282. preverofset = DLZKA_CESTY / 2
  283. pole = preverPolia(preverofset)
  284. if (pole[0] == protihrac):
  285. # Zotriet protihracovu figurku
  286. hracovPanacikPrecestoval[protihrac][pole[1]] = 0
  287.  
  288. if (pole[0] == hrac):
  289. # Pole je pouzite s nasov figurkov(nechceme ziest nasho, ci hej?)
  290. return -1
  291.  
  292. # Poloz nasu figurku na zaciatok
  293. hracovPanacikPrecestoval[hrac][i] = 0
  294. return i
  295. return -1
  296.  
  297.  
  298. # Ocakvania:
  299. # hrac - Id hraca (0 = A, 1 = B)
  300. # figurky - 0 do 3
  301. # pos - Za kolko poli nak sa posunie (zohladom na terajsie)
  302. # Returns:
  303. # 0 ak hrac nemoze posunut tu figurku(hon uz ma figurku na tej pozicii)
  304. # 1 ak posunul figurku
  305. # 2 - Ak posunul jeho figurku a ziedol/znicil protihracovu figurku
  306. # -1 do -3 v pripade ak hrac moze posunut svoju figurku do domceka
  307. # pripomienka:
  308. # funkcia neukazuje nic, iba pocita pozicie od zaciatocneho bodu
  309.  
  310. def posunHracovogPanacika(hrac, figurka, pos):
  311. # ak jeho nova pozicia je vecia ako dlzka ceste (znamena ze zichadza do domu alebo jeho figurka je zablokovana)
  312. if (hracovPanacikPrecestoval[hrac][figurka] + pos >= DLZKA_CESTY):
  313. # Vyrataj kolko pozicii vchadza
  314. domcek = ((DLZKA_CESTY - 1) - (hracovPanacikPrecestoval[hrac][figurka] + pos))
  315. # tam su iba MAX_PANACIKOV miesta v domceku, pozor na to (return 0 ak mimoisiel vsetky miesta v domceku)
  316. if (domcek < -MAX_PANACIKOV):
  317. return 0
  318.  
  319. uspech = postavVDomcek(hrac, figurka, domcek)
  320. return uspech
  321.  
  322. preverofset = 0
  323. if (hrac == 1):
  324. preverofset = DLZKA_CESTY / 2
  325.  
  326. pole = preverPolia((hracovPanacikPrecestoval[hrac][figurka] + pos + preverofset) % DLZKA_CESTY)
  327.  
  328. # Preverim ci mam svoju figurku na tej pozicii a vratim 0 ak mam
  329. if (pole[0] == hrac):
  330. print('Blokuje vas vaša vlastna figurka!')
  331. return 0
  332.  
  333. # Preverim ak protihrac ma figurku na tej pozicii a ziem ho ak ano.
  334. protihrac = (hrac + 1) % 2
  335. if (pole[0] == protihrac):
  336. # protihrac nema figurku na tej pozicii, tak zotri ju.
  337. hracovPanacikPrecestoval[protihrac][pole[1]] = -1
  338. # a poloz nasu figurku tam
  339. hracovPanacikPrecestoval[hrac][figurka] += pos
  340. return 2
  341. # posun figurku a vrat uspesne
  342. hracovPanacikPrecestoval[hrac][figurka] += pos
  343. return 1
  344.  
  345.  
  346. def postavVDomcek(hrac, figurka, pos):
  347. # posunHracovogPanacika vrati negativne cislo za kazdi domcek, takze ho iba zmenime na pozitivne (rataj to ako math.abs(figurka))
  348. if (pos < 0):
  349. pos = int(pos * (-1))
  350.  
  351. if (hrac == 0):
  352. # Prever ci je domcek plny
  353. if (doska[pos][STREDNA_POLOHA] != 'D'):
  354. return 0
  355. doska[pos][STREDNA_POLOHA] = hracovPanacik[hrac]
  356. else:
  357. if (doska[int((nsize - 1) - pos)][STREDNA_POLOHA] != 'D'):
  358. return 0
  359. doska[int((nsize - 1) - pos)][STREDNA_POLOHA] = hracovPanacik[hrac]
  360.  
  361. # Poloz ho do domceku nie kdekolvek
  362. hracovPanacikPrecestoval[hrac][figurka] = -2
  363.  
  364. panacikoviaVDomcekus = 0
  365. for i in range(MAX_PANACIKOV):
  366. if (hracovPanacikPrecestoval[hrac][figurka] == -2):
  367. panacikoviaVDomcekus
  368. if (panacikoviaVDomcekus == MAX_PANACIKOV):
  369. print('Hrac', hracovPanacik[hrac], 'zvytazil!')
  370. pauza()
  371. quit()
  372.  
  373. tlacSachovnicu(doska)
  374. return 1
  375.  
  376.  
  377. #################################################################################################
  378. #################################################################################################
  379.  
  380. # Inicializuj maticu ktoru sme uz urobili
  381. doska = genSachovnica(nsize)
  382.  
  383.  
  384. ### Počkaj na vstup a uisti sa, že je skutočne číslo, ak nie, odmietni ho a čakaj na vstup znova
  385. def vnesCislo():
  386. cislo = int(-1)
  387.  
  388. # Loop kim vneseneCislo je zmeneny (kim nestlacime cislove tlacitko)
  389. while (cislo == -1):
  390. char = input()
  391.  
  392. # prever ci je character cislo
  393. if (char.isdigit() == True):
  394. cislo = int(char)
  395.  
  396. return cislo
  397.  
  398.  
  399. # Generujeme random cislo od 1 do 6
  400. def hodKocku():
  401. kocka = SystemRandom().randint(1, 6)
  402. # print('[TEST] Vloz hodnotu kocky: ') #Debugger
  403. # kocka = vnesCislo()
  404. return kocka
  405.  
  406.  
  407. #################################################################################################
  408. #################################################################################################
  409.  
  410.  
  411. # Nas hlavny loop kde budeme robit vsetko( prikazovanie, cakanie na input a ratat vsetko)
  412. while 1 == 1:
  413.  
  414. panacikoviaNaCeste = int(hracoviPanacikoviaNaCeste(hracHra))
  415. panacikoviaVDomceku = int(hracoviPanacikoviaVDome(hracHra))
  416.  
  417. # Hrac ktory nema figurky na ceste ma 3 pokusy dostat 6
  418. pocetHraniZostalo = 3
  419.  
  420. # Ale ak hrac ma figurky na ceste, on moze hadzat kocku iba raz
  421. if (panacikoviaNaCeste > 0):
  422. pocetHraniZostalo = 1
  423.  
  424. # pokial hrac ma este pokusy
  425. while pocetHraniZostalo > 0:
  426.  
  427. # panacikoviaNaCeste a panacikoviaVDomceku mozu sa premenit na tomto mieste a aby neboli aktualizovane v hlavnom loope
  428. panacikoviaNaCeste = int(hracoviPanacikoviaNaCeste(hracHra))
  429. panacikoviaVDomceku = int(hracoviPanacikoviaVDome(hracHra))
  430.  
  431. tlacSachovnicu(doska)
  432.  
  433. print('Hrac\'i ', hracovPanacik[hracHra], ' na rade.')
  434.  
  435. print('Stlac 1 aby si zavrtel kocku')
  436. vneseneCislo = vnesCislo()
  437. if (vneseneCislo == 1):
  438.  
  439. # Hod kocku a printuj hodnotu
  440. kocka = int(hodKocku())
  441. print('Dostal si ', kocka, '!')
  442.  
  443. if (kocka == 6):
  444.  
  445. if (panacikoviaNaCeste == 0):
  446. pocetHraniZostalo = 1 # On nemal figurky na ceste, ma jeden pokus maximalne (pokial nedostane 6 zase)
  447. else:
  448. pocetHraniZostalo += 1 # Dostal 6 tak hra zas!
  449.  
  450. # Nemame figurky na ceste, tak polozim prveho ktoreho najdeme
  451. if (panacikoviaNaCeste == 0):
  452. figurka = polozNovehoPanacikaNaCestu(hracHra)
  453. tlacSachovnicu(doska)
  454. print('Dostal si 6 a vylozil si novu figurku (', figurka, ') na cestu')
  455. pauza()
  456. continue
  457.  
  458. # Iba jedna figurka na ceste, a nieto viac novych ktore sa daju pridat
  459. elif (panacikoviaNaCeste == 1 and (panacikoviaVDomceku == 3)):
  460. figurka = najdiHracovogPanacikaNaCeste(hracHra, 1)
  461. posunHracovogPanacika(hracHra, figurka, kocka)
  462. tlacSachovnicu(doska)
  463. print('Dostal si 6 a posunul si svoju figurku')
  464.  
  465. # On ma figurk(u)y na ceste (a moze polozit novu)
  466. else:
  467. if (panacikoviaNaCeste == 1):
  468. print('Stlac 1 aby si posunul tvoju figurku')
  469. else:
  470. print('Stlac 1-', panacikoviaNaCeste, 'aby si posunul figurku')
  471.  
  472. preverofset = 0
  473. if (hracHra != 0):
  474. preverofset = DLZKA_CESTY / 2
  475. pole = preverPolia(preverofset)
  476.  
  477. if (pole[0] != hracHra):
  478. print('Stlac 0 aby si vylozil novu figurku na cestu')
  479.  
  480. # Spravuj input ale iba povoli 0 ( ked moze vybrat novu figurku) alebo index figurky (pocitat)
  481. vneseneCislo = -1
  482. while (vneseneCislo == -1):
  483. vneseneCislo = vnesCislo()
  484. if (vneseneCislo == 0 and pole[0] == hracHra):
  485. vneseneCislo = -1
  486. continue
  487.  
  488. if (vneseneCislo != 0 and vneseneCislo > panacikoviaNaCeste):
  489. vneseneCislo = -1
  490.  
  491. if (vneseneCislo == 0):
  492. figurka = polozNovehoPanacikaNaCestu(hracHra)
  493. tlacSachovnicu(doska)
  494. print('Vylozili ste novu figurku (', figurka, ') na cestu')
  495. pauza()
  496. continue
  497. else:
  498. figurka = najdiHracovogPanacikaNaCeste(hracHra, vneseneCislo)
  499. uspech = posunHracovogPanacika(hracHra, figurka, kocka)
  500. tlacSachovnicu(doska)
  501.  
  502. if (uspech == 0):
  503. print('nemozete posunut tu figurku')
  504.  
  505. print('Dostal si 6, hraj znovu!')
  506.  
  507. #########################################################################################################################################
  508. #########################################################################################################################################
  509. #########################################################################################################################################
  510.  
  511. # ak nie je 6, a hrac ma figurku na ceste
  512. elif (panacikoviaNaCeste > 0):
  513. # Ak jesto iba jedna figurka na ceste, to je jedina s ktorou moze hrat(a moze? - blokovany domcek? :D)
  514. if (panacikoviaNaCeste == 1):
  515. figurka = najdiHracovogPanacikaNaCeste(hracHra, 1)
  516. uspech = posunHracovogPanacika(hracHra, figurka, kocka)
  517. tlacSachovnicu(doska)
  518. print('Dostal si ', kocka, '!')
  519.  
  520. else:
  521. print('Stlac 1-', panacikoviaNaCeste,
  522. 'aby si posunul figurku (V smere hodinových ručičiek od počiatočnej pozicie)')
  523.  
  524. # Spravuj input vnesCislo ale iba indexi figuriek (pocitat)
  525. vneseneCislo = -1
  526. while (vneseneCislo == -1):
  527. vneseneCislo = vnesCislo()
  528. if (vneseneCislo == 0 or vneseneCislo > panacikoviaNaCeste):
  529. vneseneCislo = -1
  530.  
  531. figurka = najdiHracovogPanacikaNaCeste(hracHra, vneseneCislo)
  532. uspech = posunHracovogPanacika(hracHra, figurka, kocka)
  533. tlacSachovnicu(doska)
  534.  
  535. # zmensi hracove pokusy
  536. pocetHraniZostalo -= 1
  537. pauza()
  538. tlacSachovnicu(doska)
  539. hracHra = (hracHra + 1) % 2
  540. print('Nasledovny hrac\'i na rade')
  541. pauza()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement