MENU

【Java】二次元配列とswitch文

https://cdn-ak.f.st-hatena.com/images/fotolife/k/kiserukun/20210611/20210611090227.png

自主学中にオセロの作り方を調べていると、二次元配列で目板を作ることが分かりました。実際に多次元配列を使ったことがなかったので、今回ゲーム?感覚で作成しました。

実現したいこと  コマンドライン引数を使用する
 文字で移動させる(上、下、左、右)

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の足した値で二次元配列の値を表示します

これをうまく応用すれば、マインスイーパーみたいなゲームができるのではないかと思っています。 現在エラーは出ますが、改良していろいろ試していきたいと思います。