ICFP Contest 2019 振り返りメモ

osak.hatenablog.jp

シミュレーターを作ってました。が、そこそこバグらせて結構迷惑をかけてしまいました……

雑感

  • 入出力を処理する実装がAI側とシミュレーター側にそれぞれ存在していて、片方で直したバグがもう片方(主に僕の方ですが…)で直っていなかったりして良くなかった。
    • ICFPC の入出力はたいてい面倒なので、競プロ形式みたいな共通のフォーマットを決めてやったほうが良さそうとは思いつつも、途中の仕様追加で全てが崩壊したりしそうで難しい。
  • Docker と Jenkins でデプロイがある程度自動化されていて快適だった。osa_kさんすごい。
    • しっかりDockerを使えばTypeScriptに縛られずかなり色んなことができたはずなので、もっとちゃんと乗っかればよかった。
  • ブラウザで動かすシミュレータ→React + TypeScript と短絡的に考えてしまったのはあまり良くなかった。
    • 全部をTypeScriptで実装する必要はなく、例えば塗り判定やアイテム取得のタイミングなどのややこしめの部分は Rust なり C++ なりで実装しておいて Wasm にしておくとかでも良かった。
    • 特に今回は mkut さんが便利ライブラリをC++で作っていたのでそれに乗っかったほうが良かった。
    • (そもそも初手のシミュレーターの設計が良くなかったΩ\ζ°)チーン)
  • なんとなく全体的に遠慮がちになってしまって、互いのコードの内容を把握していなくて良くなかった。
    • 寝る前に引き継ぎ的なのとかを軽くするだけでもだいぶ良くなりそう。