這是一些示例代碼,我正在嘗試做......打開程式時只“滾動”一次,即使我將這些變數放入 shuffle 函式中,它仍然不會在串列中再次滾動它們,因為串列只是在程式開始時復制到一個新串列中......我怎么能每次洗牌時都擲骰子?
var countW = 0
var d6 = Random().nextInt(6) 1
var d62 = Random().nextInt(6) 1
var d63 = Random().nextInt(6) 1
var testList = arrayListOf(
"test $d6",
"test $d62",
"test $d63")
var shuffledList = testList.shuffled()
fun shuf() { shuffledList = testList.shuffled() }
listButton.setOnClickListener {
if (countW < 1) { shuf() }
wResult.text = shuffledList.elementAt(countW)
countW
if (countW >= shuffledList.count()) { countW = 0 }
}
uj5u.com熱心網友回復:
我不確定你到底想要什么。但有一點很清楚:串列中的元素一次設定為:
var testList = arrayListOf(
"test $d6",
"test $d62",
"test $d63")
更改 d6、d62 和 d63 不會更新 ArrayList testList 的每個字串元素。
我不知道知道這是否可以解決您的問題,但這里有一個小(非常簡單)的代碼片段可以讓您理解,這是否是您的問題。
/**
* You can edit, run, and share this code.
* play.kotlinlang.org
*/
import java.util.Random
fun main() {
// var countW = 0
var d6 = Random().nextInt(6) 1
var d62 = Random().nextInt(6) 1
var d63 = Random().nextInt(6) 1
var testList = arrayListOf(
"test $d6",
"test $d62",
"test $d63");
fun reRand(){
d6 = Random().nextInt(6) 1
d62 = Random().nextInt(6) 1
d63 = Random().nextInt(6) 1
testList = arrayListOf(
"test $d6",
"test $d62",
"test $d63");
}
var shuffledList = testList.shuffled();
fun shuf() { shuffledList = testList.shuffled() }
shuf()
reRand()
println(shuffledList)
shuf()
reRand()
println(shuffledList)
shuf()
reRand()
println(shuffledList)
shuf()
reRand()
println(shuffledList)
}
如果您想這樣做,您需要每次都重新生成您的串列。有更有效的方法來做到這一點。
編輯:這里是 Kotlin 游樂場的鏈接: https ://pl.kotl.in/xRdGELkDb
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/440830.html
標籤:javascript 安卓 科特林
