如何运行dos:超酷的马踏棋盘(在DOS下运行)



#<stdio.h>
#<graphics.h>
#<conio.h>
# PF cprf(\"\\n****************************************************\\n\");
deltai={2,1,-1,-2,-2,-1,1,2};
deltaj={1,2,2,1,-1,-2,-2,-1};
board[8][8];


/* 求(i,j)出口数和各出口号于a */
exitn( i, j, a)
{ i1,j1,k,count;
for(count=k=0;k<8;k)
{ i1=i+deltai[k%8];
j1=j+deltaj[k%8];
(i1>=0&&i1<8&&j1>=0&&j1<8&&board[i1][j1]0)
a[count]=k%8;
}
count;
}


/* 选择下个出口 */
next( i, j)
{ m,k,kk,min,a[8],b[8],temp;
m=exitn(i,j,a); /* 确定(i,j)出口个数 */
(m0)
-1; /* 没有出口 */
for(min=9,k=0;k<m;k) /* 逐考察各个出口 */
{ temp=exitn(i+deltai[a[k>,j+deltaj[a[k>,b);
(temp<min) /* 找出有最少出口数出口 */
{ min=temp;kk=a[k];
}}
kk; /* 返回选中着法 */
}


/* 欢迎界面 */
void preface
{
graphdrive=VGA;
graphmode=VGAHI;
initgraph(&graphdrive,&graphmode,\"\");
bkcolor(5);
rectangle(0,9,638,475);
fillstyle(1,9);
bar(10,30,637,10);
bar(1,10,20,339);
bar(10,290,637,339);
bar(618,320,637,30);
fillstyle(1,4);
bar(40,50,590,250);
color(10);
rectangle(40,50,591,250);
color(12);
rectangle(60,70,570,230);
moveto(100,100);
textstyle(0,0,3);
color(10);
outtext(\"WELECOME TO USE!\");
moveto(400,170);
textstyle(1,0,2);
outtext(\"淮海工学院\");
color(WHITE);
line(0,340,638,340);
gotoxy(2,23);
prf(\"*软件Software设计要求: \\n\\n\");
prf(\" 设计个国际象棋马踏遍棋盘演示.\\n\\n\");
prf(\"\\n *任意键进入*\\n\");
getch;
closegraph;
}


/* 演示图 */
/*****************************************************************************/

/* 画棋盘 */
qipan
{
i;
for(i=0;i<9;i)
{
line(100+i*50,50,100+i*50,450);
line(100,50+i*50,500,50+i*50);
}
}


/* 清屏 */
clears(i,j)
{
fillstyle(1,BLACK);
bar(101+i*50,51+j*50,149+i*50,99+j*50);
}


/* 马根据所得结果演示走法 */
void qipan1
{
void *trp;
graphdrive=VGA,i,j,c,k=1;
graphmode=VGAHI;
initgraph(&graphdrive,&graphmode,\" \");
qipan;
bkcolor(8);
color(10);
circle(25,25,15);
color(WHITE);
gotoxy(10,2);
prf(\"棋子"马"\");
trp=(void*)malloc((imagesize(9,9,41,41)));
getimage(9,9,41,41,trp);
do{
for(i=0;i<8;i)
for(j=0;j<8;j)
{
(board[i][j]k)
{
gotoxy(1,4);
prf(\"board[%d][%d]:\",i,j);
qipan;
putimage(110+j*50,60+i*50,trp,COPY_PUT);
for(c=0;c<5;c)
delay(900000);
clears(j,i);
k;
;
}
}
}while(k<65);
closegraph;
}
/*****************************************************************************/


void
{
sx,sy,i,j,step,no,k;
char c;
clrscr;
preface;
while(1){
clrscr;
Loop1: textcolor(GREEN);
cprf(\"\\nInput the sx[0--7] and sy[0--7]:\");
prf(\"\\n\");
cprf(\" ( board[sx][sy] )\");
prf(\"\\n\");
cprf(\" sx=\");
scanf(\"%d\",&sx);
prf(\"\\n\");
cprf(\" sy=\");
scanf(\"%d\",&sy);
(sx>7||sx<0||sy>7||sy<0)
{ sound(1000);
delay(9999);
nosound;
textcolor(RED);
cprf(\"Warning:\\n\");
cprf(\"\\n\\n The number must between 0 and 7 !!\");
prf(\"\\n\");
cprf(\" Please input again!\");
prf(\"\\n\");
goto Loop1;
}
clrscr;
textcolor(YELLOW);
cprf(\"\\nThe board[%d][%d] is:\",sx,sy);
prf(\"\\n\");
do{
for(i=0;i<8;i)
for(j=0;j<8;j)
board[i][j]=0;
board[sx][sy]=1;
i=sx;
j=sy;
for(step=2;step<=64;step)
{ ((no=next(i,j))-1)


;
ideltai[no];
jdeltaj[no];
board[i][j]=step;
}
(step>64)
;
}while(step<=64);
textcolor(LIGHTRED);
prf(\" \");
PF;
prf(\"\\n \");
textcolor(LIGHTBLUE);
for(i=0;i<8;i)
{ for(j=0;j<8;j)
cprf(\"%6d\",board[i][j]);
prf(\"\\n\\n \");
}
textcolor(LIGHTRED);
PF;
prf(\"\\n\");
prf(\" 是否查看图形演示 y/n\\n\");
c=getch;
(c!=\'y\'&&c!=\'Y\')
goto Loop2;
qipan1;
prf(\"\\n\");
Loop2: textcolor(YELLOW);
cprf(\"\\n是否继续输入?(y/n)\");
c=getch;
(c!=\'Y\'&&c!=\'y\')
exit(0);
prf(\"\\n\");
}
}


Tags:  怎么运行dos 运行dos dos运行命令 如何运行dos

延伸阅读

最新评论

发表评论