Hand Cricket
When Krishna and I attended middle school, we, along with our entire class used to play hand cricket (colloquially called 'Sooli'). Hand cricket was a fun interpretation of the beloved game of cricket, but played in a fashion similar to rock-paper-scissors.
The game begins with two players, one taking the role of a batsman and the other, the bowler. Each player shows an action between 0 - 6, 0 being represented by a fist (think rock), 1, 2, etc. with as many fingers shown (excluding 1 with the thumb). The thumb being shown by itself is not a 1 but, represents 6. The batsman will draw any of these numbers and a score equivalent of the number will be added as runs. If the batsman were to show 0, the number shown by the bowler, will be added as runs. If the batsman and the bowler show the same number, the batsman is out.
The batsman's job is to score as much runs as possible. Once the batsman is out, the players change roles and the inning is considered to have ended. It is now the task of the second inning batsman (who was the original bowler) to chase down the target set by the first inning batsman (who is now the bowler). If the target was chased, the second batsman wins, otherwise, the first batsman wins.
This codebase contains abstract classes for Sooli that we both developed while I was on vacation. The example file uses some 'random' players to play the wonderful game of 'Sooli'!