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

回答編集履歴

2

ADVゲームの例とオブジェクトの話を追加

2017/11/27 05:26

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -4,4 +4,25 @@
4
4
 
5
5
  でも、あえてロジックというなら、
6
6
  **状態遷移**とか**フローチャート**とか、
7
- オートマトンとか、グラフ理論とか、その辺でしょうか。
7
+ オートマトンとか、グラフ理論とか、その辺でしょうか。
8
+
9
+
10
+ ---
11
+
12
+ 屋敷を探索するADVゲームを考えてみます。
13
+
14
+ たとえば、同じ部屋を三回訪れるとトラップが発動するとか、
15
+ 何かの演算が発生しただけで、すぐに**HTMLの限界**が来ます。
16
+
17
+ また、プログラム言語で書く場合でも、たんにIF文だけで書くと分岐が複雑になります。
18
+ とくにPHPやJavaならOOPで考え、**遷移する状態にオブジェクトを当てはめ**ます。
19
+
20
+ 箱と矢印の箱、あるいはグラフのノードを、オブジェクトに見立てるイメージです。
21
+ また結局、ステートパターンとかも、ステートマシンの実装パターンのひとつです。
22
+
23
+ 一部屋につき一オブジェクトみたいな感じで、
24
+ その部屋の訪問回数とかは、部屋オブジェクトが状態で持つわけです。
25
+
26
+ これの何が良いかというと、仕様とコードが一対一対応してるから、
27
+ 「この部屋にこういうイベントを作りたい」みたいに仕様変更するときに、
28
+ ネストしたIF文の分岐を追わなくてよくなります。結果、変更容易になる。

1

ハイパーリンクの語を追加

2017/11/27 05:26

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 表現するベースとなるロジックの書き方、考え方
2
2
 
3
- **HTML**でもできますね、これ。
3
+ **HTML**の**ハイパーリンク**でもできますね、これ。
4
4
 
5
5
  でも、あえてロジックというなら、
6
6
  **状態遷移**とか**フローチャート**とか、