水野夢絵の制作したプログラム等を紹介します。
いわゆるひとつのマインスイーパです。25×12の海域に隠されている機雷を避けながら,機雷のない海域をすべて掃海します。詳しくは,お近くのマインスイーパをやってみて(笑)
ただし,このゲームには0~F(16進数)のレベルがあり,8~Eレベルに最大の特徴があります。それは……「1海域に複数の機雷がある」!! 機雷のない海域で表示される数値は「周囲8海域のうち機雷の存在する海域の数」ではなく「周囲8海域に存在する機雷の総数」。つまり2以上の数値が表示された場合,複数の海域に機雷があるのか, 1つの海域に複数機雷があるのかわかりません……
また, Ver-1.0制作時は冬で,しかも自宅が改築前で非常に寒かったため,右手だけで遊べる(左手は脚の下(笑))ように作ってあります。左利きの方には御迷惑をおかけします(?)
他にもレベルごとにクリア時間を10個ずつ記録できたり,「ぴっける君」(ベーマガ1992年10月号掲載)を使用してBGMを鳴らしたり,機種/BASICモード/CPU供給クロック/サウンドボードIIの有無を自動検出したりとかなり豪快な作りです。欠点は,リストの長さもそれなりに豪快だということ(笑)
PC-8801 のグラフィックを,BMP形式に変換してセーブするツールです。
まず何らかの手段でグラフィックを表示させてからこのプログラムを実行し,セーブ範囲・アナログパレットを設定すると変換開始です。あとは,CDOS-IIのUTY.COMなり, PC-98版MS-DOSのFILECONV.EXEを使うなりすれば,普通のBMPファイルとして使えます。変換所要時間(640×200→640x400,PC-8801MC, 8MHz-H,2HDに書き込み)は,Ver-2.2.1で15秒(Ver-0.90: 57分,Ver-1.02: 17分,Ver-2.01: 13分)です。
ベーマガ200号記念プログラムコンテストに投稿したけど,没(泣)
かつてベーマガで, 非常に多くの機種に移植されまくった大人気投稿プログラム「とりでの攻防」(オリジナルは1989年5月号掲載のPC-8801用)。2000年に到ってもUNIX用のプログラムが1度も掲載されたことがないため, 一念発起, 「とりでの攻防」をUNIX用にプログラムすることにしました。2000年6月13日制作開始, 2000年11月9日投稿。ベーマガ2001年3月号に掲載されました。
投稿時の開発環境は, FreeBSD(98)4.1R-Rev01 + XFree86-4.0.1です。FreeBSD 2.x以降, XFree86-3.2以降であれば動作すると思います。Vine Linux 2.0では, Exposeイベントのタイミングが狂うのか, 時々描画されないことがありました。EWS UX/Vでは, シグナル関係の実装が違うらしく, コンパイルは通るのですがまったく動作しませんでした。
水色(左)と黄色(右)のとりでが表示されます。それぞれ射角と射出速度を調節し, 弾を発射します。1度に1発しか撃てません。相手のとりでに命中すれば勝ちですが, 空中に残っている相手の弾は飛んできます。
地形は毎回自動生成されます。弾が地形に当たると穴があきますので, トンネルを掘って攻撃することもできます。
風向風力(中央上の旗)はリアルタイムで変化します。弾は風の影響を強く受けます。
本業が本業だけにC言語は専門のはずなのですが, 知識が怪しいため非常にいい加減なプログラムを組んでしまいました。実際, 投稿後に発売されたBSD magazine No.06を読んで, シグナルまわりの書き方の誤りを知りましたので, その辺りを大幅に書き換えました。
「投稿バージョン」は, 2000年11月8日バージョンを元にMakefileをFreeBSD用にしたものです。configureスクリプト(autoconfが生成するもの)がないのでファイルが小さくなっています。
開発バージョンは開発最先端のものです。autoconfを使っているためFreeBSDに特化していません。手を加えたらその日のうちに公開します。
ライセンス形態はまだ考えていませんが, 一応GPLとしておきます。ということもどこかに書いておかないといけないか。
CGIスクリプトです。テキストアクセスカウンタ/アクセスログ取得「MWEcount」, フォームメール「MWEmailm」の2つがあります。NetNews記事をHTML化する「sakura-article」や, さくらちゃん度チェック「sakura-check」もありますが, C.C.さくらF用に特化しているので公開しません。
なお「MWEcount」はSSIと連携しているため,SSIから呼び出さないと使えません(もちろん改造すれば単体でも可能ですが)。