📄 test.c
字号:
Clear1();
setfillstyle(2,12);
bar(0,0,16,479);bar(0,0,639,12);bar(623,0,639,479);bar(0,460,639,479);
setfillstyle(1,6);
fillellipse(320,45,150,30);
word("按F1键退出\n",2,2,1,GREEN+8,220,30);
for(i=0;i<4;i++)
for(j=0;j<6;j++)
{
setfillstyle(0,7);
fillellipse(140+i*120,140+j*50,80,40);
setfillstyle(1,7);
fillellipse(130+i*120,130+j*50,80,35);
}
for(i=0;i<6;i++)
for(j=0;j<4;j++)
word(charcd[i*4+j],1,1,1,9,90+j*120,120+i*50);
x=0;y=0;
oldx=1;oldy=y;
while(1)
{
if(oldx!=x||oldy!=y)
{
oldx=x;oldy=y;
setfillstyle(1,12);
floodfill(120+x*120,120+y*50,2);
word(charcd[y*4+x],1,1,1,YELLOW,90+x*120,120+y*50);
}
if(kbhit())
{
key=getch();
count=0;
switch(key)
{
case 72: /*UP*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y--;if(y<0) y=5;break;
case 80: /*DOWN*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y++;if(y>5) y=0;break;
case 75: /*LEFT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x--;if(x<0) x=3;break;
case 77: /*RIGHT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x++;if(x>3) x=0;break;
case 59: /*F1*/
Master();break;
}
}/****end keybord ctrl ****/
delay(4000);
count++;
if(count>12000L) return (-1);
}
}
int Check1(void)
{
register int i,j;
int x,y,oldx,oldy;
Clear1();
setfillstyle(2,12);
bar(0,0,16,479);bar(0,0,639,12);bar(623,0,639,479);bar(0,460,639,479);
setfillstyle(1,6);
fillellipse(320,45,150,30);
word("选择起点\n",2,2,1,GREEN+8,250,30);
for(i=0;i<4;i++)
for(j=0;j<6;j++)
{
setfillstyle(0,7);
fillellipse(140+i*120,140+j*50,80,40);
setfillstyle(1,7);
fillellipse(130+i*120,130+j*50,80,35);
}
for(i=0;i<6;i++)
for(j=0;j<4;j++)
word(charcd[i*4+j],1,1,1,9,90+j*120,120+i*50);
x=0;y=0;
oldx=1;oldy=y;
while(1)
{
if(oldx!=x||oldy!=y)
{
oldx=x;oldy=y;
setfillstyle(1,12);
floodfill(120+x*120,120+y*50,2);
word(charcd[y*4+x],1,1,1,YELLOW,90+x*120,120+y*50);
}
if(kbhit())
{
key=getch();
switch(key)
{
case 72: /*UP*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y--;if(y<0) y=5;break;
case 80: /*DOWN*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y++;if(y>5) y=0;break;
case 75: /*LEFT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x--;if(x<0) x=3;break;
case 77: /*RIGHT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x++;if(x>3) x=0;break;
case 13:
v0=y*4+x;
Check2();break;
}
}/*endif*/ /****end keybord ctrl ****/
}
}
int Check2(void)
{
register int i,j;
int x,y,oldx,oldy;
Clear1();
setfillstyle(2,12);
bar(0,0,16,479);bar(0,0,639,12);bar(623,0,639,479);bar(0,460,639,479);
setfillstyle(1,6);
fillellipse(320,45,150,30);
word("选择终点\n",2,2,1,GREEN+8,250,30);
for(i=0;i<4;i++)
for(j=0;j<6;j++)
{
setfillstyle(0,7);
fillellipse(140+i*120,140+j*50,80,40);
setfillstyle(1,7);
fillellipse(130+i*120,130+j*50,80,35);
}
for(i=0;i<6;i++)
for(j=0;j<4;j++)
word(charcd[i*4+j],1,1,1,9,90+j*120,120+i*50);
x=0;y=0;
oldx=1;oldy=y;
while(1)
{
if(oldx!=x||oldy!=y)
{
oldx=x;oldy=y;
setfillstyle(1,12);
floodfill(120+x*120,120+y*50,2);
word(charcd[y*4+x],1,1,1,YELLOW,90+x*120,120+y*50);
}
if(kbhit())
{
key=getch();
switch(key)
{
case 72: /*UP*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y--;if(y<0) y=5;break;
case 80: /*DOWN*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
y++;if(y>5) y=0;break;
case 75: /*LEFT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x--;if(x<0) x=3;break;
case 77: /*RIGHT*/
setfillstyle(1,7);
floodfill(110+x*120,110+y*50,2);
word(charcd[y*4+x],1,1,1,9,90+x*120,120+y*50);
x++;if(x>3) x=0;break;
case 13:
v1=y*4+x;
Check3();break;
}
}/*endif*/ /****end keybord ctrl ****/
}
}
int Check3(void)
{
register int i,j,k=0;
int x,y,oldx,oldy;
/*int number;*/
shortdjs();
/*printf("%d",number);
getchar();*/
Clear1();
setfillstyle(2,12);
bar(0,0,16,479);bar(0,0,639,12);bar(623,0,639,479);bar(0,460,639,479);
setfillstyle(1,6);
fillellipse(320,45,150,30);
word("最短路径\n",2,2,1,GREEN+8,250,30);
/*上方*/
for(i=0;i<4;i++)
for(j=0;j<((count/4)+1);j++)
{
setfillstyle(1,7);
fillellipse(130+i*120,110+j*53,50,25);
}
for(i=0;i<3;i++)
for(j=0;j<((count/4)+1);j++)
{
word("→\n",1,1,1,12,182+i*120,105+j*53);
}
/*printf("%d %d %d %d %d %d ",number,path[v1].num,v0,v1,M,N);
for(i=0;i<MAX;i++) printf("%d ",path[v1].pnode[i]);
getchar();*/
for(j=0;j<((count/4)+1);j++)
for(i=0;i<4;i++)
{
if(k<count)
{
word(charcd[path[k]],1,1,1,9,100+i*120,100+j*50);
k++;
}
};
word("总共距离为\n",1,1,1,9,155,303);
setcolor(6);
gotoxy(32,20);
printf("%d",d[v1]);
word("米\n",1,1,1,9,285,303);
/*下方*/
for(i=0;i<2;i++)
{
setfillstyle(1,7);
fillellipse(215+i*190,400,60,40);
}
for(i=0;i<2;i++)
word(charCheck3[i],1,1,1,9,185+i*200,390);
x=0;
oldx=1;
while(1)
{
if(oldx!=x)
{
oldx=x;
setfillstyle(1,12);
floodfill(225+x*150,410,2);
word(charCheck3[x],1,1,1,YELLOW,185+x*200,390);
}
if(kbhit())
{
key=getch();
switch(key)
{
case 75: /*LEFT*/
setfillstyle(1,7);
floodfill(225+x*150,410,2);
word(charCheck3[x],1,1,1,9,185+x*200,390);
x--;if(x<0) x=1;break;
case 77: /*RIGHT*/
setfillstyle(1,7);
floodfill(225+x*150,410,2);
word(charCheck3[x],1,1,1,9,185+x*200,390);
x++;if(x>1) x=0;break;
case 13:
switch(x)
{
case 0:Check1();break;
case 1:Master();break;
} break;
}/*switch*/
}/*endif*/ /****end keybord ctrl ****/
}/*while*/
}
void Clear1(void)
{
unsigned int g;
register int i,j;
int x,y,c;
setfillstyle(1,2);
setcolor(2);
for(i=39;i>=0;i--)
{
for(x=i,y=39;x<=39;x++,y--)
{bar((x<<4),(y<<3)+(y<<2),(x<<4)+16,(y<<2)+(y<<3)+12);
bar((38-x)*16,y*12,(38-x)+16,y*12+12);
bar((38-x)*16,(39-y)*12,(38-x)*16+16,(39-y)*12+12);
bar(x*16,(39-y)*12,x*16+16,(39-y)*12+12);
}
delay(2);
}
}
void Clear2(void)
{
unsigned int g;
register int i,j;
int x,y,c;
setfillstyle(0,2);
setcolor(2);
for(i=39;i>=0;i--)
{
for(x=i,y=39;x<=39;x++,y--)
{bar((x<<4),(y<<3)+(y<<2),(x<<4)+16,(y<<2)+(y<<3)+12);
bar((38-x)*16,y*12,(38-x)+16,y*12+12);
bar((38-x)*16,(39-y)*12,(38-x)*16+16,(39-y)*12+12);
bar(x*16,(39-y)*12,x*16+16,(39-y)*12+12);
}
delay(2);
}
}
word(int *hzcode,int xfd,int yfd,int xjiange,int color,int x,int y)
{
char dot[33],*hzmatrix;
unsigned int ch;
long int order;
int i,j,k,t,p=0;
int x1,y1;
hzmatrix=(char *)malloc(256);
if(!hzmatrix){closegraph();printf("Mem alloc error.");exit(0);}
x1=x;y1=y;
while(hzcode[p]!='\n')
{
k=0;
fseek(fp1,0L,SEEK_SET);
order=(long)(((hzcode[p]>>8)&0x7f)-0x21+94*((hzcode[p]&0x7f)-0x21))*32;
fseek(fp1,(long)order ,SEEK_SET);
if(!fread(dot,32,1,fp1)){closegraph();printf("read hzk16 file error.");exit(0);}
for(i=0;i<16;i++,k+=2)
{
ch=(unsigned int)(((unsigned int)dot[k]<<8)+(unsigned char)dot[k+1]);
for(j=0;j<16;j++,ch=(ch<<1))
{
if(ch&0x8000)hzmatrix[j+16*i]=1;
else hzmatrix[j+16*i]=0;
}
}
for(t=0;t<16;t++)
for(j=0;j<16;j++)
{
if(hzmatrix[j+16*t])
{
for(i=0;i<xfd;i++)
{
putpixel(x1+i+xfd*j,y1+t*yfd,color);
for(k=0;k<yfd;k++)
putpixel(x1+i+xfd*j,y1+k+t*yfd,color);
}
}
}
p++;
x1=x+xfd*(16+xjiange)*p;
}
free(hzmatrix);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -