c语言细胞自动机,细胞自动机之兰顿蚂蚁

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值