Games: Supervised Score Tracker
Mix.install([
{:jason, "~> 1.4"},
{:kino, "~> 0.9", override: true},
{:youtube, github: "brooklinjazz/youtube"},
{:hidden_cell, github: "brooklinjazz/hidden_cell"}
])
Navigation
Home Report An Issue Games: Supervisor SetupTaskGames: Supervised Score Tracker
Refactor your existing Games: Score Tracker module to be a named process and configure it with your Games Supervisor.
Ensure your existing Games: Score Tracker test suite continue to pass. You may need to alter it slightly now
that Games.ScoreTracker is a named process.
If you don’t already have a ScoreTracker module you can use the one below.
defmodule ScoreTracker do
use GenServer
def start_link(opts) do
name = Keyword.get(opts, :name, __MODULE__)
GenServer.start_link(__MODULE__, [], name: name)
end
def add(pid \\ __MODULE__, points) do
GenServer.call(pid, {:add, points})
end
def get(pid \\ __MODULE__) do
GenServer.call(pid, :get)
end
@impl true
def init(_opts) do
{:ok, 0}
end
@impl true
def handle_call(:get, _from, state) do
{:reply, state, state}
end
@impl true
def handle_call({:add, points}, _from, state) do
{:reply, state + points, state + points}
end
end
Bonus: Track Scores
Whenever a player wins a round of Guessing Game, RockPaperScissors, or Wordle, increase the player’s score.
(Optional) Consider printing the current score every time you increment it to make debugging and visual display easier. (Optional) Each game can be worth the same amount of points, or you might vary the points depending on the game.
Bonus: Score Menu
In the previously implemented Games.Menu module, implement a Total Score option which prints the current total score. It should use the Games.ScoreTracker module to get the current score.
$ ./games
Select a game:
1. Guessing Game
2. Rock Paper Scissors
3. Wordle
4. Total Score
Select: 4
Your current session score: 3
Commit Your Progress
DockYard Academy now recommends you use the latest Release rather than forking or cloning our repository.
Run git status to ensure there are no undesirable changes.
Then run the following in your command line from the curriculum folder to commit your progress.
$ git add .
$ git commit -m "finish Games: Supervised Score Tracker exercise"
$ git push
We’re proud to offer our open-source curriculum free of charge for anyone to learn from at their own pace.
We also offer a paid course where you can learn from an instructor alongside a cohort of your peers. We will accept applications for the June-August 2023 cohort soon.