文字を動かすだけの簡単なダンジョンゲームを作っています。
int init_dungeon[dy_max][dx_max] = {
//0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
{ 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1},
{ 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1},
{ 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1},
{ 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1},
{ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
{ 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1},
{ 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1},
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
};
int dungeon[dy_max][dx_max];
//マップ表示
void view_dungeon(model *player, model *enemy, int d_dat[][dx_max])
{
int i, j, k; //カウンタ用
for(i=0;i<dy_max;i++){//y
for(j=0;j<dx_max;j++){ //x
dungeon[i][j] = init_dungeon[i][j]; //ダンジョンデータを初期化に
for(k=0; k<ENEMY_MAX; k++){
if(j == (enemy + k)->ux && i == (enemy+k)->uy){
if(*(enemy+k)->n=='D'){dungeon[i][j] = 2;} //ドラゴンを書き込む
if(*(enemy+k)->n=='W'){dungeon[i][j] = 3;} //オオカミの位置を書きこむ
}
}
}
}
system("cls");
for(i=0; i<dy_max; i++){//y軸
for(j=0; j<dx_max; j++){//x軸
if(j == player->ux && i == player-> uy && e_flg==0 ){printf("人");}
else if(d_dat[i][j] == 0/* && e_flg==0*/){printf(" ");}//床
else if(d_dat[i][j] == 1){printf("山");}//山
else if(d_dat[i][j] == 2){printf("DR");}//ドラゴン
else if(d_dat[i][j] == 3){printf("WW");}//オオカミ
else if(d_dat[i][j] == 4){printf("森");}//森
//else if(d_dat[i][j] == 2 || d_dat[i][j] || d_dat[i][j] == 4){printf("森");}
}
printf("\n");//改行
}
}
これを、ステージのデータを stage1.txt というテキストファイルに置き換えて
1111111111111111
1701000100000004
1011010100000109
1000020010011111
1011110010310001
1010010810010101
1010011111000101
1010000000000101
1010100001000101
1011011110111101
1000000000002001
1111111111111111
といった具合に
int dungeon[][]; に再び格納して、表示させるようにしたいのですが、どのようにすればよいのでしょうか?
玄人の皆様からすれば取るに足らないような問題かもしれませんが、
どうかよろしくお願いします。