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;
}

}
展开
 我来答
百度网友349d18b
2013-12-14 · TA获得超过445个赞
知道小有建树答主
回答量:571
采纳率:50%
帮助的人:409万
展开全部
这明显是没有重新初始化游戏数据造成的,简单的方法就是选择重新开始后从游戏初始化开始调用函数,但这无法释放内存会造成在玩了N盘之后程序崩溃,最佳的方法是将游戏的所有代码做到一个函数里,这个函数返回最后是否选择继续,main里判断这个返回值,如果继续就再次调用游戏函数.
追问
我从初始化调用函数之后也还是这样啊,毕竟游戏数据记录没有被清除。。
追答
那就是你还是没从第一个初始化代码开始调用,否则怎么会有数据没清除呢?或者说你的代码就没有初始化数据的?直接靠系统生成的默认初始化?
冲桂寸0j
2013-12-14 · 超过16用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:47万
展开全部
游戏开始之前,给个标记:start
要重新开始的地方,加一句:goto start
追问
start要怎样定义啊?显示的是unreferenced label  错误。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式