scoring view
This commit is contained in:
parent
62ec327502
commit
ab57a15c12
2 changed files with 45 additions and 19 deletions
|
|
@ -3,5 +3,6 @@ CREATE TABLE IF NOT EXISTS game (
|
||||||
code text UNIQUE,
|
code text UNIQUE,
|
||||||
display_session text NOT NULL,
|
display_session text NOT NULL,
|
||||||
control_session text,
|
control_session text,
|
||||||
|
current_player integer,
|
||||||
active boolean not null
|
active boolean not null
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,12 @@
|
||||||
player-order (if random-order?
|
player-order (if random-order?
|
||||||
(shuffle (range 0 (count players)))
|
(shuffle (range 0 (count players)))
|
||||||
(range 0 (count players)))]
|
(range 0 (count players)))]
|
||||||
(println players)
|
|
||||||
(println player-order)
|
|
||||||
(println (interleave players player-order))
|
|
||||||
|
|
||||||
(jdbc/execute! ds (sql/format {:insert-into :game
|
(jdbc/execute! ds (sql/format {:insert-into :game
|
||||||
:values [{:id id
|
:values [{:id id
|
||||||
:code code
|
:code code
|
||||||
:display_session id
|
:display_session id
|
||||||
|
:current_player 0
|
||||||
:active false}]
|
:active false}]
|
||||||
:on-conflict :id
|
:on-conflict :id
|
||||||
:do-update-set [:code :display_session :active]}))
|
:do-update-set [:code :display_session :active]}))
|
||||||
|
|
@ -72,8 +70,6 @@
|
||||||
:from :player
|
:from :player
|
||||||
:where [:= :game_code (:game/code game)]})))]
|
:where [:= :game_code (:game/code game)]})))]
|
||||||
|
|
||||||
(println id)
|
|
||||||
(pprint/pprint game)
|
|
||||||
(ui/page
|
(ui/page
|
||||||
{}
|
{}
|
||||||
[:div
|
[:div
|
||||||
|
|
@ -98,30 +94,60 @@
|
||||||
[:th {:scope "row"} (:player/name p)]
|
[:th {:scope "row"} (:player/name p)]
|
||||||
[:td (:player/score p)]]))]]])))
|
[:td (:player/score p)]]))]]])))
|
||||||
|
|
||||||
|
(defn checkbox [n]
|
||||||
|
[:label
|
||||||
|
[:input {:type "checkbox", :name n}]
|
||||||
|
n])
|
||||||
|
|
||||||
|
(def pig-position
|
||||||
|
["jowler"
|
||||||
|
"trotter"
|
||||||
|
"snouter"
|
||||||
|
"black dot"
|
||||||
|
"no dot"
|
||||||
|
"razorback"])
|
||||||
|
|
||||||
(defn control-view [{:keys [session params path-params]
|
(defn control-view [{:keys [session params path-params]
|
||||||
:example/keys [ds]
|
:example/keys [ds]
|
||||||
:as _ctx}]
|
:as _ctx}]
|
||||||
|
|
||||||
(let [code (:code path-params)
|
(let [code (:code path-params)
|
||||||
players (sort-by :player/play_order (jdbc/execute! ds (sql/format {:select :* :from :player :where [:= :game_code code]})))]
|
players (into []
|
||||||
|
(sort-by
|
||||||
|
:player/play_order
|
||||||
|
(jdbc/execute! ds (sql/format {:select :*
|
||||||
|
:from :player
|
||||||
|
:where [:= :game_code code]}))))
|
||||||
|
game (jdbc/execute-one! ds (sql/format {:select :*
|
||||||
|
:from :game
|
||||||
|
:where [:= :code code]}))
|
||||||
|
current-player (:game/current_player game)]
|
||||||
(ui/page {}
|
(ui/page {}
|
||||||
[:div [:nav
|
[:div [:nav
|
||||||
[:ul [:li [:strong "Score the pigs"]]]
|
[:ul [:li [:strong (str "Score the pigs - " code)]]]
|
||||||
[:ul [:li (biff/form {:id "reset"
|
[:ul [:li (biff/form {:id "reset"
|
||||||
:hx-get "/reset"}
|
:hx-get "/reset"}
|
||||||
[:button.secondary "Reset"])]]]
|
[:button.secondary "Reset"])]]]
|
||||||
[:h5 (str "Game " code)]
|
[:h4 "Playing next:" (-> (get players current-player) :player/name)]
|
||||||
[:table
|
|
||||||
[:thead
|
|
||||||
[:tr
|
|
||||||
[:th {:scope "col"} "Player"]
|
|
||||||
[:th {:scope "col"} "Score"]]]
|
|
||||||
|
|
||||||
(into [:tbody]
|
(biff/form {:id ::score-form}
|
||||||
(for [p players]
|
[:table
|
||||||
[:tr
|
[:thead
|
||||||
[:th {:scope "row"} (:player/name p)]
|
[:tr
|
||||||
[:td (:player/score p)]]))]])))
|
[:th {:scope "col"} "Pig 1"]
|
||||||
|
[:th {:scope "col"} "Pig 2"]]]
|
||||||
|
|
||||||
|
[:tbody
|
||||||
|
(for [p1 pig-position
|
||||||
|
;; p2 pig-position
|
||||||
|
]
|
||||||
|
[:tr
|
||||||
|
[:td
|
||||||
|
(checkbox p1)]
|
||||||
|
|
||||||
|
[:td (checkbox p1)]])]]
|
||||||
|
[:button {:type "submit"} "Score pigs"]
|
||||||
|
[:button.contrast {:type "submit"} "Pigs are touching! (Lose all points)"])])))
|
||||||
|
|
||||||
(defn connect
|
(defn connect
|
||||||
[{:keys [session params]
|
[{:keys [session params]
|
||||||
|
|
@ -130,7 +156,6 @@
|
||||||
(let [code (:game-code params)
|
(let [code (:game-code params)
|
||||||
game (delay (jdbc/execute-one! ds (sql/format {:select :* :from :game
|
game (delay (jdbc/execute-one! ds (sql/format {:select :* :from :game
|
||||||
:where [:= :code code]})))]
|
:where [:= :code code]})))]
|
||||||
(println params)
|
|
||||||
(if (and code @game)
|
(if (and code @game)
|
||||||
{:status 200
|
{:status 200
|
||||||
:session session
|
:session session
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue