回答編集履歴

2

追記2

2017/04/28 21:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -51,3 +51,5 @@
51
51
  といってよいと思います。
52
52
 
53
53
 
54
+
55
+ なお、自分の感覚では「4つの選択肢をランダムに並べるゲーム」という規模の実装では性能をそこまで優先する必要はないと思います。またバグを減らすという点については制御論理の単純化とそれ以外の観点のバランスをどう優先するかはプログラマーの感覚(好み)次第のところもあると思います。

1

追記

2017/04/28 21:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -13,3 +13,41 @@
13
13
 
14
14
 
15
15
  また、正解の判定ですが、そこは工夫次第と思います。例えば正解は「最後の枠に表示する」と最初から決めておけばいいのです。正解でない3つの候補を枠へ割り当てていき、最後に残った枠が正解枠と覚えておけば単純にできるのではないでしょうか?
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ 追記:
24
+
25
+ 自分の回答や質問者さんの回答コメントをみていて、自分が舌足らずな話をしていることに気づきました。目的によってコードの良し悪しの基準は違ってきますね。
26
+
27
+
28
+
29
+ - バグを減らす
30
+
31
+ このためには論理を単純にします。論理を単純にすることには制御論理を単純にしたり、似たようなコードを繰り返さないことなど、「正しい論理であることの検証が容易」であることを優先します。
32
+
33
+
34
+
35
+ - 実行性能を最適化する
36
+
37
+ 制御論理を単純にして、実行ステップが最小になることを優先します。場合によっては似たようなコードを繰り返すこともあえてやることがあります。
38
+
39
+
40
+
41
+ 自分の回答は前者「バグを減らす」を基準に「制御論理の単純化を含む、いくつかの観点」を総合して考えています。一方質問者さんの意識には「制御論理が単純である」が第一にあるような気がします。それは性能優先という意味では単純と言えます。ただバグを減らすという視点から見ると単純とはいえません。
42
+
43
+
44
+
45
+ 性能優先:ご質問のコード > 自分の回答
46
+
47
+ バグ排除優先:ご質問のコード < 自分の回答
48
+
49
+
50
+
51
+ といってよいと思います。
52
+
53
+