08/05/26 00:39:42 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
前にも書いたけど、そういうのは同じレベルで実装しないで、
コルーチンを使いたい部分をスクリプトで実装するのが良いと思う。