该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#define N 50
#define M 50
void tv_1(int arr[][M],int *s)
{
int x,y,i,j;
for(x=0;x
{
for(y=0;y
{
switch(arr[x][y])
{
case 0:printf("□");break;
case 1:printf("■");break;
default:
switch(*s)
{
case 0:
printf("↑");
i = x;
j = y;
break;
case 1:
printf("↓");
i = x;
j = y;
break;
case 2:
printf("←");
i = x;
j = y;
break;
case 3:
printf("→");
i = x;
j = y;
break;
}
}
}
putchar(10);
}
switch(arr[i][j])
{
case 10:
switch(*s)
{
case 0:
*s = 2;
arr[i][j] = 1;
arr[i][j-1] = arr[i][j-1]?11:10;
return;
case 1:
*s = 3;
arr[i][j] = 1;
arr[i][j+1] = arr[i][j+1]?11:10;
return;
case 2:
*s = 1;
arr[i][j] = 1;
arr[i+1][j] = arr[i+1][j]?11:10;
return;
case 3:
*s = 0;
arr[i][j] = 1;
arr[i-1][j] = arr[i-1][j]?11:10;
return;
}
case 11:
switch(*s)
{
case 0:
*s = 3;
arr[i][j] = 0;
arr[i][j+1] = arr[i][j+1]?11:10;
return;
case 1:
*s = 2;
arr[i][j] = 0;
arr[i][j-1] = arr[i][j-1]?11:10;
return;
case 2:
*s = 0;
arr[i][j] = 0;
arr[i-1][j] = arr[i-1][j]?11:10;
return;
case 3:
*s = 1;
arr[i][j] = 0;
arr[i+1][j] = arr[i+1][j]?11:10;
return;
}
}
}
int main()
{
srand(time(0));
int s = rand() % 4;//初始方向
int arr[N][M] = {0};
arr[20][20] = 11;//初始位置
loop_1:
tv_1(arr,&s);//打印
usleep(1000000);//延时
clrscr();//清屏
goto loop_1;
return 0;
}