teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コードに補足追記

2016/03/26 14:58

投稿

Odacchi
Odacchi

スコア907

answer CHANGED
@@ -13,12 +13,15 @@
13
13
  private static Board board = new Board();
14
14
  private int[][] boardArray;
15
15
 
16
+ // privateのコンストラクタ。newできなくし、外部からインスタンスが作られないようにする
16
17
  private Board() {
17
18
  boardArray = new int [CommonConstants.MASS][CommonConstants.MASS];
18
19
  }
19
20
 
21
+ // Boardクラスのインスタンスを呼ぶ。
20
22
  public static Board getInstance() {
23
+ // 普通は下記のようにBoard型のインスタンスを返しますが。
21
- return board;
24
+ // return board;
22
25
  }
23
26
 
24
27
  // boardにコマを置くメソッドなど書ける
@@ -26,5 +29,10 @@
26
29
  boardArray[x][y] = player;
27
30
  }
28
31
 
32
+     public int[][] getArray() {
33
+ return boardArray;
34
+ }
35
+
36
+
29
37
  }
30
38
  ```

1

補足追記

2016/03/26 14:58

投稿

Odacchi
Odacchi

スコア907

answer CHANGED
@@ -1,6 +1,7 @@
1
+ 設計の問題になりますが、
1
2
  CommonConstantsというクラスは、値の変わらない定数やEnumを共用で用いるために利用するクラスの使い型が設計的に理にかなっていると思います。
2
3
 
3
- ところが配列は、配列の各要素の値が変わることを前提に利用するので、CommonConstantsには書せん
4
+ ところが配列は、配列の各要素の値が変わることを前提に利用するので、CommonConstantsには書かないと思い
4
5
 
5
6
  一言でいうと、**Boardクラスとして、シングルトンパターンでクラス化し、Boardクラスのフィールドに持たせたら良さそう**に思いますが、いかがでしょう?
6
7
  下記のような感じです。
@@ -19,5 +20,11 @@
19
20
  public static Board getInstance() {
20
21
  return board;
21
22
  }
23
+
24
+ // boardにコマを置くメソッドなど書ける
25
+ public void setKoma(int x, int y, int player) {
26
+ boardArray[x][y] = player;
27
+ }
28
+
22
29
  }
23
30
  ```