代码语言:javascript复制
// 刷新网格
private fun refreshGrid() {
timeUsed.set(format(0))
isRun.set(false)
resultList.clear()
val n = nproperty.value
r.clear()
suerte.clear()
correctResult.clear()
isRun.set(false)
aniTimer.stop()
if (n * n > content.value.length) {
information("超出内容长度")
return
}
(1..n * n).map {
suerte.add(content.value[it - 1].toString())
// suerte.add("$it")
}
correctResult.addAll(suerte)
suerte.shuffle()
val iter = suerte.iterator()
(0 until n).map { i ->
(0 until n).map { j ->
r.add(button(iter.next()) {
setPrefSize(r.prefHeight / n, r.prefHeight / n)
action {
if (resultList.size < 2) {//当第一次点击时,开始计时
isRun.set(true)
startTime.set(System.currentTimeMillis())
}
if (!resultList.contains(this.text) && correctResult[resultList.size] == this.text) resultList.add(this.text)//将每次点击的数字添加到结果列表中
textFill = if (resultList.size > 1 && correctResult[resultList.size - 1] == this.text) {//点击后更改字体颜色
Color.BLUE
} else {
Color.RED
}
if (resultList.size == n * n) isRun.set(false)
if (isRun.value) {
aniTimer.start()
} else {
aniTimer.stop()
}
style {
backgroundColor = c("#99CC00")
fontSize = 26.px
}
if (resultList.joinToString() == correctResult.joinToString()) information("恭喜!成功完成本局")
}
style {
borderColor = box(c("red"))
borderWidth = box(1.px)
fontSize = 26.px
}
}, i, j)
}
}
}