迷路プログラムにおけるクラス設計
これまでに学んだ C++言語の機能を使ってプログラムを作成する。
ここでは、簡単な迷路作成プログラムを C++のクラスを使って実現してみる。
クラス設計
迷路を作成するプログラムにおいて必要そうなもので
すぐに思い付くものとして以下の3つが考えられる。
- 迷路データを格納するもの
- 迷路を作成するもの
- 迷路を表示するもの
これらをそれぞれ一つのクラスとして実現することを考える。
迷路としては、以下のような2次元平面上の壁で囲まれた領域の内側に通路が
通っているという形式のものを想定する。
■■■■■■■■■
■□□□□□□□■
■□■■■■■□■
■□■□■□□□■
■□□□■■■□■
■□■□■□■□■
■□■□■□■□■
■□■□□□■□■
■■■■■■■■■
周り全体が壁となり、奇数番目の行と列が壁、偶数番目の行と列が通路となる。
また、迷路全体のサイズは、縦・横ともに奇数となる。
(図の例では、縦・横共に9個のマス(9×9)で構成されている)
迷路データの格納
迷路に関するデータとして、サイズ(縦と横のそれぞれを M, Nとする)に関す
る情報を記録しておく必要がある。
(ここで、先の説明の通り、M, Nは共に奇数値となる)
また、 M×Nの 2次元平面上で「壁」となる部分と「通路」となる部分がそれ
ぞれどこであるのかを記録しておく必要がある。
迷路データの作成
迷路データを格納するクラスのデータに対して、迷路を作成するクラスを作る。
迷路データとは独立して実装することで、複数の作成アルゴリズムの実装を
迷路データとは独立に作成することが出来るようにする。
つまり、別の迷路作成アルゴリズムを実装する場合に、迷路データ側のコード
をいじることなく実装できるということである。
迷路データの表示
迷路データを格納するクラスのデータの内容を表示するクラスを作る。
迷路データとは独立して実装することで、複数の表示アルゴリズムの実装を
迷路データとは独立に表示することが出来るようにする。
つまり、別の迷路表示アルゴリズムを実装する場合に、迷路データ側のコード
をいじることなく実装できるということである。
文責:大津