====== Kámen-nůžky-papír ====== {{:2014_15:kamen-nuzky-papir:ka_men_nůžky_papi_r.png?250 |„Kámen, nůžky, papír“ od Rock_paper_scissors.jpg: TheCoffee from English Wikipediaderivative work: Podzemnik (talk) – Rock_paper_scissors.jpg. Licencováno pod CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:K%C3%A1men,_n%C5%AF%C5%BEky,_pap%C3%ADr.png#mediaviewer/File:K%C3%A1men,_n%C5%AF%C5%BEky,_pap%C3%ADr.png}}aneb stříhaná, tu asi každý hrál. Pro osvěžení pravidel a dozvědění se pár zajímavostí navrch nahlédněte na [[http://cs.wikipedia.org/wiki/Kámen,_nůžky,_pap%C3%ADr|wikipedii]]. Úkolem je naprogramovat hráče, který bude hrát (stříhat) se všemi ostatními. Pokud chcete vyhrát ;-) můžete zkusit [[https://www.youtube.com/watch?v=rudzYPHuewc|video návod]] ===== specifikace ===== Většinu asi snadno pochopíte z jednoduchých příkladů uvedených níže. Nicméně, * implementace vašeho hráče je očekávána v souboru ''player.py'' * třída ''MyPlayer'' * hráč musí mít alespoň metodu/funkci ''play'', která navrátí validní tah, tedy 'R' nebo 'P' mebo 'S' * může mít volitelně metodu ''record_opponent_gesture'', která akceptuje právě jeden vstupní parametr - soupeřovo gesto v posledním kole. ++++ Příklad jednoduchého hráče bez paměti: | class MyPlayer: ''' formalni definice toho, ze je to trida MyPlayer, neboli MujHrac jinak zatim nedela nic ''' def play(self): ''' zakladni hraci funkce :return: 'R' nebo 'P' nebo 'S' pismenka odpovidaji anglickemu Rock, Paper, Scissors ''' return 'R' # priklad navratu hodnoty 'R', nic vice if __name__ == "__main__": # nasledujici kod bude vykonan, pokud bude player.py spusten jako program hrac = MyPlayer() # vytvoreni hrace gesto = hrac.play() # hrac je vyzvan k tomu, aby hral print("Vzorovy hrac hral: "+gesto) ++++ ++++ Příklad jednoduchého hráče s pamětí | class MyPlayer: ''' formalni definice toho, ze je to trida MyPlayer, neboli MujHrac ''' def __init__(self): self.opponent_last_gesture = None # na zacatku zadne def play(self): ''' zakladni hraci funkce :return: 'R' nebo 'P' nebo 'S' pismenka odpovidaji anglickemu Rock, Paper, Scissors ''' return 'R' # priklad navratu hodnoty 'R', nic vice def record_opponent_gesture(self,gesture): ''' zaznamena gesto soupere v prave dokoncene hre :param gesture: 'R' or 'P' or 'S' :return: neni specifikovano ''' # ulozeni gest do pameti hrace self.opponent_last_gesture = gesture if __name__ == "__main__": # nasledujici kod bude vykonan, pokud bude player.py spusten jako program hrac = MyPlayer() # vytvoreni hrace gesto = hrac.play() # hrac je vyzvan k tomu, aby hral print("Vzorovy hrac hral: "+gesto) ++++