1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
module View.Page
( pageView
) where
import List
import String (append)
import Html (..)
import Html.Attributes (..)
import Html.Attributes as A
import Json.Encode (string)
import Model.Game (Game)
import Model.Round (..)
import View.Game (gameView)
import View.Time (timeView)
pageView : Game -> Html
pageView game =
div
[]
[ h1 [] [ text "cAtchVoid" ]
, div
[ id "game" ]
[ fromElement <| gameView game ]
, p
[]
[ text "Catch the points of your color, avoid the other points." ]
, p
[]
[ text "Use the arrow keys to move and 'e' to change your color." ]
, ( case maybeBestRound game.rounds of
Nothing ->
div [ class "bestScore" ] []
Just bestRound ->
p
[ class "bestScore isDefined" ]
[ roundView bestRound
|> append "Best score: "
|> text
]
)
, ul
[ class "rounds" ]
( List.map
(\round -> li [] [ text (roundView round) ])
game.rounds
)
, a
[ href "https://github.com/guyonvarch/catchvoid" ]
[ img
[ A.style
[ ("position", "absolute")
, ("top", "0")
, ("right", "0")
, ("border", "0")
]
, src "https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67"
, alt "Fork me on GitHub"
, property "data-canonical-src" (string "https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png")
]
[]
]
]
roundView : Round -> String
roundView round =
let score = toString round.score
hits = "hit" ++ (if round.score > 1 then "s" else "")
duration = timeView round.duration
in score ++ " " ++ hits ++ " within " ++ duration
|