M.Hiroi's Home Page

X68000 Programming

Tools and Games

[ Home | X68000 ]

CONTENTS

電脳倶楽部に掲載された M.Hiroi のゲームやツールをホームページで公開します。なお、これらのゲームやツールは X68000 用のソフトウェアです。Windows では動作しません。これらのソフトウェアを動かすには X68000 (実機 or エミュレータ) が必要になります。ご注意くださいませ。


著作権は作者「広井誠 (Makoto Hiroi)」が保持します。これらのソフトウェアはフリーウェアとします。自由に使ってください。ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。

Copyright (C) 1996 - 2000 by Makoto Hiroi

おとしてポン

SameGame や SX-BlockDown に類するパズルゲームで、上下左右に 2 つ以上続いている同じ色の駒を取り除いていきます。空いた場所には、上の駒が落ちてきます。縦一列の駒がすべて消えると、それより右側にある駒が左へ移動します。

同時に消した駒の数を n とすると、(n - 1)の 2 乗だけ点数が入ります。全ての駒を消すと 10 万点のボーナスが入ります。また、同じ種類の駒を全て消した場合には、1種類につき 1 万点のボーナスが入ります。ハイスコアを保存することができますので、納得するまで何度でもチャレンジして下さい。

ファイル名
same.x : 実行ファイル
piece.dat : 駒データ
bg.sp, bg.pal :フォント用BGデータ
easy.dat,normal.dat,hard.dat : ステージデータ
makedata.x : ステージデータ作成プログラム
same.c, makedata.c : ソースファイル
same.doc : 説明書
(月刊・電脳倶楽部 Vol.99 掲載)

カラー(Kalah)

相手よりもたくさんの駒を集めれば勝ち、というゲームです。ルールは単純ですが、展開がスリリングでおもしろい思考ゲームです。

カラーの盤面は、6 個の穴が向かい合って並んでいます。左右にはカラーと呼ばれる穴があり、右となりが自分のカラーです。最初は、カラーを除く穴に6 個ずつ駒が入っています。自分のカラーに半分以上の駒(36 個)を集めることが勝利条件です。

ゲームは、自分の穴を選び、その中の駒を全て取り出して、右となりの穴から反時計回りで駒を一つずつ配っていきます。この時、自分の穴とカラー、相手の穴には駒を入れますが、相手のカラーには入れません。駒を配り終えた時に、次のようなスペシャルケースが発生します。

  1. カラーで配り終えた場合、もう一度駒を配ることができる。
  2. 自分の空の穴で駒を配り終えた場合、向かいの穴に相手の駒があれば、 両方の駒を自分のカラーに入れる。これを「両取り」という。
  3. 自分の穴に駒がなくなった場合、相手の穴に残っている駒を全て相手 のカラーに入れてゲームを終了する。

駒の配置によっては、連続してカラーに駒を入れることができます。また、うまく両取りがかかるようにすると、相手の駒をいっきに自分のカラーへ入れることができます。劣勢な状態でも、相手の穴に駒がなくなれば、3 の条件により大逆転も可能です。

ファイル名
kalah.x : 実行ファイル
piece.dat : データファイル
kalah.c : ソースファイル
kalah.doc : 説明書
(月刊・電脳倶楽部 Vol.109 掲載)

アップでポン

アップでポンは、玉をピラミッドのように積み上げていき、先に持ち玉を使いきった方が勝ち、という思考ゲームです。一般にはアッパーハンドと呼ばれています。

5 行 5 列の穴があいた盤の上に玉を積み上げていきます。中央には、中立の玉(このゲームでは紫色の玉)を置きます。先手は赤玉を 28 個、後手は青玉を 26 個持ち、交互に玉を 1 個ずつ置いていきます。この時、玉を置くことができる場所は、「穴の上」か「4 個の玉が作る最小の正方形の上」のどちらかです。

