例の無限回廊の分岐数ですが、事実上制限がないことがわかり(実装次第ですが)、停滞していた作業が捗りそうです。ルートの動的分岐(ランダムで正解ルートが変わる)のは反対ルート(戻り)をどうするのかという問題があるので見送ることにしました。残りは役に立つ遊びの選択処理のみです。処理自体はパルプンテの結果選択処理がほぼそのまま使用できます。性別によって選択させる遊びを変えるようにするのも、特に難しいということもなく性別によってONにするビットを変えておき、ビットをOFFにするSRに渡すだけです。このためにパルプンテ同様遊びの配列を定義します。選択後、選ばれた遊びが現在のレベルで実行可能か判断し、実行不能な場合はc=offで抜け、通常の遊び選択処理が行われるようにします。これにより、低レベルのほうが特定の遊びが100%選択される事を防ぐことを意図しています。$001407が何をするかと言うと、指定箇所の2バイトのデータのビットがONの部分に対してに対して、ランダムでビットをOFFにします。ONになっているビットが1つしかない場合にはc=onを同時に返してくるので、ビットを1つだけ残したい場合はc=onになるまで繰り返しコールする必要があります。c=onでリターンしてきた場合には、Aレジスタには残ったビットが下から数えて何番目か(0から開始、#$0080の場合は7、#$0008の場合は3)をセットします*1。この値を配列のインデックスとして使用できます。この処理はすごろくの?マークで選択される結果の部分にも使用されています。すごろくの変更をするときにも使用するので覚えておいてください。コメントをキャンセルメールアドレスが公開されることはありません。コメントは管理者の承認後表示されます。