前提・実現したいこと
5行5列の五目並べの盤面が与えられます。
盤面の各マスには、"O"か"X"か"."が書かれています。
"O"と"X"は、それぞれプレイヤーの記号を表します。
同じ記号が縦に連続で5つ並んでいれば、その記号のプレイヤーが勝者となります。
勝者の記号を1行で表示してください。
勝者がいない場合は、引き分けとして、"D"を表示してください。
発生している問題・エラーメッセージ
解答のソースコードを読んだのですが、
for (int i = 0; i < 5; i++) {
board[i] = scanner.next().split("");
}
の部分が理解できませんでした。これは次のfor文の中に組み込んでしまっては駄目なのでしょうか。
該当のソースコード
Java
1import java.util.*; 2 3 4public class Main { 5 public static void main(String[] args) { 6 Scanner scanner = new Scanner(System.in); 7 String[][] board = new String[5][5]; 8 String result = "D"; 9 10 for (int i = 0; i < 5; i++) { 11 board[i] = scanner.next().split(""); 12 } 13 14 for (int i = 0; i < 5; i++) { 15 String line = ""; 16 for (int j = 0; j < 5; j++) { 17 line += board[j][i]; 18 } 19 20 if (line.equals("OOOOO")) { 21 result = "O"; 22 } else if (line.equals("XXXXX")) { 23 result = "X"; 24 } 25 } 26 27 System.out.println(result); 28 scanner.close(); 29 } 30}
試したこと
board[i] = scanner.next().split("");を
次のfor文の中に組み込んだ
回答1件
あなたの回答
tips
プレビュー