玉を置くことによって最小の正方形ができた時には、次の規則を適用します。

  1. 正方形を構成する 4 つの玉のうち、3 つ以上が同じ色の玉の場合は、その上に同じ色の玉を必ず置きます。同じ色の玉が 2 つ以下の場合は、上に玉を置きません。中立の玉は、赤と青のどちらにもカウントしません。
  2. 1 手で最小の正方形が複数(最大 4 個)できた時や、1 の規則で置いた玉によって新しく最小の正方形ができた時には、全ての正方形に対して 1 の規則を適用します。
  3. 全ての正方形に対して 1 の規則を適用したら手番を交代します。

このように、交互に玉を置いていき、先に玉を使いきった方が勝ちとなります。それから、自分の手番の時に玉を使いきるとは限らない、ということに注意してください。自分が置いた玉によって、相手の玉が無くなる場合もあるのです。また、自分の玉を使いきり、そのことによって相手の玉が無くなることもあります。その場合は引き分けとなり、ピラミッドが完成します。

ファイル名
updepon.x : 実行ファイル
ball.dat : データファイル
updepon.doc : 説明書
source.lzh : ソースファイル(圧縮)
(月刊・電脳倶楽部 Vol.112 掲載)

つないでポン

「つないでポン」は、ルールに従って同じ種類の駒を取り除くパズルゲームです。ルールは、麻雀牌パズルゲーム「四川省」から拝借したもので、同じ種類の駒を 3 本以内の連続した直線でつなぐことができた場合に、駒を取り除くことができます。なお、直線は水平または垂直でなければいけません。

このゲームはランダムで駒を配置するのではなく、必ず解けるデータが付属しています。麻雀牌を使わないので、駒の総数によってレベルを EASY, NORMAL, HARD の 3 段階に分けています。また、クリア可能なデータを作成するプログラムを用意しました。今ところ、データ作成にはけっこう時間がかかりますが、まずは付属のデータで気楽に遊んでみてください。

このゲームには、駒をつなぐ時に直線の表示が無い、という欠点があります。まあ、このホームページの立ち上げが一段落したら、バージョンアップを考えてみたいと思います。

ファイル名
tpon.x : 実行ファイル
piece.dat 駒データ
easy.dat, normal.dat, hard.dat : ステージデータ
mktpon.x : ステージデータ作成
tpon.doc : 説明書
tpon.c, mktpon.c : ソースファイル
(月刊・電脳倶楽部 Vol.114 掲載)

リバーシ

思考ゲームの定番「リバーシ」です。最初の掲載が激光・電脳倶楽部 Vol.2 で、月刊・電脳倶楽部 Vol.132 (1999年5月号) にバージョンアップ版が掲載されました。その後、1999 年夏に「コンピュータリバーシ対決」が電脳倶楽部で行われました。この時、拙作のリバーシが市販のリバーシゲームに、けちょんけちょんに叩きのめされたのを見て、メラメラとプログラマ魂が燃え上がり、思考ルーチンの改良に取り組んだのです。その後、電脳倶楽部編集部の鎌田 (M.Kamada) 氏も参戦し、三つ巴の熱き戦いが繰り広げられました。この戦いの中で拙作の思考ルーチンも強くなり、市販のリバーシゲームにもいい勝負ができるようになりました。

初級者レベルの作者では、もはや相手にならないほど強くなりましたが、中級、上級者から見るとまだまだ弱いのでしょう。腕に覚えのある方は試してみてください。

ファイル名
reversi.x : 実行ファイル
rev_vs.x : 対戦リバーシ
reversi.doc : 説明書
source.lzh : ソースファイル
(月刊・電脳倶楽部 Vol.144 掲載)

六角リバーシ

思考ゲームの定番「REVERSI(リバーシ)」の六角形バージョンです。ルールは通常のリバーシと同じですが、盤とマスの形が六角形になるため、円盤を挟む方向が6方向と少なくなります。形を変えただけですが、リバーシとはプレイ感覚がかなり異なるように思います。リバーシ初級者の作者には十分すぎるくらいに強いのですが、中級、上級者からすると、六角形に慣れてしまえば、まだまだ弱いのかもしれません。リバーシとの違いをお楽しみくださいませ。

