1 int GameOver()//判断游戏是否结束
2 {
3 bool over(0);
4 bool peace(1);
5 for(i=1;i<=40;i++)
6 {
7 cx=1,cy=1;
8 for(j=1;j<=40;j++)
9 {
10 #ifndef M
11 if(a[i][j]=='-'){
12 peace=0;
13 int M(0);
14 }
15 #endif
16 if(a[i][j]!='-' && a[i][j]==a[i][j-1])
17 {
18 cx++;
19 if(cx>=5)
20 {
21 over=1;break;
22 }
23 }
24 else cx=1;
25 if(a[j][i]!='-' && a[j][i]==a[j-1][i])
26 {
27 cy++;
28 if(cy>=5)
29 {
30 over=1;break;
31 }
32 }
33 else cy=1;
34 }
35 if(over)break;
36 int t_i,t_j;//存储临时值
37 if(i<=36)
38 {
39 t_i = i , t_j = 1;
40 xx = 1;//左下半
41 while(t_i<=40 && t_j<=40)
42 {
43 if(a[t_i][t_j]!='-' && a[t_i][t_j]==a[t_i-1][t_j-1])
44 {
45 xx++;
46 if(xx>=5)
47 {
48 over=1;break;
49 }
50 }
51 else xx=1;
52 t_i++,t_j++;
53 }
54 if(over)break;
55 t_i = 1 , t_j = i ;
56 xx = 1;//右上半
57 while(t_i<=40 && t_j<=40)
58 {
59 if(a[t_i][t_j]!='-' && a[t_i][t_j]==a[t_i-1][t_j-1])
60 {
61 xx++;
62 if(xx>=5)
63 {
64 over=1;break;
65 }
66 }
67 else xx=1;
68 t_i++,t_j++;
69 }
70 if(over)break;
71 }
72 if(i>4)
73 { //左上半
74 t_i = i,t_j = 1,yy = 1;
75 while(t_i>=1 && t_j<=40)
76 {
77 if(a[t_i][t_j]!='-' && a[t_i][t_j]==a[t_i+1][t_j-1])
78 {
79 yy++;
80 if(yy>=5)
81 {
82 over=1;break;
83 }
84 }
85 else yy=1;
86 t_i--,t_j++;
87 }
88 if(over)break;
89 //右下半
90 t_i=40,t_j=42-i,yy = 1;
91 while(t_i>4 && t_j<=40)
92 {
93 if(a[t_i][t_j]!='-' && a[t_i][t_j]==a[t_i+1][t_j-1])
94 {
95 yy++;
96 if(yy>=5)
97 {
98 over=1;break;
99 }
100 }
101 else yy=1;
102 t_i--,t_j++;
103 }
104 }
105
106 if(i==40 && peace)
107 {
108 over=1;
109 cout<<"遗憾?纠结?平局
"<<endl;
110 }
111 if(over)break;
112 }
113 return over;
114 }