少し背景... 私は単純な迷路ゲームに取り組んでいます。基本的に、プログラムは次の形式のテキスト ファイルを取得します。
A * B * * B*C*A CGD * B D * * * C EIF * * FJG * E G*HCF H * * * G 私 * * E * J * KF * K*L*J L * * * K
ここで、最初の文字は現在のノード、2 番目の文字はその北のノード、次の文字は東、次に南、西のノードです。各線は、ノードと、接続できる 4 つのノードを表します。
ゲームはテキストベースで、プレイヤーはノード A から開始し、4 つの方向 (N/E/S/W) のいずれかに移動できます。ノード A の場合、唯一の正当な移動は東のノード B であり、そこからプレイヤーは東のノード C に移動するか、西に移動してノード D に戻ることができます。ノード C で、ユーザーは北のノード G に移動し、などなど。* がある場所には、その方向にノードはありません (したがって、NULL に設定します)
私はまだこれをプログラミングする比較的初期の段階にあり、これはノードやクラスを使用する必要がある私の最初の割り当てであるため、ゲームに取り組む前にゲームに取り組む方法をよく理解していることを確認したい.プログラミングの本質に入ります。
ゲームの実際のプレイはかなり簡単だと思います。私の問題は、ゲームボードをセットアップすることです。ファイルストリームを作成して文字を読み込む方法を理解しています。
int BuildGraph()
{
ifstream build;
build.open("file.txt");
char tempChar;
build >> tempChar;
while(tempChar != '\n')
{
for(int a = 0; a <= 4; a++)
{
switch (a)
{
case 0:
Node tempChar; // NEED HELP HERE
build >> tempChar; // Grabs the next character
break;
case 1:
// set Node.north to tempChar
break;
case 2:
// set Node.east to tempChar
break;
case 3:
// set Node.south to tempChar
break;
case 4:
// set Node.west to tempChar
break;
}
}
}
}
私の質問は、読み取られている文字から外れている場合、ノードと名前を作成するにはどうすればよいですか? この場合、最初のノードは A で、a.east は B に設定され、a.south、a.north、および a.west はすべて NULL に設定されます。
この形式でこれを達成するにはどうすればよいですか? 私が取るべき別の、より単純な、またはより良いアプローチはありますか?
また、現在次のように設定されている Node というクラスを使用していることにも注意してください。
クラスノード() { 公衆: char *node_north = ; char *node_east = ; char *node_south = ; char *node_west = ; };