迷路プログラムにおけるクラス設計

これまでに学んだ C++言語の機能を使ってプログラムを作成する。
ここでは、簡単な迷路作成プログラムを C++のクラスを使って実現してみる。

クラス設計

迷路を作成するプログラムにおいて必要そうなもので すぐに思い付くものとして以下の3つが考えられる。

これらをそれぞれ一つのクラスとして実現することを考える。

迷路としては、以下のような2次元平面上の壁で囲まれた領域の内側に通路が 通っているという形式のものを想定する。

■■■■■■■■■
■□□□□□□□■
■□■■■■■□■
■□■□■□□□■
■□□□■■■□■
■□■□■□■□■
■□■□■□■□■
■□■□□□■□■
■■■■■■■■■
周り全体が壁となり、奇数番目の行と列が壁、偶数番目の行と列が通路となる。 また、迷路全体のサイズは、縦・横ともに奇数となる。 (図の例では、縦・横共に9個のマス(9×9)で構成されている)

迷路データの格納

迷路に関するデータとして、サイズ(縦と横のそれぞれを M, Nとする)に関す る情報を記録しておく必要がある。 (ここで、先の説明の通り、M, Nは共に奇数値となる)
また、 M×Nの 2次元平面上で「壁」となる部分と「通路」となる部分がそれ ぞれどこであるのかを記録しておく必要がある。

迷路データの作成

迷路データを格納するクラスのデータに対して、迷路を作成するクラスを作る。
迷路データとは独立して実装することで、複数の作成アルゴリズムの実装を 迷路データとは独立に作成することが出来るようにする。 つまり、別の迷路作成アルゴリズムを実装する場合に、迷路データ側のコード をいじることなく実装できるということである。

迷路データの表示

迷路データを格納するクラスのデータの内容を表示するクラスを作る。
迷路データとは独立して実装することで、複数の表示アルゴリズムの実装を 迷路データとは独立に表示することが出来るようにする。 つまり、別の迷路表示アルゴリズムを実装する場合に、迷路データ側のコード をいじることなく実装できるということである。


文責:大津