競プロにおける Processing の利用+おまけ
この記事は
Competitive Programming (2) Advent Calendar 2018 - Adventar 6日目の記事です。
先日は Mister さんの
超自己流! 競プロ解説記事の書き方 - Mister雑記 でした。
こんにちは、初めまして ty70 です。
競プロの皆さんは 日々精進していると思いますが ちょっと横道に逸れて「Processing」というプログラミング言語を紹介したいと思います。
Processing とは
Processing - Wikipedia を引用すると” 電子アートとビジュアルデザインのためのプログラミング言語であり、Java を単純化し、グラフィック機能に特化した言語といえる。”とあります。
要するに、簡単に絵が描けるという事で、昔 BASIC で絵を描いた時の様な ワクワク感が楽しめるという事です。(歳がバレる)
例えば、
これくらいのコード量で
で、こんな事が出来る。
競プロで「Processing」をどう使うの?
自分が作成したコードの結果を 何かしら視覚化して確認したい場合があります。
「Processing」をビジュアライザとして利用します。
下の図は、Marathon Match 93 - CrossStitch で実際に作成したものです。
マラソンマッチにはテスターが付いていて その中にビジュアライザがあるのですが、自分が知りたい部分を強調したいとき、威力を発揮します。
シミュレータとして
また、シミュレータとして「Processing」を使うことも出来ます。
AtCoder のABCの問題をやっていると、「ふむふむ解答は分かった、でも本当にそう動くの?」という事がたまにあります。
最近の問題だとABC111 D - Robot Arms がそうでした。
入力が以下の様で
10
-8 -30
-2 -32
-6 -26
-15 -11
-15 -3
2 4
10 26
0 -6
19 -13
14 -2
その結果が以下の様で
7
32 16 8 4 2 1 1
DLRUDRL
DLRRRRL
DUDLDLL
LRDDRUL
LRDURUL
UDDDRRL
URDLULL
DUUUDRL
RDLLUUL
RLDUULL
のとき、これを視覚化すると
の様になります。
終わりに
ここまで読んで下さってありがとうございます。
他にも色々あるのですが、どれも「帯に短し襷に長し」で今回は紹介する事が出来ませんでした。
文章も短いわけで、おまけに「ABC問題達成表(仮称)」を紹介して終わりにします。
おまけ:ABC問題達成表(仮称)
外見はこんな感じ。
ただ、枠内の問題をクリックすると
と変化します。
クリックする度に
白 -> 緑 -> ピンク -> 黄 -> 白
と変わります。
https://github.com/ty70/Processing
に Processing のコードを上げます。
明日は、__tatamo__ さんの
コマンドラインツールatcoder-cliを公開しました | わたしろぐ です。
追伸:
Processing が今まで無料の枠があったのだが、
Processing.org に行ってみると なくなっていた!
お金がある人は 払ってもいいかも、お金のない人は Processing ダウンロードでググ...ゲフンゲフン...