迷路プログラム

2000.7.1 by R. Saito

(図の説明) 迷路のメイン画面。迷路を自動生成したあ と実行モードになる。緑色が始点(画面では現在の位置の黒と重なっ ている)、赤色が終点である。矢印キーで進むと、たどったところ が黄色になる。

プログラムの概要

迷路を作り、迷路の出発点からゴールまで進むゲームです。迷路を作るアルゴリズムは別に示します。 迷路を人間の手で途中まで作り残りをコンピュータに任せることや、 100% 手で作ることもできます。手で作るときにも、迷路の壁を壊 したりできないように、迷路が一つの袋構造に保つようになってい ます。この機能を使うと答えを結ぶと絵や文字が出るような迷路を つくることができます。 迷路の大きさが変えることができるので、 3歳ぐらいから楽しむことができます。パターンを作るので知能の 発達に有効であると考えられます。

 

操作の説明

矢印キー を使って操作します。マウスでも一部できるように なっています。編集モードと実行モードがあります。一番下の部分 に表示されます。その他は、メニューを見てください。使う上で特 に説明が要るほど、複雑なことはしていません。ちょっと操作をし て楽しんでください。 変な動作をするときにはご愛嬌ということで ご勘弁ください。

メニュー => 編集 => 自動生成では、新規と追加の 2 種類があります。 新規は、画面をあたらしくして最初から迷路を作ります。追加は、現在の 状態から残りの迷路の部分を作ります。

メニュー => ファイルで ファイルへの入出力ができます。

メニュー => 編集 で、できた迷路をクリップボードにコピー することができますのでほかのソフトウエアにコピーするのが簡単 にできます。またファイルにとっておくことができます。

メニュー => 編集 で、迷路の大きさを指定することができます。 header file で指定された配列の大きさを大きくすれば、画面いっぱいの 迷路を作ることができます。

プログラムのポイント

ソフトウエアに良く使うメニューバーや、2つめの Form を使っていますので、少しプログラムは長いですが、ソースを ごらんになれば、いろいろ使い方がわかるとおもいます。

Canvas の表示は、積極的にグラフィックのバッファにた まったものをflush させています。しかし、ときどき処理が追 いつかなくて自動で処理する場合に画面が白くなってしまうときが ありますが、待っていれば確実に画像がでます。 TPaintBoxで画像が残るようにする方法 を使えばより良くなることが 期待できます。

200x200 ぐらいはできるようになっています。余り大きいものを 作っても実行をするのに時間がかかりますのであまり面白くありません。

このソフトは再配布は自由ですが、改良などを加えた場合 には、最初の著者に連絡ください。またそのまま、または改良 して有料のソフトウエアにすることは認められません。

プログラムの問題点

プログラム作成時に Form1 や Image1 の 大きさを大きくして おかないと、実行時にそれ以上にすることができないという問題が ありましたが、正木君からのコメントでTForm1::TForm の中の

Image1->Canvas->Brush->Style=bsSolid;

の行以前に

Image1-> Width=999; と書いておくと、ok だそうです。

プログラムでは、迷路の答えをつくるアルゴリズムかできていません。 多くの人の チャレンジを期待しています。

その他、与えられた迷路のなかで、始点と終点の間の道が最大になる ような始点と終点を探すアルゴリズムかできていません。 多くの人の チャレンジを期待しています。

3 次元、6 角形、円周上の迷路のアルゴリズムかできていません。

あと迷路のなかを動く 鬼 を作ることなどが考えられます。

マウス操作によって、移動をすばやくできるようにしたいと 考えています。

ソースプログラム(LZH 圧縮 file)

このプログラムのみ、外部の人からのコメントを受け付けます。ただし、 御返事を必ずするとは限りません。また要望には御答えできかねます。k


rsaito@ee.uec.ac.jp