Rock-paper-scissors and generator's send
Level: Advanced (score: 4)
Generators are cool right?! Did you know you can send values into a generator by calling its send(value) method? Crazy right?
Let's do a little experiment: complete Rock-paper-scissors below, where player_choice
receives the next value via send
, if q is entered raise a StopIteration
.
So the game would work something like this (see all scenarios in the tests):
>>> from rps import game >>> game = game() >>> next(game) Welcome to Rock Paper Scissors >>> game.send('rock') paper beats rock, you lose! >>> game.send('paper') paper beats rock, you win! >>> game.send('rock') tie! >>> game.send('q') Traceback (most recent call last): ... StopIteration
Pretty cool no? As this is an Advanced Bite we're not giving too much away. Good luck, have fun and keep calm and code in Python!