プログラムの画面表示のことで
このような場面で、プレイヤーが倒されてしまったときに、
HPが0にならずに、残ってしまいます。
処理が上から下に向かって動いているためだと思いますが、
プレイヤーやモンスターが倒れた時に、画面の構成を変えずに、
HPを0にすることができるでしょうか?
int main(void)
{
system("cls"); //クリアー
dungeon( /* 略 */); //ダンジョン表示(ステータスの表示)
player_turn( /* 略 */);//キー入力(プレイヤーのターン)
monster_turn( /* 略 */); //モンスターのターン
}
return 0;
}
//ダンジョン表示
void dungeon(PC *pc, MC *mc)
{
for(y=0; y<10; ++y){
for(x=0; x<10; ++x){
if(pc->y==y && pc->x==x){
printf("%s", "@");
}else if((mc->y==y) && (mc->x==x) && (mc->hp>=0)){
printf("%s", "Sk");
}else if(field[y][x]==9){
printf("%s", "■");
}else if(field[y][x]==8){
printf("%s", "□");
}else if(field[y][x]==7){
printf("%s", "<");
}else{
printf("%s", " ");
}
}
status(pc, mc, y); //ステータスのある場所
printf("\n");
}
}
//ステータス表示
void status(PC *pc, MC *mc, int y)
{
switch(y)
{
case 0:printf(" *****************************");break;
case 1:printf(" %s Lv%3d HP%3d %3dG", pc->name, pc->lv, pc->hp, pc->gold);break;
case 2:break;
case 3:break;
case 4:break;
case 5:break;
case 6:break;
case 7:break;
case 8:printf(" %s Lv%3d HP%3d %3dG", mc->name, mc->lv, mc->hp, mc->gold);break;
case 9:printf(" *****************************");break;
default:break;
}
}