====== 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)
++++