D班 C言語テトリスをフルカラー拡張+あれは懐かしの3D迷路
D班も、A班同様に男子高校生だけの編成。授業で完成させたC言語版テトリスを、SDL(Simple DirectMedia Layer)を使ってフルカラーでグラフィカルに拡張した。ライブラリのインストールがわからない段階から、自分たちで調べて、実現した。実演でも見事に動作しており、操作をテキスト形式でログに取れる機能も追加されていた。
SDLを使ってみた感想について、ドキュメントがあまりまとまってない印象があったと語ると、チューターから日本でSDLを使ってるひとは少なく、勉強会もいつも同じメンバーで開催している状況なので、ぜひこれを機に仲間になってほしいというラブコールもあった。
勉強会への参加については、4日目夜にセキュリティコースと合同で行われたBOFでも、吉岡講師と天野講師が「Web出会い系」をテーマにプログラミングコースの参加者と共に大いに語り合っていた。天野氏が主催する1000スピーカーなどでキャンプ卒業生が発表をする日もすぐに来そうである。
なお、実装の段階で作業量が少なかったひとりが、遊び半分でテトリスのコードをいじって3D迷路も作製。実演されると、懐かしのウィザードリーのようなテキスト3D迷路に会場は大拍手。実はフルカラーテトリスが完成しそうになかったので、迷路に入って「迷宮入り」というオチをつけるはずが、なんとテトリスができてしまったというダブルオチだった。
E班 テキストベースのドクターマリオ
テトリスよりさらに複雑になったオチゲーの名作「ドクターマリオ」を、授業のコードを元にテキストベースで作り上げたのがE班。高校生から大学生までの混成チームだ。テトリスからの技術的チャレンジとしては、まずコンソールで色を表示することで、これはSDLで実現したとのこと。
また、テトリスでは画面に表示するのはブロックだけだったが、ドクターマリオでは菌とカプセルを区別して表示しなかればならない。カプセルは2ブロックが1組になって落ちてくるが、それがまだくっついているか離れたかを判定しなければならない。同じ色の菌またはカプセルのブロックが4つつながると消せるが、消えたあとに残ったカプセルが落下するところを作り込むことが難しく、ソースコードの読解で吉岡主査の協力を仰いだ。
余談になるが、フリーソフトウェアの標準デバッガ「gdb」の使い方を教える吉岡氏の授業で、吉岡氏はgdbをコマンドラインからではなく、Emacsエディタをいったん立ち上げてから呼び出していた。それだけ見ても吉岡氏が「Emacsは環境」派だということがわかるが、gdbという固有のコマンドの使い方だけでなく、そういうフリーソフトウェア流の考え方そのものが伝わっていくとさらに面白くなるかもしれない。
演習のテトリスのプログラムでは、ブロックを回転させる式が教材の中で説明されていたが、マリオでどのようなアルゴリズムになるのかを夜中の眠い頭で考えるのが辛かったというが、回転も落下も見事に実現されていた。元がグラフィカルなドクターマリオをコンソールベースでシミュレーションするという発想も面白い。D班の3D迷路もそうだが、敢えてテキストベースで少しチープに実装するとウケが良かったようである。
