--------

問題

今年の問題は、以下の通りです。ルールをご確認の上、プログラム作品ができましたらご応募ください。

問題とルール

問題
玉ころがし 1枚の板の上に、玉が1つ載っています。板を傾けて玉をゴールまで導き、高得点を目指してください。
ルール

板を傾けると玉に加速度が与えられます。板をうまく傾けて玉を動かし、板のところどころに開いている穴や板の端から玉を落とさないよう、ゴールに導いてください。

1ゲームの流れ
  • スタートからゴールに着くまでの一連の流れを「1ゲーム」と呼びます。板の形状は1ゲーム毎に変わります。
  • 1ゲームの処理はターンと呼ばれる単位で行われます。このターン毎に、玉に与えられる加速度が決定します。
  • 決定した加速度から、玉の速度と位置が更新されます。このターンを繰り返し、規定ターン内にゴールにたどり着くようにします。
さらに詳しいルールについては、チェックプログラムに含まれているREADME.txtをご覧ください。

選考基準

  • 1ゲーム中に玉がゴールにたどり着くまでのターン数からスコアが計算されます。ターン数が少ないほど、高いスコアになります。
  • ゲームを規定回数繰り返し、スコアの合計を競います。

チェックプログラム

下のボタンをクリックして、チェックプログラム(Zipファイル)をダウンロードしてください。 ダウンロードしたZipファイルには、以下のファイルが含まれています。
README.txt はじめにお読みください
answer.cpp 応募作品サンプル
answer.hpp answer.cppにインクルードするファイル
ball.sln Visual Studio 2008用ソリューションファイル
ball.vcproj Visual Studio 2008用プロジェクトファイル
ball.xcodeproj Xcode用プロジェクトファイル
makefile GNU-CC用メイクファイル
上記以外に、チェッカーのソースファイルもあります。
チェックプログラムを通るプログラム作品ができましたら、マイページにログインしてご応募ください。

作品規定

  • オリジナルのプログラムに限ります。
  • 使用可能な言語はC++言語です。
    ただし、以下の機能は使うことができません。
    • インラインアセンブラ
    • 64ビット整数型
    • 標準ライブラリ
    • new,delete
    • 例外(try,catch,throw等)
  • 評価時に、#include, #pragma行は自動的に削除されます。
  • 巨大なプログラム作品はエラーとなります。
  • 応募作品の評価時の制限時間は180秒です。
  • 必ずPC上で実行してチェックが通ることを確認してから応募してください。
  • 特定のゲーム(板のパターン)に依存したチューニングを行うことを禁止します。例えば、X番目のゲームの時は、あらかじめ用意した配列に基づいて行動を決定するというような処理は禁止とします。
  • 応募作品は、社内オリジナルの評価環境でチェックします。この時に使用するチェックプログラムは、配布しているものとは多少異なりますのでご了承ください。
  • 応募作品は応募時に自動チェックされますが、後ほど実行委員会のジャッジが直接チェックする場合があります。たとえチェックが通っていても、不適切と認められる場合は無効と判定されることがありますのでご了承ください。
11月26日追加:再評価のお知らせ
  • 評価プログラムに以下の不具合があったため、これを修正し、 これまでの全ての投稿について再評価することを決定しました。
    問題点
    Action.mAccelのx, yに非数(NaN)等が入っていた場合の処理がないため、動作が不定となる。
    対応策
    NaN等が入っている場合はエラー扱いとする。
    また、これに伴い、配布プログラムも修正版に差し替えましたので、 そちらをもう一度ダウンロードしてください。 全ての結果が出るまでに、しばらく時間がかかることが予想されます。 ご迷惑をおかけして申し訳ございません。
--------