ファイル名
hexrev.x : 実行ファイル
hexrev.doc : 説明書
source.lzh : ソースファイル

変更履歴

(月刊・電脳倶楽部 Vol.147 掲載)

八角リバーシ

リバーシの変形バージョンです。通常のリバーシは盤面が 8 行 8 列ですが、八角リバーシでは 8 行 8 列盤の 4 ヵ所の隅を取り除いた盤面を使用します。このため、石の総数は 60 個と少なくなりますが、逆に隅は 8 ヵ所と増えることになります。盤やマスの形が八角形ではなく、隅(角)の個数が 8 個あるので、名前を八角リバーシとしました。ルールはリバーシと同じです。

思考ルーチンは、基本的にはリバーシと同じですが、評価関数の調整が十分ではありません。このため、慣れると簡単に勝てるようになる、と思っていました。ところが、実際にプレイしてみると、レベルが高くなるとなかなか勝つことができません。まあ、4石少ない分だけ読み切りモードに入るのも早くなるのですから、コンピュータには有利なゲームなのかもしれません。また、ゲーム感覚がリバーシとヘックスリバーシの違いよりも大きく、最初は相当に戸惑うと思います。リバーシとの違いをお楽しみください。

ファイル名
octrev.x : 実行ファイル
octrev.doc : 説明書
source.lzh : ソースファイル
(月刊・電脳倶楽部 Vol.144 掲載)

八角リバーシ菱形バージョン

TAU さんの 三角(菱形)リバーシ に触発されて、八角リバーシの盤面を菱形にしてみました。思考ルーチンはまだまだ弱いと思いますが、石の総数が60個と少ないため読み切りモードに入るのが早くなります。このため、油断していると最後で大逆転されるかもしれません。また、隅の攻防がリバーシとはちょっと変わっているので、最初は相当に戸惑うと思います。リバーシとの違いをお楽しみくださいませ。

ファイル名
rhombus.x : 実行ファイル
readme.txt : 説明書
source.lzh : ソースファイル

八辺リバーシ

八辺リバーシは、盤面を八角形に変えたバージョンです。日本リバーシ協会ではオクトリバーシ (Octo Reversi) と呼んでいます。10 行 10 列盤の隅の部分を 3 マス削った八角形の盤を使います。隅は 8 ヵ所に増えますが、石の総数は 88 個と 10 行 10 列盤よりも少なくなります。

拙作の八角リバーシよりも盤面が大きいので、ゲームの展開が複雑で面白いリバーシになっています。普通のリバーシには飽きたけど、ビッグリバーシはちょっと大きすぎる、という方にはぴったりなゲームでしょう。思考ルーチンはまだまだ弱いですが、けっこう楽しめると思います。リバーシ好きな方はぜひ遊んでみてください。

ファイル名
octagon.x : 実行ファイル
readme.txt : 説明書
source.lzh : ソースファイル

ビッグリバーシ

リバーシの変形バージョンです。通常のリバーシは 8 行 8 列盤を使用しますが、ビッグリバーシの盤面は 10 行 10 列と大きくなっています。ルールはリバーシと同じです。月刊・電脳倶楽部 Vol.132 に掲載されたプログラムをバージョンアップしました。

思考ルーチンですが、月刊・電脳倶楽部 Vol.144 に掲載された「リバーシ」とほぼ同様の改良を行っているので、前バージョンよりも強くなっています。ただ、サイズが大きいぶんだけ、思考時間も長くなってしまいました。Lv 5 の場合、X68030 [25MHz] でも相当に時間がかかります。060turbo か「EX68」や「けろぴー (winx68k) 」などのエミュレータを使った方が快適にプレイできるでしょう。

サイズを大きくしただけですが、思っていたよりもゲーム感覚が通常のリバーシとは異なります。前バージョンでは、このような感覚はほとんどありませんでした。きっと、思考ルーチンが弱すぎて、ビッグリバーシの面白さを感じることができなかったのでしょう。リバーシに興味のある方は、ぜひプレイしてみてください。油断すると Lv 1 に負けるかもしれませんよ。

