Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
338de15f
K
kotlin
项目概览
硅谷海盗
/
kotlin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
338de15f
编写于
4月 16, 2012
作者:
D
Dmitry Jemerov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update to current Kotlin
上级
0325e68a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
12 deletion
+16
-12
examples/src/TwentyFourGame.kt
examples/src/TwentyFourGame.kt
+16
-12
未找到文件。
examples/src/TwentyFourGame.
jetl
→
examples/src/TwentyFourGame.
kt
浏览文件 @
338de15f
namespace TwentyFourGame;
package
TwentyFourGame
/**
* @author yole
*/
import
java.util.*
import
java.io.*
fun
StringBuilder
.
takeFirst
():
Char
{
if (this.length() == 0) return
'\0'
if
(
this
.
length
()
==
0
)
return
0
.
toChar
()
val
c
=
this
.
charAt
(
0
)
this
.
deleteCharAt
(
0
)
return
c
}
class
Evaluator
(
val
expr
:
StringBuilder
,
val
numbers
:
ArrayList
<
Int
>)
{
fun
checkFirst
(
expect
:
Char
):
Boolean
{
if
(
expr
.
length
()
>
0
&&
expr
.
charAt
(
0
)
==
expect
)
{
...
...
@@ -21,20 +25,20 @@ class Evaluator(val expr: StringBuilder, val numbers: ArrayList<Int>) {
fun
evaluateArg
():
Int
{
val
c
=
expr
.
takeFirst
()
when
(
c
)
{
in '0'..'9'
=
> {
in
'0'
..
'9'
-
>
{
val
n
=
c
-
'0'
val
index
=
numbers
.
indexOf
(
n
)
if
(
index
<
0
)
throw
Exception
(
"You used incorrect number: "
+
n
)
numbers
.
remove
(
index
)
// gotcha: conflict between remove(Object) and remove(int)
return
n
}
'('
=
> {
'('
-
>
{
val
result
=
evaluate
()
if
(
expr
.
takeFirst
()
!=
')'
)
throw
Exception
(
") expected"
)
return
result
}
'\0' =
> throw Exception("Syntax error: Character expected")
else
=
> throw Exception("Syntax error: Unrecognized character " + c)
0
.
toChar
()
-
>
throw
Exception
(
"Syntax error: Character expected"
)
else
-
>
throw
Exception
(
"Syntax error: Unrecognized character "
+
c
)
}
}
...
...
@@ -64,7 +68,7 @@ class Evaluator(val expr: StringBuilder, val numbers: ArrayList<Int>) {
}
fun
main
(
args
:
Array
<
String
>)
{
System.out?.
println("24 game")
println
(
"24 game"
)
val
numbers
=
ArrayList
<
Int
>(
4
)
val
rnd
=
Random
();
val
prompt
=
StringBuilder
()
...
...
@@ -74,18 +78,18 @@ fun main(args: Array<String>) {
if
(
i
>
0
)
prompt
.
append
(
" "
);
prompt
.
append
(
n
)
}
System.out?.
println("Your numbers: " + prompt)
System.out?.
println("Enter your expression:")
println
(
"Your numbers: "
+
prompt
)
println
(
"Enter your expression:"
)
val
reader
=
BufferedReader
(
InputStreamReader
(
System
.
`in`
))
val
expr
=
StringBuilder
(
reader
.
readLine
())
try
{
val
result
=
Evaluator
(
expr
,
numbers
).
evaluateAll
()
if
(
result
!=
24
)
System.out?.
println("Sorry, that's " + result)
println
(
"Sorry, that's "
+
result
)
else
System.out?.
println("You won!");
println
(
"You won!"
);
}
catch
(
e
:
Throwable
)
{
System.out?.
println(e.getMessage())
println
(
e
.
getMessage
())
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录