メソッドisEndOfWorld()

------------------------------------

解けたかどうか判定するメソッドisEndOfWorld()を考えます。

コンストラクタでtower[0]にリングを積んだので、解けた場合は

のどちらかの状態になっています。

これをそのまま調べるには

int numOfRings = tower[0].size() + tower[1].size() + tower[2].size();

として、

tower[2].size() == numOfRings || tower[1].size() == numOfRings

を調べれば良いです。

------------------------------------

でも、変数numOfRingsを導入するのがなんだか嫌だった(本当にただそれだけ)ので、先程の条件を

と読み替えて、

(tower[0].empty() && tower[1].empty()) || (tower[0].empty() && tower[2].empty())

を調べ、この値を返しています。

------------------------------------

前の項目へ次の項目へ

「メイキング・オブ・ハノイの塔」のページへ