アカウント名:
パスワード:
30年の時を経て当事者が直接語るというのは感慨深いが、話の中身自体は特に何か当事者にしか知り得ない興味深い事情とか裏話があるわけではなく、現象(8回なにかすると別のフラグが立つ)から容易に想像がつく、フットプリントできるだけ小さくするための実装上の制約以上のものではなかったですね。
しかし逃げるコマンドの回数をカウントしなきゃいけない理由がわからない。雑魚敵に対して>>ドラクエIVでは4回目の「にげる」で必ず逃げられるという仕様は限られたメモリ空間を3bitも消費する価値があるほど重要だったのだろうか。一回あたりの逃げ成功確立を適当に設定しておけば十分な気が。あと「4回試行でかならず成功」を実装するだけならカウンタは2bitで十分な気が。
0回、1回、2回、3回目のインクリメントで4以下の数字をランダムで求める。4の場合は逃げられる。それ以外は2以下の数を書き込む。必ず成功しなくなる。
ビット制約があり正しい作りなならこういう作りかな?
ファミコンではその「ランダム」も曲者っていう印象だけど一つの乱数を共用している場合「4」までしか発生しない(乱数に制限を設ける)ということができないように思う「逃げている」とかをフラグ管理しようと思ったら、メモリ等の制約上それはそれで難しそうだし
あのあたりの実装だと、1バイトの乱数を線形合同法で回してるぐらいじゃないかな。4まで欲しければ2bit取ればいい。綺麗な乱数ではないから、使い方を誤ると悲劇が起こる [srad.jp]
メモリをケチった状況での乱数といえばドルアーガの塔。全60面ありますが、面番号を種とした8bit乱数を使ってアルゴリズム生成した迷路なので、マップデータはゼロ。FLOOR 60 だけは面番号ではなく255を種にしていて、その結果乱数が「オール1になる」という偏りが発生し、「生成した壁が必ず左方向に伸びていく」ので、横線だけという最終面にふさわしい乱数感のないマップのできあがり。乱数の偏りを逆手に取った面白いアイデアと思いました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
まあそうだろうなと (スコア:0)
30年の時を経て当事者が直接語るというのは感慨深いが、
話の中身自体は特に何か当事者にしか知り得ない興味深い事情とか裏話があるわけではなく、
現象(8回なにかすると別のフラグが立つ)から容易に想像がつく、フットプリントできるだけ小さくするための
実装上の制約以上のものではなかったですね。
しかし逃げるコマンドの回数をカウントしなきゃいけない理由がわからない。
雑魚敵に対して
>>ドラクエIVでは4回目の「にげる」で必ず逃げられる
という仕様は限られたメモリ空間を3bitも消費する価値があるほど重要だったのだろうか。
一回あたりの逃げ成功確立を適当に設定しておけば十分な気が。
あと「4回試行でかならず成功」を実装するだけならカウンタは2bitで十分な気が。
Re: (スコア:0)
0回、1回、2回、
3回目のインクリメントで4以下の数字をランダムで求める。
4の場合は逃げられる。それ以外は2以下の数を書き込む。
必ず成功しなくなる。
ビット制約があり正しい作りなならこういう作りかな?
Re: (スコア:0)
ファミコンではその「ランダム」も曲者っていう印象だけど
一つの乱数を共用している場合「4」までしか発生しない(乱数に制限を設ける)ということができないように思う
「逃げている」とかをフラグ管理しようと思ったら、メモリ等の制約上それはそれで難しそうだし
Re: (スコア:0)
あのあたりの実装だと、1バイトの乱数を線形合同法で回してるぐらいじゃないかな。
4まで欲しければ2bit取ればいい。
綺麗な乱数ではないから、使い方を誤ると悲劇が起こる [srad.jp]
Re:まあそうだろうなと (スコア:2)
メモリをケチった状況での乱数といえばドルアーガの塔。
全60面ありますが、面番号を種とした8bit乱数を使ってアルゴリズム生成した迷路なので、マップデータはゼロ。
FLOOR 60 だけは面番号ではなく255を種にしていて、その結果乱数が「オール1になる」という偏りが発生し、
「生成した壁が必ず左方向に伸びていく」ので、横線だけという最終面にふさわしい乱数感のないマップのできあがり。
乱数の偏りを逆手に取った面白いアイデアと思いました。