Diffstat (limited to 'noncore/games/kcheckers/echeckers.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/kcheckers/echeckers.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/noncore/games/kcheckers/echeckers.cpp b/noncore/games/kcheckers/echeckers.cpp index 1146059..afe62eb 100644 --- a/noncore/games/kcheckers/echeckers.cpp +++ b/noncore/games/kcheckers/echeckers.cpp | |||
@@ -58,51 +58,51 @@ bool ECheckers::go1(int from,int field) | |||
58 | } | 58 | } |
59 | } | 59 | } |
60 | return false; | 60 | return false; |
61 | } | 61 | } |
62 | 62 | ||
63 | 63 | ||
64 | bool ECheckers::checkCapture1() | 64 | bool ECheckers::checkCapture1() |
65 | { | 65 | { |
66 | for(int i=6;i<48;i++) | 66 | for(int i=6;i<48;i++) |
67 | { | 67 | { |
68 | switch(board[i]) | 68 | switch(board[i]) |
69 | { | 69 | { |
70 | case MAN1: | 70 | case MAN1: |
71 | if(board[i-6]==MAN2 || board[i-6]==KING2) | 71 | if(board[i-6]==MAN2 || board[i-6]==KING2) |
72 | if(board[i-12]==FREE) return true; | 72 | if(board[i-12]==FREE) return true; |
73 | if(board[i-5]==MAN2 || board[i-5]==KING2) | 73 | if(board[i-5]==MAN2 || board[i-5]==KING2) |
74 | if(board[i-10]==FREE) return true; | 74 | if(board[i-10]==FREE) return true; |
75 | break; | 75 | break; |
76 | case KING1: | 76 | case KING1: |
77 | if(board[i-6]==MAN2 || board[i-6]==KING2) | 77 | if(board[i-6]==MAN2 || board[i-6]==KING2) |
78 | if(board[i-12]==FREE) return true; | 78 | if(board[i-12]==FREE) return true; |
79 | if(board[i-5]==MAN2 || board[i-5]==KING2) | 79 | if(board[i-5]==MAN2 || board[i-5]==KING2) |
80 | if(board[i-10]==FREE) return true; | 80 | if(board[i-10]==FREE) return true; |
81 | if(board[i+5]==MAN2 || board[i+5]==KING2) | 81 | if(board[i+5]==MAN2 || board[i+5]==KING2) |
82 | if(board[i+10]==FREE) return true; | 82 | if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true; |
83 | if(board[i+6]==MAN2 || board[i+6]==KING2) | 83 | if(board[i+6]==MAN2 || board[i+6]==KING2) |
84 | if(board[i+12]==FREE) return true; | 84 | if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true; |
85 | } | 85 | } |
86 | } | 86 | } |
87 | return false; | 87 | return false; |
88 | } | 88 | } |
89 | 89 | ||
90 | 90 | ||
91 | // Return TRUE if a course of the user true | 91 | // Return TRUE if a course of the user true |
92 | // Return FALSE if a course of the user incorrect | 92 | // Return FALSE if a course of the user incorrect |
93 | 93 | ||
94 | bool ECheckers::manCapture1(int from,int direction,bool &capture) | 94 | bool ECheckers::manCapture1(int from,int direction,bool &capture) |
95 | { | 95 | { |
96 | int i=from+direction; | 96 | int i=from+direction; |
97 | if(board[i]==MAN2 || board[i]==KING2) | 97 | if(board[i]==MAN2 || board[i]==KING2) |
98 | { | 98 | { |
99 | int k=i+direction; | 99 | int k=i+direction; |
100 | if(board[k]==FREE) | 100 | if(board[k]==FREE) |
101 | { | 101 | { |
102 | bool next=false; | 102 | bool next=false; |
103 | int save=board[i]; | 103 | int save=board[i]; |
104 | board[from]=FREE; | 104 | board[from]=FREE; |
105 | board[i]=NONE; | 105 | board[i]=NONE; |
106 | 106 | ||
107 | if(k<10) | 107 | if(k<10) |
108 | { | 108 | { |
@@ -200,61 +200,61 @@ void ECheckers::kingMove2(int from,int &resMax) | |||
200 | turn(resMax); | 200 | turn(resMax); |
201 | board[i]=FREE; | 201 | board[i]=FREE; |
202 | } | 202 | } |
203 | 203 | ||
204 | i=from+6; | 204 | i=from+6; |
205 | if(board[i]==FREE) | 205 | if(board[i]==FREE) |
206 | { | 206 | { |
207 | board[i]=KING2; | 207 | board[i]=KING2; |
208 | turn(resMax); | 208 | turn(resMax); |
209 | board[i]=FREE; | 209 | board[i]=FREE; |
210 | } | 210 | } |
211 | 211 | ||
212 | board[from]=KING2; | 212 | board[from]=KING2; |
213 | } | 213 | } |
214 | 214 | ||
215 | 215 | ||
216 | bool ECheckers::checkCapture2() | 216 | bool ECheckers::checkCapture2() |
217 | { | 217 | { |
218 | for(int i=6;i<48;i++) | 218 | for(int i=6;i<48;i++) |
219 | { | 219 | { |
220 | switch(board[i]) | 220 | switch(board[i]) |
221 | { | 221 | { |
222 | case MAN2: | 222 | case MAN2: |
223 | if(board[i+5]==MAN1 || board[i+5]==KING1) | 223 | if(board[i+5]==MAN1 || board[i+5]==KING1) |
224 | if(board[i+10]==FREE) return true; | 224 | if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true; |
225 | if(board[i+6]==MAN1 || board[i+6]==KING1) | 225 | if(board[i+6]==MAN1 || board[i+6]==KING1) |
226 | if(board[i+12]==FREE) return true; | 226 | if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true; |
227 | break; | 227 | break; |
228 | case KING2: | 228 | case KING2: |
229 | if(board[i-6]==MAN1 || board[i-6]==KING1) | 229 | if(board[i-6]==MAN1 || board[i-6]==KING1) |
230 | if(board[i-12]==FREE) return true; | 230 | if(board[i-12]==FREE) return true; |
231 | if(board[i-5]==MAN1 || board[i-5]==KING1) | 231 | if(board[i-5]==MAN1 || board[i-5]==KING1) |
232 | if(board[i-10]==FREE) return true; | 232 | if(board[i-10]==FREE) return true; |
233 | if(board[i+5]==MAN1 || board[i+5]==KING1) | 233 | if(board[i+5]==MAN1 || board[i+5]==KING1) |
234 | if(board[i+10]==FREE) return true; | 234 | if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true; |
235 | if(board[i+6]==MAN1 || board[i+6]==KING1) | 235 | if(board[i+6]==MAN1 || board[i+6]==KING1) |
236 | if(board[i+12]==FREE) return true; | 236 | if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true; |
237 | } | 237 | } |
238 | } | 238 | } |
239 | return false; | 239 | return false; |
240 | } | 240 | } |
241 | 241 | ||
242 | 242 | ||
243 | // Return TRUE if it is possible to capture | 243 | // Return TRUE if it is possible to capture |
244 | // Return FALSE if it is impossible to capture | 244 | // Return FALSE if it is impossible to capture |
245 | 245 | ||
246 | bool ECheckers::manCapture2(int from,int &resMax) | 246 | bool ECheckers::manCapture2(int from,int &resMax) |
247 | { | 247 | { |
248 | bool capture=false; | 248 | bool capture=false; |
249 | 249 | ||
250 | int i=from+5; | 250 | int i=from+5; |
251 | if(board[i]==MAN1 || board[i]==KING1) | 251 | if(board[i]==MAN1 || board[i]==KING1) |
252 | { | 252 | { |
253 | int k=from+10; | 253 | int k=from+10; |
254 | if(board[k]==FREE) | 254 | if(board[k]==FREE) |
255 | { | 255 | { |
256 | int save=board[i]; | 256 | int save=board[i]; |
257 | board[from]=FREE; | 257 | board[from]=FREE; |
258 | board[i]=NONE; | 258 | board[i]=NONE; |
259 | resMax--; | 259 | resMax--; |
260 | if(from>32) | 260 | if(from>32) |