Coding_Gamesメモ_Dead_men's_shot

Coding_Gamesメモ_Dead_men's_shot

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

多角形の当たり判定

ルール

指定された点が多角形の的の中にあるかどうか判定

  • 多角形の角はすべて180度未満(○:△□、×:☆)
  • 多角形内、多角形の線上はあたり、それ以外はハズレ

インプット

1行目 的の角の数 (N)
2行目からN行 角の座標、反時計回り
次の行 あたり判定を行う数 (M)
次のM行 各判定を行う座標

アウトプット

判定ごとに改行区切りで"hit"か"miss"を出力

考え方
多角形のすべての角で角から次の角までの角度より小さければ多角形の範囲内
1度、線を片側0,0 から右肩上がりなど同じ方向に直し判定座標が線より上か下かを判定する
f:id:tiridukano_yagigame:20200911230742p:plain

java には多角形を扱うPolygon クラスがあり、当たり判定もできるので問題を解くだけならそっちを使うと楽

難しい

Coding_Games:https://www.codingame.com/  
Polygon (Java Platform SE 7) - Oracle Cloud:https://docs.oracle.com/javase/jp/7/api/java/awt/Polygon.html