【Java】二次元配列とswitch文
自主学中にオセロの作り方を調べていると、二次元配列で目板を作ることが分かりました。実際に多次元配列を使ったことがなかったので、今回ゲーム?感覚で作成しました。
class Main{ public static void main(String args[]) { int x = 0; int y = 0; int ban[][] = { {11,21,31,41,51,61,71,81,91}, {12,22,32,42,52,62,72,82,92}, {13,23,33,43,53,63,73,83,93}, {14,24,34,44,54,64,74,84,94}, {15,25,35,45,55,65,75,85,95}, {16,26,36,46,56,66,76,86,96}, {17,27,37,47,57,67,77,87,97}, {18,28,38,48,58,68,78,88,98}, {19,29,39,49,59,69,79,89,99} }; String a = args[0]; String[] b = a.split(""); for(String s : b) { switch(s) { case "u": y--; break; case "d": y++; break; case "r": x++; break; case "l": x--; break; } } System.out.println(ban[x][y]); } }
横列をx、縦列をyとしています。
splitメソッドでコマンドライン引数の文字列を一文字一文字分解して配列として格納します
for文のループ処理で配列から一文字一文字を認識します
switch文で上なら"u"、下なら"d"、右なら"r"、左なら"l"としてx、y に値を足していきます
x,yの足した値で二次元配列の値を表示します
これをうまく応用すれば、マインスイーパーみたいなゲームができるのではないかと思っています。 現在エラーは出ますが、改良していろいろ試していきたいと思います。