Hits and Misses

Let’s go through each module we’ve defined so far, and write the functions we need to play the game.

We'll cover the following

Let’s define the functions we need to play the game in each module we’ve covered so far. Coordinates don’t need any more functionality.

Let’s begin with guesses.

Keep track of guesses

As players guess coordinates in the game, we need to keep track of those guesses to accurately represent their opponent’s board. We’ll need to add the guessed coordinates but not remove them.

We need a function to add the guessed coordinates to a Guesses struct and determine whether they go into the set of the hits or of the misses. We’ll create two function clauses for an add/3 function. Each clause will pattern match on whether the guess is a :hit or a :miss and put the coordinate in the appropriate set.

In order for this to work, we need to change the alias function slightly to include the Coordinate module:

alias IslandsEngine.{Coordinate, Guesses}

Get hands-on with 1400+ tech skills courses.