Notesclub

The adventure

elixir_adventure.livemd

The adventure

Mix.install([
  :phoenix,
  :kino,
  :elixir_math,
  :req,
  {:game_server, git: "https://github.com/nettinho/game_server.git"}
])

{:ok, %{body: body}} = Req.get("http://localhost:4000/public/node")
server = String.to_atom(body)

:ok

Game

GameServer.register(server, "nombre")
defmodule Bot do
  def run(server) do
    # :c.flush()
    loop_receive(server)
  end

  defp loop_receive(server) do
    receive do
      {:board_tick, %{status: :idle} = player, _players, fruits} ->
        case GameUtils.closest_fruit(player, fruits) do
          nil -> :ok
          pos -> GameServer.move(server, pos)
        end

      _a ->
        :ok
    end

    loop_receive(server)
  end
end

Bot.run(server)