-rw-r--r-- | noncore/games/kcheckers/echeckers.cpp | 12 | ||||
-rw-r--r-- | noncore/games/kcheckers/rcheckers.cpp | 36 |
2 files changed, 30 insertions, 18 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 | |||
@@ -80,7 +80,7 @@ bool ECheckers::checkCapture1() | |||
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 | } |
@@ -222,7 +222,7 @@ bool ECheckers::checkCapture2() | |||
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: |
@@ -232,7 +232,7 @@ bool ECheckers::checkCapture2() | |||
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 | } |
diff --git a/noncore/games/kcheckers/rcheckers.cpp b/noncore/games/kcheckers/rcheckers.cpp index a1c7afa..d808780 100644 --- a/noncore/games/kcheckers/rcheckers.cpp +++ b/noncore/games/kcheckers/rcheckers.cpp | |||
@@ -113,7 +113,7 @@ bool RCheckers::checkCapture1() | |||
113 | if(board[i-10]==FREE) return true; | 113 | if(board[i-10]==FREE) return true; |
114 | if(board[i+5]==MAN2 || board[i+5]==KING2) | 114 | if(board[i+5]==MAN2 || board[i+5]==KING2) |
115 | if(board[i+10]==FREE) return true; | 115 | if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true; |
116 | if(board[i+6]==MAN2 || board[i+6]==KING2) | 116 | if(board[i+6]==MAN2 || board[i+6]==KING2) |
117 | if(board[i+12]==FREE) return true; | 117 | if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true; |
118 | break; | 118 | break; |
119 | case KING1: | 119 | case KING1: |
@@ -127,11 +127,17 @@ bool RCheckers::checkCapture1() | |||
127 | if(board[k-5]==FREE) return true; | 127 | if(board[k-5]==FREE) return true; |
128 | 128 | ||
129 | for(k=i+5;board[k]==FREE;k+=5); | 129 | for(k=i+5;board[k]==FREE;k+=5) { |
130 | if (k >= 49) | ||
131 | break; | ||
132 | } | ||
130 | if(board[k]==MAN2 || board[k]==KING2) | 133 | if(board[k]==MAN2 || board[k]==KING2) |
131 | if(board[k+5]==FREE) return true; | 134 | if(board[((k+5) < 54) ? k+5 : 53]==FREE) return true; |
132 | 135 | ||
133 | for(k=i+6;board[k]==FREE;k+=6); | 136 | for(k=i+6;board[k]==FREE;k+=6) { |
137 | if (k >=48) | ||
138 | break; | ||
139 | } | ||
134 | if(board[k]==MAN2 || board[k]==KING2) | 140 | if(board[k]==MAN2 || board[k]==KING2) |
135 | if(board[k+6]==FREE) return true; | 141 | if(board[((k+6) < 54) ? k+6 : 53]==FREE) return true; |
136 | } | 142 | } |
137 | } | 143 | } |
@@ -287,7 +293,7 @@ bool RCheckers::checkCapture2() | |||
287 | if(board[i-10]==FREE) return true; | 293 | if(board[i-10]==FREE) return true; |
288 | if(board[i+5]==MAN1 || board[i+5]==KING1) | 294 | if(board[i+5]==MAN1 || board[i+5]==KING1) |
289 | if(board[i+10]==FREE) return true; | 295 | if(board[((i+10) < 54) ? i+10 : 53]==FREE) return true; |
290 | if(board[i+6]==MAN1 || board[i+6]==KING1) | 296 | if(board[i+6]==MAN1 || board[i+6]==KING1) |
291 | if(board[i+12]==FREE) return true; | 297 | if(board[((i+12) < 54) ? i+12 : 53]==FREE) return true; |
292 | break; | 298 | break; |
293 | case KING2: | 299 | case KING2: |
@@ -301,11 +307,17 @@ bool RCheckers::checkCapture2() | |||
301 | if(board[k-5]==FREE) return true; | 307 | if(board[k-5]==FREE) return true; |
302 | 308 | ||
303 | for(k=i+5;board[k]==FREE;k+=5); | 309 | for(k=i+5;board[k]==FREE;k+=5) { |
310 | if (k>=49) | ||
311 | break; | ||
312 | } | ||
304 | if(board[k]==MAN1 || board[k]==KING1) | 313 | if(board[k]==MAN1 || board[k]==KING1) |
305 | if(board[k+5]==FREE) return true; | 314 | if(board[((k+5) < 54) ? k+5 : 53]==FREE) return true; |
306 | 315 | ||
307 | for(k=i+6;board[k]==FREE;k+=6); | 316 | for(k=i+6;board[k]==FREE;k+=6) { |
317 | if (k>=48) | ||
318 | break; | ||
319 | } | ||
308 | if(board[k]==MAN1 || board[k]==KING1) | 320 | if(board[k]==MAN1 || board[k]==KING1) |
309 | if(board[k+6]==FREE) return true; | 321 | if(board[((k+6) < 54) ? k+6 : 53]==FREE) return true; |
310 | } | 322 | } |
311 | } | 323 | } |