From 815a423dc185f73aacfd5f38cf89b103e6ab82d6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 26 May 2011 17:57:55 +0400 Subject: [PATCH] 24 game WIP --- examples/src/TwentyFourGame.jetl | 37 ++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/examples/src/TwentyFourGame.jetl b/examples/src/TwentyFourGame.jetl index 0cf24acb7fd..1260666b294 100644 --- a/examples/src/TwentyFourGame.jetl +++ b/examples/src/TwentyFourGame.jetl @@ -3,7 +3,40 @@ namespace TwentyFourGame; import java.util.* import java.io.* -fun evaluate(expr: String?, numbers: ArrayList) = 0 +fun takeFirst(expr: StringBuilder): Char { + val c = expr.charAt(0) + expr.deleteCharAt(0) + return c +} + +fun evaluateArg(expr: StringBuilder, numbers: ArrayList): Int { + if (expr.length() == 0) throw new Exception("Syntax error: Character expected"); + val c = takeFirst(expr) + if (c >= '0' && c <= '9') { + val n = c - '0' + if (!numbers.contains(n)) throw new Exception("You used incorrect number: " + n) + numbers.remove(n) + return n + } + throw new Exception("Syntax error: Unrecognized character " + c) +} + +fun evaluateAdd(expr: StringBuilder, numbers: ArrayList): Int { + val lhs = evaluateArg(expr, numbers) + if (expr.length() > 0) { + + } + return lhs +} + +fun evaluate(expr: StringBuilder, numbers: ArrayList): Int { + val lhs = evaluateAdd(expr, numbers) + if (expr.length() > 0) { + val c = expr.charAt(0) + expr.deleteCharAt(0) + } + return lhs +} fun main(args: Array) { System.out?.println("24 game") @@ -19,7 +52,7 @@ fun main(args: Array) { System.out?.println("Your numbers: " + prompt) System.out?.println("Enter your expression:") val reader = new BufferedReader(new InputStreamReader(System.`in`)) - val expr = reader.readLine() + val expr = new StringBuilder(reader.readLine()) try { val result = evaluate(expr, numbers) if (result != 24)