回答編集履歴

3

修正

2018/02/14 13:31

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -160,7 +160,7 @@
160
160
 
161
161
  new Enemy2()
162
162
 
163
- }
163
+ };
164
164
 
165
165
  }
166
166
 

2

指摘を受けて

2018/02/14 13:31

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -129,3 +129,49 @@
129
129
 
130
130
 
131
131
  後者の方が融通は利きますね。
132
+
133
+
134
+
135
+ コメントでの指摘を受けて
136
+
137
+ ---
138
+
139
+ > 本来ならその手の初期化はコンストラクタに書くのが妥当ではないかと。
140
+
141
+
142
+
143
+ ```Java
144
+
145
+ public class BattleField implements Call {
146
+
147
+ ...
148
+
149
+ private Character[] c;
150
+
151
+ ...
152
+
153
+ BattleField() {
154
+
155
+ c = new Character[] {
156
+
157
+ new Player(),
158
+
159
+ new Enemy1(),
160
+
161
+ new Enemy2()
162
+
163
+ }
164
+
165
+ }
166
+
167
+ ...
168
+
169
+ }
170
+
171
+ ```
172
+
173
+
174
+
175
+ 行き当たりばったりでフィールドが増減するのは好ましくないので、
176
+
177
+ 事前に状態として何が必要か整理した方が良いでしょう。

1

質問編集を受けて

2018/02/14 13:29

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -61,3 +61,71 @@
61
61
  hoge
62
62
 
63
63
  ```
64
+
65
+
66
+
67
+ 質問編集を受けて
68
+
69
+ ---
70
+
71
+ とりあえず目的を達成するには次のどっちかにすればよいかと。
72
+
73
+ ```Java
74
+
75
+ public class BattleField implements Call {
76
+
77
+ ...
78
+
79
+ private Character[] c = new Character[]{
80
+
81
+ new Player(),
82
+
83
+ new Enemy1(),
84
+
85
+ new Enemy2()
86
+
87
+ };
88
+
89
+ ...
90
+
91
+ }
92
+
93
+ ```
94
+
95
+
96
+
97
+ あるいは
98
+
99
+ ```Java
100
+
101
+ public class BattleField implements Call {
102
+
103
+ ...
104
+
105
+ private Character[] c = new Character[3];
106
+
107
+ ...
108
+
109
+ public void Battle(int rounds) {
110
+
111
+ ...
112
+
113
+ c[0] = new Player();
114
+
115
+ c[1] = new Enemy1();
116
+
117
+ c[2] = new Enemy2();
118
+
119
+ ...
120
+
121
+ }
122
+
123
+ ...
124
+
125
+ }
126
+
127
+ ```
128
+
129
+
130
+
131
+ 後者の方が融通は利きますね。