27 lines
832 B
Elm
27 lines
832 B
Elm
module Go.View exposing (..)
|
|
import Go.Util exposing (allIndices, pair, lookup)
|
|
import Go.Types exposing (..)
|
|
import Html exposing (Html, div, text, p)
|
|
import Html.Attributes exposing (class, classList)
|
|
import Html.Events exposing (onClick)
|
|
|
|
renderIndex : (Index, Maybe Color) -> Html Msg
|
|
renderIndex (index, color) =
|
|
let
|
|
extraClass = case color of
|
|
Just c -> (if c == Black then "black-cell" else "white-cell", True)
|
|
Nothing -> ("", False)
|
|
in
|
|
div [ classList [ ("board-cell", True), extraClass ]
|
|
, onClick (Place index)
|
|
]
|
|
[
|
|
]
|
|
|
|
renderBoard : Int -> Board -> Html Msg
|
|
renderBoard size board =
|
|
let
|
|
cells = List.map (\i -> (lookup i board) |> (pair i)) <| allIndices size
|
|
in
|
|
div [] <| List.map renderIndex cells
|