回答編集履歴

3

主題を追加

2015/10/11 08:50

投稿

philomagi
philomagi

スコア267

test CHANGED
@@ -1,6 +1,8 @@
1
- 拝読させていただいたところ、真っ先に浮かんだのは分岐条件の関数です。
1
+ 拝読させていただいたところ、真っ先に浮かんだのはCheckAble関数の修正です。
2
2
 
3
3
 
4
+
5
+ まずは、条件分岐について。
4
6
 
5
7
  「参照先は壁か」「参照先は空か」「参照先には自分の石があるか」という条件は、このアルゴリズムにおいて頻出し、かつ重要なものです。
6
8
 
@@ -36,10 +38,8 @@
36
38
 
37
39
  今回のように、一つのメソッドに複数の作業を混在させ、かつ同一のデータ(ここではfield[n][m])を各作業で利用すると、分岐条件や石をひっくり返すロジックに修正が生じた場合、互いに影響を与えてしまう恐れがあります。すると、修正範囲が広がったり、バグの原因が特定しにくくなったりします。
38
40
 
39
- (結構面倒そうなので)ここでは省略させて頂きますが、実際にはcheckAbleを二つの関数に分け、さら分けた関数利用するゲームの進行を表す関数を導入すると良さそうです。挑戦してみてください。
41
+ (結構面倒そうなので)ここでは省略させて頂きますが、実際にはcheckAbleを二つの関数に分けてみると各処理毎影響範囲限定きます。挑戦してみてください。
40
42
 
41
43
  例)
42
44
 
43
45
  checkAble → isReversibleとreverseに分割
44
-
45
- isReversibleを満たす時にreverseを読みだすstartOthero関数を導入

2

脱字修正

2015/10/11 08:50

投稿

philomagi
philomagi

スコア267

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  「参照先は壁か」「参照先は空か」「参照先には自分の石があるか」という条件は、このアルゴリズムにおいて頻出し、かつ重要なものです。
6
6
 
7
- なので、これらを全て関数にて共通化し、かつ名前を付けて分かりやすくしてみましょう。
7
+ なので、これらを全て関数にて共通化し、かつ名前を付けて分かりやすくしてみましょう。
8
8
 
9
9
  「参照先は壁か」→isWall
10
10
 

1

表現を修正

2015/10/11 08:46

投稿

philomagi
philomagi

スコア267

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  「参照先は壁か」「参照先は空か」「参照先には自分の石があるか」という条件は、このアルゴリズムにおいて頻出し、かつ重要なものです。
6
6
 
7
- なので、これらを全て関数にて共化し、かつ名前を付けて分かりやすくしてみましょう。
7
+ なので、これらを全て関数にて共化し、かつ名前を付けて分かりやすくしてみましょう。
8
8
 
9
9
  「参照先は壁か」→isWall
10
10