产生贯穿10×10数组的“随机步”。数据将包含字符(初始时所有数组元素为字符‘.’)。程序必须是一个元素随机“走到”另一个元素,对一个元素来说这种走始终向上、向下、向左或向右。程序访问到的元素将用从A到Z的字母进行标记,而且是按顺序进行的访问。
main() {
char board[LENGTH][LENGTH] = {'0'},loop='A';
int i,j,dir;
memset(board, '.',LENGTH*LENGTH *sizeof(char));
srand((unsigned)time(NULL));
board[0][0] = loop;
for (i = 0, j = 0;loop!='Z';) {
dir = rand() % 4;
if (dir == 0&& j - 1 >= 0 && board[i][j - 1] == '.') {
loop += 1;
j -= 1;
board[i][j] = loop;
}else if(dir==1&& i - 1 >= 0 && board[i - 1][j] == '.'){
loop += 1;
i -= 1;
board[i][j] = loop;
}else if(dir ==2&& j + 1 < LENGTH && board[i][j + 1] == '.'){
loop += 1;
j += 1;
board[i][j] = loop;
}
else if (i + 1 < LENGTH && board[i + 1][j] == '.') {
loop += 1;
i += 1;
board[i][j] = loop;
}
if (board[i - 1][j] != '.' && board[i + 1][j] != '.'&& board[i][j - 1] != '.' && board[i][j + 1] != '.')
break;
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
return 0;
}