Render board
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Oly 2024-11-18 14:35:00 +00:00
parent b3abc6dd1c
commit 5a7da84ee9
2 changed files with 27 additions and 28 deletions

View File

@ -119,12 +119,8 @@
(defn ui-search [search]
[:div
(board 8 (draw-board start-state))
(board 8
(into [] (mapv (fn [n] {:class "fl bg-black-80 white-80" :colour "black-80" :text (str n)})
(range 1 (* 8 9))))
)
(board 8 (draw-board
start-state))
[:input.w-100.center.input-reset.ba.b--black-20.pa2.mb2
{:type "text"

View File

@ -1,5 +1,5 @@
(ns com.oly.static-sites.do-blog.pages.chess.render
(:require
(:require
[com.oly.static-sites.do-blog.pages.chess.state :refer [white-square black-square]]
[com.oly.static-sites.do-blog.pages.chess.movement :refer [fetch-selected-piece-moves]]))
@ -11,28 +11,31 @@
:white :black)))
(defn draw-square [pos pieces]
(let [piece (first (filter #(= pos (:start-pos %)) pieces))
(let [square (calculate-black-white pos)
piece (first (filter #(= pos (:start-pos %)) pieces))
selected-piece-moveable (fetch-selected-piece-moves (first (filter :selected pieces)))
moveable-square (first (filter #(= pos %) selected-piece-moveable))]
{:colour (if (= (calculate-black-white pos) :black)
white-square
black-square)
:text (cond
(:selected piece) (:character piece) ;"S "
piece (:character piece)
moveable-square "O "
:else (if (= (calculate-black-white pos) :black)
white-square
black-square))
}
))
(-> {:text (cond
(:selected piece) (:character piece) ;"S "
piece (:character piece)
moveable-square "O "
:else (if (= (calculate-black-white pos) :black)
white-square
black-square))}
(assoc :colour (if (= square :black)
white-square
black-square)
:class (if (= square :black)
"fl bg-white-80 black-80"
"fl bg-black-80 white-80")))))
(defn draw-board [pieces]
(loop [x 1
y 1
result []]
(if (>= x 8)
(if (>= y 8)
(conj result (draw-square [x y] pieces))
(recur 1 (+ 1 y) (conj result (str (draw-square [x y] pieces) "\n"))))
(recur (+ 1 x) y (conj result (draw-square [x y] pieces))))))
(loop [x 1
y 1
result []]
(if (>= x 8)
(if (>= y 8)
(conj result (draw-square [x y] pieces))
(recur 1 (+ 1 y) (conj result (draw-square [x y] pieces))))
(recur (+ 1 x) y (conj result (draw-square [x y] pieces))))))