VC程序暂停与继续修改
下面这个程序怎样在求出一个解后暂停,然后按键继续或返回主菜单/*--------------------------------------------------------------*/
/*---------------------八皇后演示-----------------------------*/
/*--------------------------------------------------------------*/
#include <graphics.h>
#include <cstdio>
#include <string.h>
#include <stdlib.h>
/*******************************定义全局变量*****************************/
char map[8][8]; //棋
IMAGE img[4]; //保存图片
int d[8],e[15],f[24],i,n;
/**********************************定义函数*****************************/
void load(void) //加载图片
{
loadimage(&img[0], "图片\\黑空.jpg");
loadimage(&img[1], "图片\\白空.jpg");
loadimage(&img[2], "图片\\白子黑空.jpg");
loadimage(&img[3], "图片\\白子白空.jpg");
}
void try1(int i)
{
for (int j=1;j<=8;j++)
if (d[j-1]==0&&e[i+j-2]==0&&f[i-j+7]==0) /*如果第i列第j行为空*/
{d[j-1]=1;e[i+j-2]=1;f[i-j+7]=1;/*占用第i列第j行*/
if((j-1+i-1)%2==0)
putimage((j-1)*60,(i-1)*60,&img[2]);/*显示皇后图形*/
else
putimage((j-1)*60,(i-1)*60,&img[3]);
Sleep(50);/*延时*/
if(i<8)
try1(i+1);
else
{
n++;
char s[100];
sprintf(s, "%d",n);
outtextxy(600,001,s);
}
d[j-1]=0;e[i+j-2]=0;f[i-j+7]=0;
if((j-1+i-1)%2==0)
putimage((j-1)*60,(i-1)*60,&img[0]);/*消去皇后,继续寻找下一组解*/
else
putimage((j-1)*60,(i-1)*60,&img[1]);
Sleep(500);
}
}
void print(void) //画棋盘
{
int x, y;
i=0;
for(x = 0; x < 8; x++)
for(y = 0; y < 8; y++)
if((x + y) % 2)
putimage(60 * y, 60 * x, &img[1]);
else
putimage(60 * y, 60 * x, &img[0]);
outtextxy(480,001,"当前解的序号为:");
}
int measure4(void) //主函数
{
initgraph(640, 480);
load();
setbkcolor(LIGHTGREEN);
cleardevice();
print();
try1(1);
Sleep(1000);
closegraph();
return 1;
}