| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Mon, 24 Jan 2022 00:00:33 +0000 | |
| changeset 869 | 16247acc4b0e | 
| parent 738 | 03f46065ef04 | 
| permissions | -rw-r--r-- | 
| 
738
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
1  | 
package app  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
2  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
3  | 
import scalatags.Text.all._  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
4  | 
import scala.util.Random  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
5  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
6  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
7  | 
object MinimalApplication extends cask.MainRoutes{
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
8  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
9  | 
val bootstrap = "https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.css"  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
10  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
11  | 
var x = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
12  | 
var y = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
13  | 
var z = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
14  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
15  | 
abstract class Answer  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
16  | 
case object No extends Answer  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
17  | 
case object Correct extends Answer  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
18  | 
case class Wrong(n: Int) extends Answer  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
19  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
20  | 
var ans : Answer = No  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
21  | 
var cnt = 1  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
22  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
23  | 
  val heart = raw("❤️")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
24  | 
  val unicorn = raw("🦄")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
25  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
26  | 
  var nms = List("Christiane", "Sebastian")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
27  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
28  | 
  @cask.get("/")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
29  | 
def hello() =  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
30  | 
      doctype("html")(
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
31  | 
html(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
32  | 
head(link(rel := "stylesheet", href := bootstrap)),  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
33  | 
body(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
34  | 
div(cls := "container")(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
35  | 
            //h1(s"Hello ${nms((cnt / 3) % 2)}!"), 
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
36  | 
h1(s"Hello Christiane"),  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
37  | 
h1(s"$x + $y = ??"),  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
38  | 
	    ans match {
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
39  | 
case No => ""  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
40  | 
              case Correct => i(color.green)("Correct!")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
41  | 
case Wrong(n) => i(color.red)(s"$n is wrong!")  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
42  | 
},  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
43  | 
form(action := "/", method := "post")(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
44  | 
frag(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
45  | 
for (i <- 0 to 12) yield button(`type` := "submit", name := "name", value := i.toString)(i.toString)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
46  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
47  | 
),  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
48  | 
frag(  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
49  | 
for (i <- 0 until cnt) yield  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
50  | 
if ((i + 1) % 10 != 0) heart else unicorn  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
51  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
52  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
53  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
54  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
55  | 
)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
56  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
57  | 
  @cask.postForm("/")
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
58  | 
  def answer(name: String) = {
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
59  | 
    if (x + y == name.toInt) {
 | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
60  | 
ans = Correct  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
61  | 
x = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
62  | 
y = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
63  | 
z = Random.between(0, 7)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
64  | 
cnt = cnt + 1  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
65  | 
}  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
66  | 
else  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
67  | 
ans = Wrong(name.toInt)  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
68  | 
hello()  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
69  | 
}  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
70  | 
|
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
71  | 
initialize()  | 
| 
 
03f46065ef04
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
72  | 
}  |