|
乱数(0から1)を発生させて、7×7のますに*を足跡を残し、右したのたて3ますに来たら終了するプログラムですが、
右下20%、右15%、下15%、その他は10%の確率で動きます。
7ます以内で動く(はじっこにきたらます外動かない)と、アスタリスクを表示する方法がわかりません。
教えてください。お願いします。
#include<stdio.h>
#include<stdilib.h>
#define RAND()((double)rand()/(32767.0+1.0))
void chido(int *);
main()
{
int a[7][7]={0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0,
0,0,0,0,0,0,0};
int k,l;
chido(a[0]);
for(k=0;k=<7;k++){
for(l=0;l<7;l++){
printf("%d",a[k][l]);
}
printf("\n");
}
void chido(int *p)
{
int m,n=0,o=0;
double ran;
srand((unsigned)time(NULL));
*p=1;
for(m=1;m<100;m++){
ran=RAND();
if(ran<0.2) n++,o++;
else if(ran<0.35) o++;
else if(ran<0.5) n++;
else if(ran<0.6) n--,o++;
else if(ran<0.7) n--;
else if(ran<0.8) n--,o++;
else if(ran<0.9) o--;
else if(ran<1.0) n++,o--;
*(p+7*n+o)=1;
if(*(p+34)=1) break;
if(*(p+41)=1) break;
if(*(p+48)=1) break;
}
}
|