【发布时间】:2020-12-19 22:29:53
【问题描述】:
我在 kotlin 上的 android studio 中制作井字游戏,我是新手,我完成了所有事情,但我想做,如果没有任何组合匹配,然后在屏幕上写它是平局但我不能写一些逻辑或者我错过了什么:
这是绘制函数代码:
private fun draw() {
if (!firstPLayer.contains(1) && !firstPLayer.contains(2) && !firstPLayer.contains(3)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(1) && !secondPLayer.contains(2) && !secondPLayer.contains(3)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(4) && !firstPLayer.contains(5) && !firstPLayer.contains(6)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(4) && !secondPLayer.contains(5) && !secondPLayer.contains(6)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(7) && !firstPLayer.contains(8) && !firstPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(7) && !secondPLayer.contains(8) && !secondPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(1) && !firstPLayer.contains(4) && !firstPLayer.contains(7)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(1) && !secondPLayer.contains(4) && !secondPLayer.contains(7)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(2) && !firstPLayer.contains(5) && !firstPLayer.contains(8)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(2) && !secondPLayer.contains(5) && !secondPLayer.contains(8)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(3) && !firstPLayer.contains(6) && !firstPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(3) && !secondPLayer.contains(6) && !secondPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(1) && !firstPLayer.contains(5) && !firstPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(1) && !secondPLayer.contains(5) && !secondPLayer.contains(9)) {
resultView.text = "Draw!"
}
if (!firstPLayer.contains(3) && !firstPLayer.contains(5) && !firstPLayer.contains(7)) {
resultView.text = "Draw!"
}
if (!secondPLayer.contains(3) && !secondPLayer.contains(5) && !secondPLayer.contains(7)) {
resultView.text = "Draw!"
}
}
所以,我是说如果列表中没有这种数字组合,请在 resultView 中写上“draw” 但它会在第一次单击任何按钮时显示绘制。 为什么?
【问题讨论】:
-
好吧,你会希望所有这些 if 都是一个 when 语句、if-else 或一堆 or 语句在一个 if 中......你拥有它们作为自己的 if 语句的脸会导致问题——也就是说,有更简单的方法可以实现你的目标——如果你发现自己重复了这么多类似的代码,那可能是更好的方法!
-
我尝试在 if-else 函数中编写这个 if-s 但没有成功。
-
套用逻辑:“如果 X 不是熊,那么 X 不是动物,如果 X 不是马,那么 X 也不是动物”。如果我们尝试使用 X=horse,它将声称那不是动物,因为它同时不是熊。换个说法,逻辑不通,折腾,重新开始。
-
你不厌倦写所有这些吗?你有没有想过是否还有其他方法?一个可能涉及循环?
标签: android kotlin tic-tac-toe