スキップしてメイン コンテンツに移動

[CodinGame] Skynet - The Chasm - Training

最近、CodinGameというプログラミングでゲームするというものにハマって時間を泥棒されている今日この頃です。
なかなか更新が捗らないので攻略サイトの真似事でも始めてみます。
正解は書かないので、問題が英語なのでなかなかとか、いまいちよく分からないとか、楽しみたいけどハマれない人たちの楽しみは奪わずにやっていきたいと思ってます。




CodinGameの[Skynet - The Chasm - Training]は、バイクで加速、ジャンプして穴を飛び越え、止まるという簡単な動作をプログラミングで制御するというものです。
制御するコマンドは「SPEED」,「SLOW」,「JUMP」,「WAIT」の4つで各フレームごとにこのコマンドを出力して制御します。

制御に際して提供されているデータは
  • 穴までの距離(R)
  • 穴の長さ(G)
  • コースの全長(L)
  • バイクのスピード(S)
  • バイクの位置(X)
の5つです。
このうち、バイクのスピードとバイクの位置は各フレームごとにバイクは進んでいくので毎フレーム取得する必要があります。

考え方

とりあえずスピードをがんがん上げて穴をジャンプする事で、穴を超える事はできます。
コースの終点も落下するようになっているので、飛んだ後はスピードを緩めて止まる必要があります。
後は、ジャンプするタイミング、スピードを緩めるタイミング、スピード調整で上げも下げもしないタイミング、そして加速するタイミングを条件分岐するだけです。

勘所としては
  • S + X = 次のフレームの位置
  • ジャンプした後は必ず減速
  • WAITする条件に注意
  • スピードの上げすぎに注意(しきい値がある)
というところを意識すれば、すべてのテストを通す事が可能です。

TDDの感覚を身に付けつつ、ゲームする感覚でなかなか面白いですね!

Good luck!!



コメント