質問編集履歴

2

2016/11/28 11:14

投稿

yu-ri1177
yu-ri1177

スコア13

test CHANGED
File without changes
test CHANGED
@@ -11,3 +11,105 @@
11
11
 
12
12
 
13
13
  ソースコード........
14
+
15
+ #include <stdio.h>
16
+
17
+
18
+
19
+ int put, turn, all, done, pass, count, value, i,
20
+
21
+ map[90] = {0}, dir[]={-10, -9, -8, -1, 1, 8, 9, 10};
22
+
23
+
24
+
25
+ void check()
26
+
27
+ {
28
+
29
+     if (map[put] == 0)
30
+
31
+         for (i=0; i<8; i++) {
32
+
33
+ for (count = 0, value = put+dir[i];
34
+
35
+ map[value] == 3-turn; value += dir[i])
36
+
37
+ count++;
38
+
39
+
40
+
41
+ if (count && map[value] == turn) {
42
+
43
+ all += count;
44
+
45
+ value = put;
46
+
47
+ if (done)
48
+
49
+ do
50
+
51
+ map[value] = turn, value += dir[i];
52
+
53
+ while (map[value] != turn);
54
+
55
+ }
56
+
57
+ }
58
+
59
+ }
60
+
61
+ char *h=" - o x\n";
62
+
63
+
64
+
65
+ int main()
66
+
67
+ {
68
+
69
+ for(i=1, map[41] = map[49] = 2; i<10; map[i++*9] = 3)
70
+
71
+ map[40] = map[50] = turn = pass = 1;
72
+
73
+
74
+
75
+ for (;; all = done = 0) {
76
+
77
+ for(put = 9; put<82; ++put)
78
+
79
+ check(), printf("%.2s",&h[map[put]*2]);
80
+
81
+
82
+
83
+ if(all)
84
+
85
+ for(done = all = pass = put = 8; all==8; check())
86
+
87
+ turn - 2 ? (scanf("%d %d",&put,&i), put+=i*9): ++put;
88
+
89
+
90
+
91
+ else if(pass)
92
+
93
+ pass=0,printf("pass");
94
+
95
+ else
96
+
97
+ break;
98
+
99
+ turn = 3 - turn;
100
+
101
+ }
102
+
103
+ return 0;
104
+
105
+ }
106
+
107
+
108
+
109
+
110
+
111
+ です。
112
+
113
+
114
+
115
+ すみません

1

2016/11/28 11:14

投稿

yu-ri1177
yu-ri1177

スコア13

test CHANGED
File without changes
test CHANGED
@@ -7,3 +7,7 @@
7
7
 
8
8
 
9
9
  まだc言語がわからないので教えてください。
10
+
11
+
12
+
13
+ ソースコード........