| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Fri, 03 Dec 2021 18:00:30 +0000 | |
| changeset 854 | c9e2568d4729 | 
| 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 | } |