
c语言编出来的游戏程序如何在不关闭界面的情况下重新从头开始运行
是一个游戏,之前关于玩游戏的是一个函数play(),我在end()函数中想添加可以选择反复玩游戏的功能(图1)但是之前游戏已经运行完了,如果之前输了的话,那么我选择再来一...
是一个游戏,之前关于玩游戏的是一个函数play(),我在end()函数中想添加可以选择反复玩游戏的功能(图1)
但是之前游戏已经运行完了,如果之前输了的话,那么我选择再来一局之后只会在游戏界面闪一会儿我上一盘输了的界面(图2)
之后就弹出来宣布结果(图3)。
请问怎么样可以清楚之前玩过游戏的记录,这样我就可以设置反复选择玩游戏了。
附end()代码:
void end()/*游戏结束函数*/
{
int i;
for(i=0;i<640;i++)
{
setcolor(CYAN);
line(i,0,i,479);
}
closegraph(); //关闭图形系统
if (enemynum==0)
{
printf("\n");
printf(" 恭喜你,你赢了!\n");
printf(" 你真棒,给个大大的赞~\n");
printf(" 杀敌数: %d \n",3-enemynum);
printf("\n");
printf(" 游戏结束,感谢您的参与!\n\n");
}
else
{
printf("\n");
printf(" 很遗憾,你输了!\n");
printf(" 别灰心,下次再来^_^\n");
printf(" 杀敌数: %d \n",3-enemynum);
printf("\n");
printf(" 游戏结束,感谢您的参与!\n\n");
}
system("pause");
system("cls");
printf("该局结束,您有以下几个选择:\n\n\n");
printf("1.再来一局.\n\n");
printf("2.退出游戏.\n\n\n");
printf("\n\n祝您收获愉快的心情和体验!\n\n");
printf("请输入你选择的功能编号:");
char m;
scanf("%c",&m);
switch(m)
{
case '1' ://再来一局
system("cls");
play();
break;
case '2' ://退出游戏
system("cls");
exit(0);
break;
default :
printf("您输入的编号错误,请重新选择!");
system("pause");
system("cls");
break;
}
} 展开
但是之前游戏已经运行完了,如果之前输了的话,那么我选择再来一局之后只会在游戏界面闪一会儿我上一盘输了的界面(图2)
之后就弹出来宣布结果(图3)。
请问怎么样可以清楚之前玩过游戏的记录,这样我就可以设置反复选择玩游戏了。
附end()代码:
void end()/*游戏结束函数*/
{
int i;
for(i=0;i<640;i++)
{
setcolor(CYAN);
line(i,0,i,479);
}
closegraph(); //关闭图形系统
if (enemynum==0)
{
printf("\n");
printf(" 恭喜你,你赢了!\n");
printf(" 你真棒,给个大大的赞~\n");
printf(" 杀敌数: %d \n",3-enemynum);
printf("\n");
printf(" 游戏结束,感谢您的参与!\n\n");
}
else
{
printf("\n");
printf(" 很遗憾,你输了!\n");
printf(" 别灰心,下次再来^_^\n");
printf(" 杀敌数: %d \n",3-enemynum);
printf("\n");
printf(" 游戏结束,感谢您的参与!\n\n");
}
system("pause");
system("cls");
printf("该局结束,您有以下几个选择:\n\n\n");
printf("1.再来一局.\n\n");
printf("2.退出游戏.\n\n\n");
printf("\n\n祝您收获愉快的心情和体验!\n\n");
printf("请输入你选择的功能编号:");
char m;
scanf("%c",&m);
switch(m)
{
case '1' ://再来一局
system("cls");
play();
break;
case '2' ://退出游戏
system("cls");
exit(0);
break;
default :
printf("您输入的编号错误,请重新选择!");
system("pause");
system("cls");
break;
}
} 展开
展开全部
这明显是没有重新初始化游戏数据造成的,简单的方法就是选择重新开始后从游戏初始化开始调用函数,但这无法释放内存会造成在玩了N盘之后程序崩溃,最佳的方法是将游戏的所有代码做到一个函数里,这个函数返回最后是否选择继续,main里判断这个返回值,如果继续就再次调用游戏函数.
追问
我从初始化调用函数之后也还是这样啊,毕竟游戏数据记录没有被清除。。
追答
那就是你还是没从第一个初始化代码开始调用,否则怎么会有数据没清除呢?或者说你的代码就没有初始化数据的?直接靠系统生成的默认初始化?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询