Theories of Pleiades

技術の話とかイベントに行った話とか思ったこととか

#procon29 に参加しました

※この記事にはhsm_hxの呪詛と自責が非常に多く含まれています。


表題の通り、第29回高専プロコンに参加してきました。 高専プロコンは初出場2度目の参加です。

今年は競技部門に参加して、結果は予選敗退となりました。参加までの話と本大会の参加記とを兼ねて記事に書き残します。


プロコン前日まで

去年のプロコンに見学で参加した際、自分と同じように高専で勉強している人たちの作品を見て衝撃を受け、来年は必ず作品を出す側で参加してやると心に決めていました。

本来であればぼく自身は課題・自由部門向きのスキルセットをしているはずなのでそのどちらかに出たいと思っていたのですが、部内で必ず出場しなければいけない競技部門の開発人員が足りていなかったため穴埋めとして競技部門に参加することになりました(ここが間違いだったことは明白)。

今年の宇部高専競技部門チームはなんと13人の大所帯で、5年生1人4年生2人3年生1人1年生9人からなります(ここが間違いだったことも明白)。

唯一のプロコン経験者として5年生の先輩がいたのですが、編入試験で忙しいためプロコンの活動に参加されることはほとんどなく、プロコン未経験の4年陣2人で開発を進めることになりました。


例年の弊部プロコンチームはソースコードをLINEか何かで受け渡ししていたらしく、Gitが使われたことがなかった(それどころか弊部にはいつのものかわからない課題部門か何かに提出したであろうソースコードが印刷された7cmぐらいの紙の束が残っています)ので、さすがにそれはまずいだろうと思ったぼくはとりあえず6月のうちに1年生向けにGitやGitLabの使い方を解説した資料を作り、また当初は開発にも少しは関わってもらいたいと思っていたためC++の講習資料(これはAPG4bをほぼそのまま投げただけでしたが)を作って1年生に投げつけました(ここも間違いだったことは明白)。

各自の進捗はTrelloで可視化して不明な点があればぼくにメンションするように、と伝えて期限を切っている間にぼくは部長仕事なんかをしていました(ここが間違いだったことも明白)。


そして現在のTrelloの画面がこちらになります。

f:id:mwc922_hsm:20181031165436p:plain

あれっ?????????????????????これはなに?





さて、弊部で真面目に開発を始めることができたのは8月も中旬に差し掛かるころでした。
このときにやっとぼくがGUI担当、もう片方がソルバ担当という役割分担が為され、雑にGUIを書き始めます。Tkinterわからないになりました。素直にJSに魂を売ってElectronを採用するべきでした。

という感じで8月が終わるまでにはGUIがほぼ完成していた―――が、ソルバ担当は夏休み中インターンに行っており、ソルバとGUIの連携が取れたのは10月、学校が始まってからでした(あれ?)


10月初週に10人の力で無限に対戦を行いソルバの動作方針を決定、それからソルバ担当が死ぬ気で開発、ソルバが完成してからぼくがGUIとソルバの連携を取る、完成したのはプロコン5日前とかそれぐらいだったかと思います。地獄だった。


更にここまで実践練習も0、ぼくは司令塔だったので卒研中にひたすら人力でソルバと戦って操作には慣れていましたが、エージェント2人が意思表示方法を確認したのはプロコン2日前。大丈夫かこのチーム(大丈夫ではない)。

実際実践練習をしようにもチームメンバーにはGUIの使い方を教えても一瞬で忘れてしまうしぼくがLinuxしか使わないのでWindowsPythonが導入できなくてGUI動かないからぼくの個人機しか使い物にならないし他にWindowsがわかる人間もいないしで完全に崩壊 これは本当に高専プログラミングコンテスト出場チームですか?

前日にホテルの中で小さいトランプとカードを使って意思表示の練習をしましたがエージェント片方完全に何も意味がわかっていなかったなどがあり炎上を確信しました。死ぬかもなと思った(これは完全に正解)。


プロコン本大会

競技部門

直前まで緊張しすぎて手足がめちゃくちゃに震えてました。試合中も震えてました。

予行演習中にGUIのバグを踏んでしまい、死ぬ気で修正しました(バグの原因は一瞬で摘めたのでよかったです)。そのかわりに昼食が犠牲になったのと、ホールを出てから昼食を摂ろうと鞄を持ってホールを駆け上がったら階段に躓いて派手に転けました。初戦が痛くて辛かったです。


肝心の対戦についてですが、1ターン20秒足りねえよバカ!!!!!!!!というお気持ちになりました。

自分と敵の行動をGUIに入力してソルバを走らせトランプを探してエージェントに指示、を繰り返す40ターン……………などというものは存在しなくて、途中で実際の盤面とGUI上の盤面に食い違いが生じたり(入力ミスや伝達ミス)、エージェントがこちらの指示を見ていない、人間に隠れて相手の行動がそもそも目視で確認できない、などがありました(悲しい)。


結局ソルバを使えたのは最初の10ターンぐらいで、残りは地頭で戦っていました。これが高専プロコン人力部門。

初戦で完全に心が折れてしまって半泣きになって「ごめん盤面がなんか合わなくて……………脳味噌がバグった………………ごめんなさい………………………」としていました。
ぼくの精神がイカれはじめていたのを見かねたチームメンバーにはめちゃくちゃ諭されました。

初戦の相手の香川高松さんが試合後挨拶に来てくれていなければ無限謝罪botと化していた自信があります。本当にありがとうございました。


予選は3戦して2勝1敗、ブロックには2勝1敗が呉、豊田、宇部と3チーム並んだため総ポイント数で勝敗が決まりましたが残念ながら宇部は3位だったらしいです(人力で突破してもつらいだけでしたが)。


