- 156 名前:名前は開発中のものです。 mailto:sage [2008/05/26(月) 00:39:42 ID:J4tqU4Kx]
- >>151
>がんがん追加してください じゃあ、もう少し追加してみる。 「殴られたら停止する」を、「殴られたら青→黄→赤の遷移を強制的にひとつ進める」に修正。 「点滅状態からの復帰時、点滅状態に遷移する直前の状態に戻す」を追加。 class 信号 { enum State { 赤, 青, 黄, 点滅 }; State state, oldState; void 実行() { switch (state) { case 赤: 赤処理(); break; case 青: 青処理(); break; case 黄: 黄処理(); break; case 点滅: 点滅処理(); break; } } void 殴る() { if (state == 赤) state = 青; else if (state == 青) state = 黄; else if (state == 黄) state = 赤; } void 夜になる() { oldState = state; state = 点滅; } void 朝になる() { state = oldState; } }; >Stateを用いると文の上下の意味的なつながりがなくなるため >規模が大きくなるほどコードが分散して理解するのが困難になります ところで、この部分が何を言ってるのか良く分からないんだけど、もう少し説明してくれない? 関数が長くなるから読みにくくなるってことじゃないよね? >>154 前にも書いたけど、そういうのは同じレベルで実装しないで、 コルーチンを使いたい部分をスクリプトで実装するのが良いと思う。
|

|