私はScalaと関数型プログラミングの新機能です。私はチック・タック・トー・ゲーム(「7つの週の7つの言語(書籍)」の第1日目)を作成しています。機能的な方法で「勝ち」の方法を知りたいのですが。Scalaでarray.exists()を使用する
'checkcolumn'(2番目の部分)のような 'checkrow'部分(最初の部分)を作りたいと思っていますが、私が試しているのは動作していません。
ここに私の(作業)コード:
def checkGame() {
for (y <- board.indices) {
// checks a row
checkRow(y)
}
for (x <- board(0).indices) {
// checks a column
if(!board.exists(y => y(x) != 'x')){
println("You have won mate! (column: " + x + ")")
}
}
}
def checkRow(y: Integer) {
var isWon = true
for (x <- board(y).indices) {
if (board(y)(x) != 'x') {
isWon = false
}
}
if (isWon) println("You have won mate! (row: " + y + ")")
}
注:ボードは、2次元配列です。
私がこれまでに得たもの(動作しない):
if(!board.exists(x => x(y) != 'x')){
println("You have won mate! (row: " + x + ")")
}
あなたは 'for' loppsと可変変異を使用している場合、「機能的な方法で」実行していません。 – RichouHunter