前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javafx框架tornadofx实战-舒尔特2

javafx框架tornadofx实战-舒尔特2

原创
作者头像
用户6167008
修改2020-06-08 18:08:57
5390
修改2020-06-08 18:08:57
举报
文章被收录于专栏:javafx框架tornadofx
代码语言: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)
            }
        }
    }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档