もともとコンピュータは弾道計算から発展したとか、暗号解読から発展したとか
いろいろな事象の計算から発展したそうです。
プチコンとかの投稿を見ていても。
三角関数はたまに難題としてあがっています。(高校で習う)
あとラジアンと度の変換とかいろんな罠がまってます。
三角関数 ラジアン でgoogle画層検索すると、
山のように教えてくれる画像がでてきます。(それぐらい難題なのかもしれません)
角度の計算をするときには有用なのでシューティングゲームでそれなりの知能のある
敵を作成するときとか、時計の針の先をまわしてみたい時とかによく使われます。
CodinGameに新しくTanks!の投稿があったので、さっそく遊んでみました。
昔robocodeとか、さらに前でロボットバトルとか何度か遊んだ記憶があります。
当時は作れなかったような...
上のタンクたち少し違いはありますがだいたい下のコードで動いています。
自分からみた相手のx,yとの距離から砲塔の角度を求めて、その方向に打ってます。
移動に関しては最初から入っていた回転に、ちょっとだけランダムでずらしました。
33行目が砲塔の角度を算出している行です。
タンジェントで出しています。
このゲームのルールで真上が0度なので90度(ラジアンでpi/2)ほどデフォルトでたして
x座標、相手の方が前の時、向きが逆にならなかったので180度(ラジアンだとpi)反転させています。
その前にプログラムのコメントが山ほどありますが、実はこの倍ぐらいいろいろ試してやっと...
他の方も、いろいろ試行錯誤しているのではないかと考えています。