Darkside(リンクエラー修正しました)

2014年1月10日(金) 21:24

整数解を探せ

 第2ループ前に使用可能な33フレームを、どう割り振るか。

1)AとBの同時押しにより、速度を+256。
 ガードビームで低下した速度を、最高速付近まで回復させる。
 1フレーム。
2)AもBも押さず、急旋回。
 ガードビーム脱出後は、アクセルオフだと内部速度は2ずつ低下する。
 若干フレーム。
3)Bを押し、再加速。必要なら、旋回は続行。
 最初に速度が+256され、その後は4ずつ低下する。
 若干フレーム。
4)Yを押し、ブレーキ。必要なら、旋回は続行。
 速度は14ないし15ずつ低下する。
 若干フレーム。

2)と3)と4)の合計が、32フレームであること。
4)が終了した時点での内部速度が2304であること。
 この2つを満たさねばならない。
 ある程度まっとうな結果が得られるはずの解は、何通りか存在する。4)→3)→2)と速度を逆に辿り、使えそうな内部速度パターンを列挙する。
 3)と4)は単純な足し算引き算の組み合わせだし、2)はヘアピンを回り切るのに必要な現実的なフレーム数に収まらねばならない。
 まるで、難関中学入試の算数問題か何かである。

 ヘアピンへの突入進路を微調整し、脱出時の速度を探る。
 これが、使えそうな数通りの内部速度に一致してくれるかどうかが勝負である。また、ヘアピンをいい感じに旋回し脱出できねばならない。
 2周目のヘアピン脱出後は、すぐ前を邪魔カーが走っているから厄介だ。

 自明ではないのは、2)の必要フレーム数。
 ヘアピンを曲がり切るには、最低10フレームは必要な感じである。かと言って空走が長いのもロスだから、最大は17フレームまでと決める。
 2)が10〜17フレームの間に収まる整数解をすべて列挙し、表にまとめる。
 いざそれを使って調査しようとしたところ、そんな面倒な作業やってられないと気付く(汗)

 解の数がそれほど多い訳ではないので、lua スクリプトに自動照合させることにした。実際にゲームを動作させるため、ケズりながらの減速など特殊な場合も正確に内部速度をトレース可能。途中で2304を超過しても、トレース可能。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4