ファイル名
bigrev.x : 実行ファイル
bigrev.doc : 説明書
bigsrc.lzh : ソースファイル

Lisp インタプリタ VTOL ver 1.31

VTOL は、オブジェクト指向を取り入れた Lisp です。基本的な Lisp 関数のほかにクラス、インスタンス、メソッド、単一継承などの最低限のオブジェクト指向機能を備えています。

VTOL のオブジェクト指向機能はたいへんシンプルなので、他のオブジェクト指向言語(OOPL) を知っている方にとっては物足りないかもしれませんが、オブジェクトってさっぱりわからん、という方でも気軽に試してみることができるでしょう。

VTOL にはオブジェクト指向のほかに次のような特徴があります。

  1. 整数は 64bit (C言語でいえば long long int)で計算する。
  2. ASCII コードも 2 バイトコードも 1 文字として扱う。
  3. 文字列の処理に正規表現を使用することができる。
  4. VTOL 起動時のコマンドライン引数をプログラムから参照できる。
  5. グラフィック、マウスをサポート。

また、Lisp の特徴のひとつに不必要になったデータ領域(メモリ)を自動的に回収する(ガーベジコレクション)機能があります。VTOL にもこの機能は実装されていますので、お気楽ごくらくなプログラミングを楽しむことができますが、その代償としてリアルタイム性を要求される分野では不向きになります。VTOL でシューティングゲームを作ろうという野望は持たないほうが賢明です。

ファイル名

  VTOL.X                実行ファイル
  README.DOC            本ドキュメント
  CHANGE.DOC            変更履歴

  [MAN] :マニュアル
        MAN00.DOC   MAN01.DOC   MAN02.DOC   MAN03.DOC
        MAN04.DOC   MAN05.DOC   MAN06.DOC   MAN07.DOC
        MAN08.DOC   MAN09.DOC   MAN10.DOC

  [REF] :リファレンス
        REF00.DOC   REF01.DOC   REF02.DOC   REF03.DOC
        REF04.DOC   REF05.DOC   REF06.DOC   REF07.DOC
        REF08.DOC

  [SAMPLE] : サンプルプログラム
        CAT.VL      CREF.VL     CYORO.VL    FIBO.VL
        GREP.VL     HANOI.VL

  [JUNK] : 役に立たないであろうサンプルプログラム
        JUNK.DOC : 説明書
        BIGNUM.VL    GENNUM.VL  HITNUM.VL   MASTERMIND.VL
        PUZZLE.VL    QUEEN.VL   RAIN.VL     SHELL.VL
        TURTLE.VL    WORMS.VL

  [SRC] :ソースファイル

VTOL の基本的な操作方法や、Lisp についての簡単な説明は、マニュアルにまとめてあります。Lisp は初めてという方は、とりあえずマニュアルの第 1 章を読んで、実際に VTOL を動かしてみてください。Lisp の雰囲気は味わえると思います。

(月刊・電脳倶楽部 Vol.115 掲載)

VTOL によるミニミニゲーム集

Lisp インタプリタ VTOL を使ったミニミニゲーム集です。月刊・電脳倶楽部に掲載された拙作を作者のホームページ上でまとめて公開します。

ゲームの内容

ファイル名

  readme.txt    このファイル

  KAZPON.VL     かぞえてポン
  KAZPON.DOC    説明書

  SPON.VL       そろえてぽん
  SPON.DOC      説明書
  EASY.DAT      ゲームデータ
  NORMAL.DAT
  HARD.DAT

  NAPON.VL      ならべてポン
  NAPON.DOC     説明書

  TEN.VL        テン
  TEN.DOC       説明書

  CARD.VL       カード操作ライブラリ
  CARD_.VL
  TR.DAT        カードデータ

カードデータ制作: 毛内俊行

謝辞

カードゲームでは、Oh!X 1991 年1月号の付録ディスクに収録されているカードデータ TR.DAT を使用させていただきました。毛内俊行氏ならびに関係各位に感謝いたします。


Copyright (C) 1996-2003 Makoto Hiroi
All rights reserved.

[ Home | X68000 ]