序文
私が今日アーチェリー900ラウンドを撮影していたとき(10が6矢印で終わり、10が3矢印で終わり、合計90の矢印と最大スコア900)、この挑戦を考えました。
アーチェリー(FITAが提供するターゲットフェース [あなたが撃つ紙)で射撃していると仮定すると、]矢印ごとに最大スコア10を獲得できます。ターゲットフェースには直径が10から11のリングが含まれ、互いに入れ子になっています。内側のリングから外側に向かって、10ポイントから1ポイントまでカウントされます(11リングの場合、「X」としてカウントされる2番目の最も内側のリングがあります。より高い値)。観察する:
もちろん、上の図に見られるように、FITAメトリックスコアリングを参照しています。よく見ると、最も内側のリングが見えます。これは色あせた点線で、スコアはマークされていません。それが私が言っていた「X」ですが、ボーナスを競わない限り、それに注意を払う必要はありません。
チャレンジ
入力として完全に正方形の画像(または必要に応じて画像ファイル名)を受け取る関数(または言語が関数をサポートしない場合は完全なプログラム)を作成し、いくつかの緑(HEX#00FF00、RGB(0、 255、0))いくつかのサイズのドット、およびスコアを返します。画像には緑の点以外のデータが含まれている場合がありますが、緑は常にまったく同じ色合いになります。
正方形の画像がターゲットの顔を表しており、最も外側のリングが4つのポイント(上中央、下中央、右中央、左中央)に接触していると想像できます。表現されたターゲット面は常に同じ比率で、すべてのリングの幅は入力ターゲット画像の幅のちょうど1/20になります。例として、入力寸法が400px x 400pxの入力画像が与えられた場合、以下に示すように、各リングの内側の幅は20pxであると想定できます。
明確化
- 2つの別々のリングに触れると、2つのリングのうち高い方がカウントされます
- ボーナスを試す場合を除き、ミスや「x」ケースを自動的に考慮する必要はありません。
- あなたは緑の円が重なっていないと仮定することができます
- また、その緑の色合いの他のピクセルが画像にないことを仮定することができます
- 画像はPNG、JPEG、またはPPM形式のいずれかです(選択)
- この質問の投稿前に作成された場合、外部画像処理ライブラリが許可されます
- 1つのターゲット上のすべての緑色の円の直径が同じであると仮定できます
- 重複する円のボーナスを撮影する場合(hah)、画像内の少なくとも1つの円に別の重複する円がないと仮定できます。
- 標準的な抜け穴は許可されていません
テストケース
次の2つのケースでは、それぞれ52を獲得する必要があります(または、ボーナスの場合は、1 'x'と1ミスの52)。
そして、この最後のテストケースは25を記録する必要があります。
ボーナス
- ミスの数(リングの外)も返す場合は-25バイト
- Xの量も返す場合は-30バイト(最も内側のxが画像の幅の3/100であり、10が画像の幅の2/100であると仮定します。1-9の比率は変更されません)
- 重複する円を考慮した場合、-35%バイトカウント
これはコードゴルフであるため、最小バイトが勝ちます。楽しんで!