- 166 名前:名前は開発中のものです。 mailto:sage [2008/05/26(月) 03:53:53 ID:J4tqU4Kx]
- あー、ごめん。「点滅」は色とは関係ないつもりだった。実際は黄色か赤だろうけど。
つまり、State は4つで、夜間は殴ってもなにも起きなくていい。 つか、自分で仕様変更して自分でソース書いてるんだから、 「状態の数が違う」みたいな豪快なバグは入れないよ。 でも、状態が6つだとしても、>>158 はおかしいだろ。 夜間に殴りつづけると、点滅→赤→青→点滅……と変わっていくんじゃないの? 通常時の遷移はわざわざ書く必要もないだろうし、改行が多すぎて拒否されたんで省いたけど、 その部分だけ書くと、こんな感じかな。 class 信号 { static const int 赤時間; static const int 黄時間; static const int 青時間; int timer; void SetState(State state) { this->state = state; timer = 0; } void 赤処理() { if (++timer >= 赤時間) SetState(青); } void 黄処理() { if (++timer >= 黄時間) SetState(赤); } void 青処理() { if (++timer >= 青時間) SetState(黄); } }; >StateをCommandとしてListに突っ込んで というのが分からんのだが、List に突っ込むのは タスク (この場合は信号オブジェクト) であって、State じゃないだろ。 状態ごとの処理は各タスク内で完結してるんだから、さらに複雑にはならんよ。
|

|