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

[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!!



コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。