Kámen-nůžky-papír
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 wikipedii. Úkolem je naprogramovat hráče, který bude hrát (stříhat) se všemi ostatními.
Pokud chcete vyhrát můžete zkusit 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)