#include#include #include #include int main() { int i=0,j=0,dir=0,row=0,col=0,x=0,a=0,b=0; char alpha='A'; char form[10][10]={'.'}; srand((unsigned) time(NULL)); for ( i = 0; i < 10; i++) for ( j = 0; j < 10;j++) form[i][j]='.'; form[row][col]=alpha; for(;;) { //一直循环 if((alpha=='Z')||(x>8))//遇到Z或者随机N次依然无法继续走 { for ( a = 0; a < 10; a++) { for ( b = 0; b < 10;b++) printf("%c ",form[a][b]);//每个位置打印出来 printf("n"); //每一行打印后回车 } return 0; //打印后退出 } else{ //继续循环 dir=rand() % 4; //产生随机方向 0-左-行-1,1=右,行+1,2=上,列-1,3=下,列+1 switch(dir) { case 0: if(col==0) break; //如果0列,则不能往左,直接跳出 else //不是0列 { col--; //往左,列-1 if(form[row][col]=='.') //此时的位置是否为空 { alpha++;form[row][col]=alpha; //为空,将下一个字母放入 x=0;}//计数器清零 else {x++; col++; }//不是空,则退回来,计数器++ break; } case 1: if(col==9) break; //如果9列,则不能往右,直接跳出 else { col++; //往左,列-1 if(form[row][col]=='.') //判断此时的列是否为空 { alpha++; form[row][col]=alpha; //为空,将下一个字母放入 x=0;}//计数器清零 else {x++; col--;} break; } case 2: if(row==0) break; //如果0行,则不能往上,直接跳出 else { row--; //往左,列-1 if(form[row][col]=='.') //判断此时的列是否为空 {alpha++; form[row][col]=alpha; //为空,将下一个字母放入 x=0;}//计数器清零 else {x++;row++; } break; } case 3: if(row==9) break; //如果0列,则不能往左,直接跳出 else { row++; //往左,列-1 if(form[row][col]=='.') //判断此时的列是否为空 {alpha++;form[row][col]=alpha; //为空,将下一个字母放入 x=0;}//计数器清零 else {x++; row--; } break; } default:; } } } return 0; }



