可能であれば、これを短縮するにはどうすればよいですか?
if(moves[1] == moves[4] && moves[4] == moves[7]) { return 1;}
else if(moves[1] == moves[2] && moves[2] == moves[3]) { return 1;}
else if(moves[4] == moves[5] && moves[5] == moves[6]) { return 1;}
else if(moves[7] == moves[8] && moves[8] == moves[9]) { return 1;}
else if(moves[1] == moves[5] && moves[5] == moves[9]) { return 1;}
else if(moves[3] == moves[5] && moves[5] == moves[7]) { return 1;}
else if(moves[2] == moves[5] && moves[5] == moves[8]) { return 1;}
else if(moves[3] == moves[6] && moves[6] == moves[9]) { return 1;}
else if (moves[1] != '1' && moves[2] != '2' && moves[3] != '3' && moves[4] != '4' && moves[5] != '5' && moves[6] != '6' && moves[7] != '7' && moves[8] != '8' && moves[9] != '9') {
return 2;}
値の動きには、ゲームの勝者を得るために比較される X または 0 が格納されます。これをできるだけ短くする必要があります。
数字のランダムな組み合わせのため、これを行う他の方法は考えられません
上記のコードは CheckWinner と呼ばれる関数で、ユーザーが選択した入力を、埋められた位置の配列とともに渡します。
コードは、move[position] を勝ち手の他のすべての組み合わせに対してチェックし、勝ち手が検出された場合は 1 を返します。
コードの最後のビットは、グリッド上のすべてのスペースをチェックし、スペースが残っていない場合は 2 を返して引き分けを呼び出します。
お役に立てれば