2日目はGUIを改良して1日目に使わなかった機能を消したりできる限り動作を単純化して臨みました。 さらにトランプもどうせ1~8が出せればよかったのでそれなら手でいいよねとなり指で数字を指示する方法に変更することにしました。

ただ、敗者復活戦で勝ち上がってしまうと本当に課題自由や企業ブースを見ることができないため、「もうやだ勝ちたくないもうやめようよぉ……」とずっと言っていた気がします。知り合いの私物のトランプを見て身震いをするほどにはトランプにトラウマを植え付けられました。


敗者復活戦は波乱の連続で、対戦表が間違っており確認のため40分ほど余計な時間が起きたり、ぼくたちの出場した敗者復活戦第4回戦ではそもそも対戦する盤面が対称になっておらず不利なチームがあったため再試合が起きたりとかなり時間が押すことになりました。

このせいで決勝のターン数が半分に削れたりぼくの課題自由散策時間が大幅に消費されたのでとても悲しい気持ちになっています。


競技部門を終えてみての感想ですが、GUIはもっと作り込めたはずでした。作り込まなかった私が全面的に悪いと思っています。正直人の影になって移動が見えないとかは想定外ではあったのですが、それも実際に練習試合をしておけばわかったことです。

競技自体ももう少し良くできたのでは、という気持ちはありますが、自分たちにも問題があった以上そこを修正できていればちゃんとプログラムで勝負できたのに…という後悔の念が強いのは確かです。せっかく頑張ってソルバ書いてくれたのにちゃんと使えなくてごめんなさい。本当にごめんなさい。ぼくのマネジメント能力がもう少し高ければ、あるいは存在するそれを使いこなせていれば、もう少し良い結果になったかもしれません。

ただ、その練習試合をしたりという環境が弊部になかったのもまた事実です。前述の通りGUIを扱える人間がいなかったり、チーム内にWindowsで環境構築ができる人間がいないのにLinux機もなかったり、明らかに高専プロコンに出るための体制が整っていなかったことは今後の部活としての反省点だと思います。

今後もコンピュータ部がプロコンに出ていくという方針を続けるのであれば出場する体制が整っていないことは必ず改善すべきです。後輩たちよろしくな!ぼくはもう知りません。


課題・自由部門

全然回れなかったよ!!!!!!!!!!!!!!!!!!!!!!(全ギレ)

課題は津山、明石、一関、豊田の作品を、自由は仙台広瀬と鈴鹿の作品を見てきました。どれもめっちゃ完成度高くてよかったです!!!!!


どこもアイデアの着想点であったり作品のコンセプトなど、「ああ~~~そんな発想もあったのかなるほどな~~~なるほど~~~なるほどな~~~」という気持ちにさせられました。ブースでめちゃくちゃはしゃいでいた自信があります。

個人的には一関の課題と鈴鹿の自由が特に好きでした。あと豊田の発想が楽しくて気に入ってます。

一関の課題部門の作品のコンセプトが「地元の人に地域の良いところを知ってもらう」ということで、地元大好きなぼくにめちゃくちゃ刺さりました。ぼくの中では最優秀賞です。本当に良かった。プロダクトそのものも凝っててよかった。タッチディスプレイうちもほしい。

鈴鹿の自由部門の作品は起業家甲子園に行くらしいですが、これもめちゃくちゃ良かったです。勉強会のプレゼンシステムということで、身近なところから発想を取ってこれるところがなんというか普段からいろいろなことを考えながら生きてるんだろうなぁというか、何と言い表わせばいいのかわからないですが、ああ~すごいなあと思いました。

確かに勉強会行った帰りはしばらくハッシュタグを眺めて参加した感想のブログが出ないか監視していたり、運営側としてもアーカイブを取るためにカメラやら何やらを準備して~と手間になるので、そういう面倒なものをwebアプリで一元管理してくれるの本当に良い、最高じゃんといった気持ちです。正直感動しました。


その他

今回も参加者との交流が最高に最高でした!!!!!!!!!!!!!!!!!!!!

競技で当たったチームにも結構知り合いがいて挨拶できたり、知り合いの作品ブースに行っては「ああ~みんな頑張ってるんだなぼくも頑張らないとな~」となったり、一緒にごはんを食べながら技術の話をしたり、ゲームセンターでお疲れ様会をしたり、普段の学校生活では絶対にできない経験をたくさんしてきました。
みんなで見る競技決勝、めちゃくちゃエモかったし80ターンで見たかったなあという気持ちです。


普通に徳島駅前を歩いていても知り合いに出会ったり、道端で迷っている知り合いを駅まで連れて帰ったり、たまたま会った知り合いにラーメンの替え玉無料券を譲ったり、ホテルのロビーで知らない人にぼくの話をされていたり、高専生だらけの徳島駅前マジで最高に楽しかったです。

年に1度しか受けられない貴重な刺激を受けることができました。


まとめ

全体的にはプロコン最高でした!!!!!!!また絶対に来年も行きます。多分そのためにぼくは高専に籍を置いているんだと思います。

詳しくはまた別で書こうと思いますが、ぼくは今年度いっぱいでコンピュータ部を辞めることに決めました。なので、次は学内公募でコンピュータ部のチームと戦って勝って堂々と宮崎に行くつもりです。

来年が楽しみです。絶対にガチプロになって宮崎行ってやるからな!!!!!!!!!!!待ってろ宮崎!!!!!!!!!!!!!!!!!人生最後の高専プロコン絶対に表彰台に立ちます!!!!!!!!!!!!!!!!!!!!!!!!!!!!!