宿題を脱出、私はちょうど私のロジックが健全であるかどうかを尋ねると、そうでない場合は、私が行方不明です何例ではなく、それを行う方法です。が再帰的に迷路
私は与えられたデータファイルからランダムに生成された迷路を作成する必要がありました。各客室には1〜100の数字が割り当てられ、隣接する4つの客室(北、東、南、西)があります。隣接部屋のない部屋には、負の識別子を持つ隣接部屋があります。私たちの "人"はこれらの部屋のうちの1つに無作為に落とされ、私たちはその道を見つけなければなりません。外で私はほとんど行われて行わ再帰が、すべてを持っている0
の部屋番号で指定されています。
void Graph::findPath(Room * curRoom)
{
if(curRoom -> myNumber == 0)
//Escaped!
else
{
if(curRoom -> North -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> North)
}
if(curRoom -> East -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> East)
}
if(curRoom -> South -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> South)
}
if(curRoom -> West -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> West)
}
}
}私はそれを正しく持っていると思う
:これは私のソリューションです。私の唯一の関心事は、正しいパスを印刷する必要があることです。私はそれができるとわかっていますが、間違ったものを印刷しないとどうやって行うのか分かりません。
ありがとうございます。
すべての情報が欠落している場合は、私が知っていると私はポスト速攻を返信させていただきます。
現在、あなたは何を印刷していない、プラスそれ以外は全く必要ないとして、あなたのように変更する必要がある場合。 – FailedDev
外部がNSEWポインタで何かを指していない部屋なので、ifが必要です。私は悪いメモリにアクセスしたくありません。しかし、私はその情報を共有しませんでした、申し訳ありません。 – Joshua
だから、if(curRoom - > myNumber!= 0){...}をelseなしで書くとどうなりますか? – FailedDev