20
20
*
21
21
*/
22
22
23
- #include < limits.h>
24
- #include " groovie/groovie.h"
25
23
#include " groovie/logic/pente.h"
26
24
#include " common/stack.h"
25
+ #include " groovie/groovie.h"
26
+ #include < limits.h>
27
27
28
28
namespace Groovie {
29
29
@@ -50,18 +50,14 @@ struct penteTable {
50
50
uint16 linesCounter;
51
51
uint16 linesTable[20 ][15 ][21 ];
52
52
byte numAdjacentPieces[20 ][15 ];
53
- byte calcTouchingPieces;// the deepest level of AI recursion sets this to 0, and then sets it back to 1 when returning
53
+ byte calcTouchingPieces; // the deepest level of AI recursion sets this to 0, and then sets it back to 1 when returning
54
54
};
55
55
56
-
57
- void PenteGame::penteSub02Frees (penteTable *table)
58
- {
56
+ void PenteGame::penteSub02Frees (penteTable *table) {
59
57
delete table;
60
58
}
61
59
62
-
63
- void PenteGame::penteSub05BuildLookupTable (penteTable *table)
64
- {
60
+ void PenteGame::penteSub05BuildLookupTable (penteTable *table) {
65
61
uint16 *puVar1;
66
62
uint _width;
67
63
uint uVar4;
@@ -182,11 +178,7 @@ void PenteGame::penteSub05BuildLookupTable(penteTable *table)
182
178
table->linesCounter = lines_counter;
183
179
}
184
180
185
-
186
-
187
-
188
- penteTable *PenteGame::penteSub01Init (byte width, byte height, byte length)
189
- {
181
+ penteTable *PenteGame::penteSub01Init (byte width, byte height, byte length) {
190
182
penteTable *table;
191
183
byte bVar5;
192
184
uint16 _height;
@@ -212,13 +204,11 @@ penteTable *PenteGame::penteSub01Init(byte width, byte height, byte length)
212
204
return table;
213
205
}
214
206
215
-
216
207
uint &getPlayerTable (penteTable *table, bool staufTurn, pentePlayerTable *&pt) {
217
208
pt = staufTurn ? &table->stauf : &table->player ;
218
209
return staufTurn ? table->staufScore : table->playerScore ;
219
210
}
220
211
221
-
222
212
void penteScoringLine (penteTable *table, uint16 lineIndex, bool stauf_turn, bool revert) {
223
213
pentePlayerTable *playerTable;
224
214
uint &score = getPlayerTable (table, stauf_turn, playerTable);
@@ -294,15 +284,14 @@ void penteTouchingPieces(penteTable *table, byte moveX, byte moveY, bool revert)
294
284
}
295
285
296
286
for (; y <= endY; y++) {
297
- if (revert)
287
+ if (revert)
298
288
table->numAdjacentPieces [x][y]--;
299
289
else
300
290
table->numAdjacentPieces [x][y]++;
301
291
}
302
292
}
303
293
}
304
294
305
-
306
295
void PenteGame::penteSub03Scoring (penteTable *table, byte move_y, byte move_x, bool stauf_turn) {
307
296
table->boardState [move_x][move_y] = stauf_turn ? 88 : 79 ;
308
297
uint16 lines = table->linesTable [move_x][move_y][0 ];
@@ -319,7 +308,6 @@ void PenteGame::penteSub03Scoring(penteTable *table, byte move_y, byte move_x, b
319
308
table->moveCounter ++;
320
309
}
321
310
322
-
323
311
void PenteGame::penteSub07RevertScore (penteTable *table, byte y, byte x) {
324
312
bool stauf_turn = table->boardState [x][y] == 88 ;
325
313
table->boardState [x][y] = 0 ;
@@ -336,7 +324,6 @@ void PenteGame::penteSub07RevertScore(penteTable *table, byte y, byte x) {
336
324
}
337
325
}
338
326
339
-
340
327
byte PenteGame::penteScoreCaptureSingle (penteTable *table, byte x, byte y, int slopeX, int slopeY) {
341
328
byte x1 = x + slopeX;
342
329
byte y1 = y + slopeY;
@@ -381,13 +368,11 @@ Slope slopes[] = {{1, 0},
381
368
{0 , -1 },
382
369
{1 , -1 }};
383
370
384
- uint PenteGame::penteSub04ScoreCapture (penteTable *table, byte y, byte x)
385
- {
371
+ uint PenteGame::penteSub04ScoreCapture (penteTable *table, byte y, byte x) {
386
372
byte bitMask = 0 ;
387
373
bool isStauf = table->boardState [x][y] == 88 ;
388
374
389
-
390
- for (const Slope &slope : slopes ) {
375
+ for (const Slope &slope : slopes) {
391
376
bitMask <<= 1 ;
392
377
bitMask |= penteScoreCaptureSingle (table, x, y, slope.x , slope.y );
393
378
}
@@ -408,9 +393,6 @@ uint PenteGame::penteSub04ScoreCapture(penteTable *table, byte y, byte x)
408
393
return bitMask;
409
394
}
410
395
411
-
412
-
413
-
414
396
void PenteGame::penteSub08MaybeAnimateCapture (short move, byte *bitMaskG, short *param_3, short *param_4)
415
397
416
398
{
@@ -472,11 +454,7 @@ void PenteGame::penteSub08MaybeAnimateCapture(short move, byte *bitMaskG, short
472
454
return ;
473
455
}
474
456
475
-
476
-
477
-
478
- void PenteGame::penteSub11RevertCapture (penteTable *table, byte y, byte x, byte bitMask)
479
- {
457
+ void PenteGame::penteSub11RevertCapture (penteTable *table, byte y, byte x, byte bitMask) {
480
458
bool isPlayer = table->boardState [x][y] == 79 ;
481
459
for (int i = bitMask; i; i >>= 1 ) {
482
460
if ((i & 1 ) == 0 )
@@ -504,11 +482,7 @@ void PenteGame::penteSub11RevertCapture(penteTable *table, byte y, byte x, byte
504
482
}
505
483
}
506
484
507
-
508
-
509
-
510
- int PenteGame::penteSub10AiRecurse (penteTable *table_1, char depth, int parent_score)
511
- {
485
+ int PenteGame::penteSub10AiRecurse (penteTable *table_1, char depth, int parent_score) {
512
486
int iVar2;
513
487
int iVar3;
514
488
int iVar4;
@@ -582,7 +556,8 @@ int PenteGame::penteSub10AiRecurse(penteTable *table_1, char depth, int parent_s
582
556
}
583
557
584
558
uint16 uVar6;
585
- for (uVar6 = 1 ; uVar6 < local_970[1 ]; uVar6 = uVar6 * 3 + 1 ) {}
559
+ for (uVar6 = 1 ; uVar6 < local_970[1 ]; uVar6 = uVar6 * 3 + 1 ) {
560
+ }
586
561
587
562
while (2 < (short )uVar6) {
588
563
uVar6 = (short )uVar6 / 3 ;
@@ -649,11 +624,7 @@ int PenteGame::penteSub10AiRecurse(penteTable *table_1, char depth, int parent_s
649
624
return -best_score;
650
625
}
651
626
652
-
653
-
654
-
655
- uint PenteGame::penteSub09Ai (uint y_1, int param_2, int param_3, penteTable *table_4, byte depth)
656
- {
627
+ uint PenteGame::penteSub09Ai (uint y_1, int param_2, int param_3, penteTable *table_4, byte depth) {
657
628
bool bVar1;
658
629
uint uVar2;
659
630
int iVar3;
@@ -746,7 +717,6 @@ uint PenteGame::penteSub09Ai(uint y_1, int param_2, int param_3, penteTable *tab
746
717
return y_1 & 0xffff0000 | (uint)uVar5;
747
718
}
748
719
749
-
750
720
int varsMoveToXY (byte var0, byte var1, byte var2, byte &x, byte &y) {
751
721
int move = ((char )var0 * 10 + (short )(char )var1) * 10 + (short )(char )var2;
752
722
x = (byte)(move / 15 );
@@ -770,8 +740,7 @@ void moveXYToVars(uint x, uint y, byte &var0, byte &var1, byte &var2) {
770
740
moveToVars (move, var0, var1, var2);
771
741
}
772
742
773
- void PenteGame::penteOp (byte *vars)
774
- {
743
+ void PenteGame::penteOp (byte *vars) {
775
744
uint16 uVar1;
776
745
int iVar2;
777
746
uint uVar3;
@@ -827,14 +796,14 @@ void PenteGame::penteOp(byte *vars)
827
796
}
828
797
if ((int )game_state_table->playerScore < WIN_SCORE) {
829
798
uVar3 = game_state_table->staufScore ;
830
- vars[5 ] = 2 ;// Stauf wins
799
+ vars[5 ] = 2 ; // Stauf wins
831
800
if ((int )uVar3 < WIN_SCORE) {
832
- vars[5 ] = 4 ;// player wins because the board is full?
801
+ vars[5 ] = 4 ; // player wins because the board is full?
833
802
}
834
803
goto DEALLOC;
835
804
}
836
805
}
837
- vars[5 ] = 3 ;// player wins
806
+ vars[5 ] = 3 ; // player wins
838
807
DEALLOC:
839
808
penteSub02Frees (game_state_table);
840
809
game_state_table = (penteTable *)0x0 ;
@@ -885,7 +854,6 @@ void PenteGame::penteOp(byte *vars)
885
854
moveXYToVars (globalX, globalY, vars[0 ], vars[1 ], vars[2 ]);
886
855
}
887
856
888
-
889
857
PenteGame::PenteGame () : _random(" PenteGame" ) {
890
858
global1 = -1 ;
891
859
game_state_table = NULL ;
@@ -1025,4 +993,4 @@ void PenteGame::testGame(uint32 seed, Common::Array<int> moves, bool playerWin)
1025
993
warning (" finished PenteGame::testGame(%u, %u, %d)" , seed, moves.size (), (int )playerWin);
1026
994
}
1027
995
1028
- } // End of Groovie namespace
996
+ } // namespace Groovie
0 commit comments