⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 校园导游的代码极其说明
💻 C
📖 第 1 页 / 共 2 页
字号:
	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 + -