go-fish is the game “Go Fish”, a traditional children's card game.
The computer deals the player and itself seven cards, and places the rest of the deck face-down (figuratively). The object of the game is to collect “books”, or all of the members of a single rank. For example, collecting four 2's would give the player a “book of 2's”.
The options are as follows:
The computer makes a random decision as to who gets to start the game, and then the computer and player take turns asking each other for cards of a specified rank. If the asked player has any cards of the requested rank, they give them up to the asking player. A player must have at least one of the cards of the rank they request in their hand. When a player asks for a rank of which the other player has no cards, the asker is told to “Go Fish!”. Then, the asker draws a card from the non-dealt cards. If they draw the card they asked for, they continue their turn, asking for more ranks from the other player. Otherwise, the other player gets a turn.
When a player completes a book, either by getting cards from the other player or drawing from the deck, they set those cards aside and the rank is no longer in play.
The game ends when either player no longer has any cards in their hand. The player with the most books wins.
go-fish provides instructions as to what input it accepts.
The computer cheats only rarely.