JAVA import java.util.Scanner; public class boardOsero { public static String board[][] = new String[9][9]; public static String white = "◯"; public static String black = "●"; public static String EMPTY = " "; public static void main(String[] args){ Scanner s = new Scanner(System.in); boardInitValue(); boardSetup(); showBoard(); System.out.print("駒をおくx座標を入力してください:"); int x = s.nextInt(); System.out.print("駒をおくy座標を入力してください:"); int y = s.nextInt(); setStone(x,y); } //ボードの初期表示項目を設定する public static void boardSetup() { for(int i=1; i<9; i++) { board[0][i] = String.valueOf(i); board[i][0] = String.valueOf(i); } } public static void boardInitValue() { for(int i=0; i<9; i++) { for(int j=0; j<9; j++) { board[j][i] = EMPTY; } } } public static void showBoard() { for(int i=0; i<9; i++) { for(int j=0; j<9; j++) { System.out.print("|" + board[j][i]); //7列目記載の際に、最後に「|」を入れて改行する if(j==8) { System.out.println("|"); } } } } static public void setStone(int x,int y) { board[y][x] = black; showBoard(); } }
前回質問させていただいたコードを削って見やすくしました。問題は標準入力で入力したx軸とy軸が逆になってしまい、オセロの駒を置きたい位置と違う場所になってしまうことです。例えば、標準入力でxに2,yに1を代入させた所、xが1,yが2のところにオセロの駒が配置されてしまいます。原因は標準入力にありそうだということまではわかりましたが、自力では原因がわかりませんでした。引数の受け渡す順番や二次元配列も自分で確かめた限りでは間違えがわかりません。ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー