--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/display/MinimalApplication.scala Fri Jul 24 12:58:19 2020 +0100
@@ -0,0 +1,72 @@
+package app
+
+import scalatags.Text.all._
+import scala.util.Random
+
+
+object MinimalApplication extends cask.MainRoutes{
+
+ val bootstrap = "https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.css"
+
+ var x = Random.between(0, 7)
+ var y = Random.between(0, 7)
+ var z = Random.between(0, 7)
+
+ abstract class Answer
+ case object No extends Answer
+ case object Correct extends Answer
+ case class Wrong(n: Int) extends Answer
+
+ var ans : Answer = No
+ var cnt = 1
+
+ val heart = raw("❤️")
+ val unicorn = raw("🦄")
+
+ var nms = List("Christiane", "Sebastian")
+
+ @cask.get("/")
+ def hello() =
+ doctype("html")(
+ html(
+ head(link(rel := "stylesheet", href := bootstrap)),
+ body(
+ div(cls := "container")(
+ //h1(s"Hello ${nms((cnt / 3) % 2)}!"),
+ h1(s"Hello Christiane"),
+ h1(s"$x + $y = ??"),
+ ans match {
+ case No => ""
+ case Correct => i(color.green)("Correct!")
+ case Wrong(n) => i(color.red)(s"$n is wrong!")
+ },
+ form(action := "/", method := "post")(
+ frag(
+ for (i <- 0 to 12) yield button(`type` := "submit", name := "name", value := i.toString)(i.toString)
+ )
+ ),
+ frag(
+ for (i <- 0 until cnt) yield
+ if ((i + 1) % 10 != 0) heart else unicorn
+ )
+ )
+ )
+ )
+ )
+
+ @cask.postForm("/")
+ def answer(name: String) = {
+ if (x + y == name.toInt) {
+ ans = Correct
+ x = Random.between(0, 7)
+ y = Random.between(0, 7)
+ z = Random.between(0, 7)
+ cnt = cnt + 1
+ }
+ else
+ ans = Wrong(name.toInt)
+ hello()
+ }
+
+ initialize()
+}