Seminární skupina Stančík IB111 Úvod do programování

2. domací úloha

Domací úkol 2

Človeče, nezlob se

Nasimulujte hru, človeče, nezlob se. Hrací plán bude pre každého hráča na jednom riadku. Hráč začína z pozície 'home' a vyhráva, keď dobehne do pozície finish. Naprogramujete funkciu 'def pix(length, leg)':

  • length - počet políčok medzi home a finish
  • leg - maximálny počet kôl, ktoré hráči môžu hrať
Hru budú hrať dva hráči Mat a Pat. V každom pole im program vygeneruje hod kockou (vygeneruje číslo 1-6) a posunie sa o danú pozíciu. Pre hru platia nasledujúce pravidlá:
  • Hráč sa posunie o daný počet políčok, ako hodil na kocke
  • Ak hráč hodí 6. Posunie sa o 6 a hádže znova. (Ďaľší hráč sa dostane na rad, až keď tento hráč hodí iné číslo ako 6)
  • Ak hráč Mat sa posunie na pozíciu, kde už stojí hráč Pat, Pat sa musí presunúť späť na začiatok. (Rovnako to platí i opačne)
  • Ak hráč hodí väčšie číslo ako je vzdialenosť od cieľa, tak stojí na mieste. (Musí hodiť presne)
  • Hráč, ktorý sa dostane prvý do cieľa vyhráva
  • Ak uplynie požadovaný počet kôl(leg), hrá končí remízou
Váš program po každom kole vypíše:
  • Koľko hodil každý hráč
  • Aktuálnu pozíciu každého hráča (zarovnané pod seba)

Príklad

pix(9, 5) Welcome
1. leg
Mat: 5, Pat:3
Home . . . . M . . . . Finish
Home . . P . . . . . . Finish

2. leg
Mat: 2, Pat:5
Home . . . . . . M . . Finish
Home . . . . . . . P . Finish

3. leg
Mat: 1, Pat:6, 1
Home . . . . . . . M . Finish
Home . . . . . . P . . Finish

3. leg
Mat: 1, Pat:2
Home M . . . . . . . . . Finish
Home . . . . . . . . P Finish

4. leg
Mat: 6,2 Pat:1
Home . . . . . . . M . Finish
Home . . . . . . . . . P Finish

P wins!
Naprogramujte aj druhú funkciu def pix_analyse(lenght, leg, count):
  • length - počet políčok medzi home a finish
  • leg - maximálny počet kôl, ktoré hráči môžu hrať
  • count - počet jednotlivých hier
Funkcia bude opakovane spúštať funkciu pix (možno ju bude nutno upraviť). Spustí ju count-krát, a následne vypiše štatistiku výher:
  • Počet výher Mata
  • Počet výher Pata
  • Počet remíz
Na konci skriptu spustite funkciu 20 políčok, 12 kôl =>pix(20, 12)
Svoje riešenia vkládajte do odevzdávárny 2 úkolu. Odkaz nižšie
Termín 23. 10. 2016 (nedeľa) 16:00