# プロコニストになるということ
これは[東京高専SPC同好会/プロコンゼミ老人会 Advent Calendar 2022](https://adventar.org/calendars/7836) 1日目の記事です。
---

にゃんぱす〜!ようこそ東京高専プロコンゼミへ。ここでは、コンピュータが大好きな愉快な仲間たちが今日ものんびり暮らしています。天井に吊られたはんぺんが気になりますか?あれは我々の生活を支える重要なインフラストラクチャです。朝ここへ来たら感謝の気持ちで見上げましょう。
あなたの新たな旅の始まりを祝って、乾杯しましょう。エナジードリンクは初めてですか?数日すればこの身に染みる味を忘れられなくなりますよ。

まずは搭乗手続をしましょう。コンピュータは持ってきましたか?良いですね。SurfaceやMacではなくて安心しました!
おっと、あなたのコンピュータにマルウェアが入っているようですよ。マルウェアを退治してArchLinuxという素敵なソフトウェアをインストールしておきました。使い方が分からない?大丈夫です。systemdとpacmanが何とかしてくれます。

では早速ですが、プログラミングを始めましょう。え、やったことがない?大丈夫です。C++は初心者でも書けるとても優しい言語ですよ^^分からないことがあれば聞いてくださいね。
今年のプロコンではパズルがQRコードの形式で渡されるので、QRコードを読むためのプログラムを書いてみましょう!OpenCVというのを使うと良いらしいですよ。まあ、とりあえず3人で取りくんでみてください。
---
俺たちは、QRコードリーダーを作ることになった。
OpenCVというやつを使うというように言われたが、こいつは画像処理のための何からしい。つまり、これでQRコードを認識してデータを取れれば勝ちという訳だ。チームメンバーの皆でQRコードの仕様書を読みつつ、C++について勉強することにした。LINEグループも作った。

幸先の良いスタートだ。QRコードの仕様もある程度分かってきて、何に取り組めばいいのかはなんとなく分かってきた。プログラミングに取りかかる前に問題を細分化して細かいタスクにしなくてはいけない。

うん、良い感じだ。そんなこんなでQRコードリーダーの製作に取りかかっていた。


---
あー。zbarとかライブラリあるよ?QRコードリーダー。OpenCV使うのはWEBカメラで画像取り込むときだけよwなんでQRコードリーダー自作しようとしてるの?w
---
失敗はよくあることです。特にプログラミング初心者は失敗を繰り返すことで成長し、立派な黒魔術師へとなるのです。あなたたちは、ライブラリというものを使うということを知らないが故にQRコードリーダーを自作しようとしてしまいました。しかし、そんなものは他の人が作ったものを使えば良い。QRコードの誤り訂正とか歪み補正とか難しいことは考える必要なかったのです!
---
ZBarとOpenCVを使ってQRコードリーダーを完成させました!良くやりました!
では、次に進みましょう。プロコン本戦では、パズルを人間がはめこんで回答していきます。コンピュータはパズルのデータを元に人間を補助するような設計にしたいです。つまり人間とコンピュータを繋ぐインターフェースが大事ですね!GUIの完成度を高めていきましょう。ホワイトボードの前に集まってください。説明しますよ!


これが現状のインターフェースです。見栄えも操作性の良くありません。では、改善宜しくお願いします。
---
さっそく俺たちは作業に取りかかることにした。

魔材が身に染みる。見栄えの良いGUIを作るため、世の中にある様々な色について調べてみた。そういえば、鉄道のラインカラーというのは、路線図で複雑に入り組んでいてもとても見やすい。これを使うことにしよう。

---
夜も遅いですね、ラーメンでも食べにいきませんか。この辺りにうまいラーメン屋があるんですよ。

ラーメン二郎は初めてですか?この味を知ったら、もう後戻りはできません。

腹を満たしたらまた作業をしましょう。そうそう、下校時間なんてものはあって無いようなものですから、僕と一緒に夜を明かしましょう。

---
開発も佳境に入ってきた。バグも幾つか見つかって辛いが、来週からいよいよプロコンの本戦だ。



---
プロコン本戦会場より愛を込めてこのポエムを贈ります。

※この文章は多分フィクションです。こんな部活あったら嫌だ。