elx-scopes/lib/scopes_web/live/bingo.ex
2025-06-13 17:51:47 +02:00

30 lines
808 B
Elixir

defmodule ScopesWeb.Bingo do
use ScopesWeb, :live_view
def mount(_params, _session, socket) do
{:ok, assign(socket, score: 0, message: "Make a guess:" )}
end
def render(assigns) do
~H"""
<h1 class="mb-4 text-4xl font-extrabold">Your score: {@score}</h1>
<h2>{@message}</h2>
<br />
<h2>
<%= for n <- 1..10 do %>
<.link class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 border border-blue-700 rounded m-1" phx-click="guess" phx-value-number={n} > {n} </.link>
<% end %>
</h2>
"""
end
def handle_event("guess", %{"number" => guess}, socket) do
message = "Your guess: #{guess}. Wrong. Guess again!"
score = socket.assigns.score - 1
{ :noreply,
assign(socket, message: message, score: score)
}
end
end