-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathref.c
57 lines (56 loc) · 1.49 KB
/
ref.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main(void) {
char walk[10][10];
char letter = 65;
int direction;
int i, j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
walk[i][j] = '.';
}
}
i = 0, j = 0;
walk[i][j] = letter;
while (letter < 90) {
direction = rand() % 4;
if (direction == 0) { //向右
if (j < 9 && walk[i][j + 1] == '.') {
j++;
letter++;
walk[i][j] = letter;
}
} else if (direction == 1) { //向下
if (i < 9 && walk[i + 1][j] == '.') {
i++;
letter++;
walk[i][j] = letter;
}
} else if (direction == 2) { //向左
if (j > 0 && walk[i][j - 1] == '.') {
j--;
letter++;
walk[i][j] = letter;
}
} else if (direction == 3) {//向上
if (i > 0 && walk[i - 1][j] == '.') {
i--;
letter++;
walk[i][j] = letter;
}
}
if ((j >= 9 || walk[i][j + 1] != '.') &&
(j <= 0 || walk[i][j - 1] != '.') &&
(i >= 9 || walk[i + 1][j] != '.') &&
(i <= 0 || walk[i - 1][j] != '.'))
break;
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf("%c ", walk[i][j]);
}
printf("\n");
}
return 0;
}