意外と自分で考えても埒が明かないので調べてみたので。
val countries = listOf("brazil", "italy", "england", "spain", "japan")
val games = mutableListOf<String>()
val indices = countries.indices
indices.forEach { left ->
indices.forEach { right ->
if (left < right) {
games.add("${countries[left]}\tvs\t${countries[right]}")
}
}
}
// val rights = countries.toMutableList()
// countries.forEach { left ->
// rights.removeFirst()
// rights.forEach { right ->
// games.add("$left\tvs\t$right")
// }
// }
games.forEachIndexed() { index, game ->
println("${index + 1}. $game")
}
println("All ${games.size} games")
assertTrue(
countries.size * (countries.size - 1) / 2 == games.size
)
1. brazil vs italy
2. brazil vs england
3. brazil vs spain
4. brazil vs japan
5. italy vs england
6. italy vs spain
7. italy vs japan
8. england vs spain
9. england vs japan
10. spain vs japan
All 10 games
総当りの表を脳内でイメージできないと、このロジックは書けないと想う。
図表をまずは描いてみること大事。
以下、移植時、ボール同士の衝突判定時に使いました。
dyn4j の実力を JetpackCompose wrapper Physics Layout で思い知る
👉 https://t.co/22ovrUynWF #android #JetpackCompose #kotlin #プログラミング勉強中 pic.twitter.com/kuXhbOyeDc— chanzmao (@maochanz) December 26, 2022
👉 Android AccelerometerPlay Sample - Google Archive
関連ワード: Android・AndroidStudio・Kotlin・初心者・開発