You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (board[wins[i][0]] !=0 and board[wins[i][0]] == board[wins[i][1]] and board[wins[i][1]] == board[wins[i][2]]) {
340
-
return board[wins[i][0]];
341
-
}
342
-
i= i +1;
312
+
class TicTacToe {
313
+
fnMake() -> TicTacToe {
314
+
returned var me: TicTacToe;
315
+
me.board= (0, 0, 0, 0, 0, 0, 0, 0, 0);
316
+
me.current_player=1;
317
+
318
+
me.wins= (
319
+
// rows
320
+
(0, 1, 2), (3, 4, 5), (6, 7, 8),
321
+
// cols
322
+
(0, 3, 6), (1, 4, 7), (2, 5, 8),
323
+
// diags
324
+
(0, 4, 8), (2, 4, 6)
325
+
);
326
+
327
+
return var;
343
328
}
344
-
return0;
345
-
}
346
329
347
-
fnIsFull(board: array(i32, 9)) ->bool {
348
-
var i: i32=0;
349
-
while (i <9) {
350
-
if (board[i] ==0) {
351
-
returnfalse;
330
+
fn PrintBoard[self: Self]() {
331
+
var i: i32=0;
332
+
while (i <9) {
333
+
let cell: i32= self.board[i];
334
+
if (cell==0) {
335
+
// '-'
336
+
Core.PrintChar(45);
337
+
} elseif (cell==1) {
338
+
// 'X'
339
+
Core.PrintChar(88);
340
+
} else {
341
+
// 'O'
342
+
Core.PrintChar(79);
343
+
}
344
+
if (i %3==2) {
345
+
// newline
346
+
Core.PrintChar(10);
347
+
} else {
348
+
// space
349
+
Core.PrintChar(32);
350
+
}
351
+
i= i +1;
352
352
}
353
-
i= i +1;
354
353
}
355
-
returntrue;
356
-
}
357
-
358
-
fnInputMove(board: array(i32, 9)) -> i32 {
359
-
var move: i32=0;
360
-
while (true) {
361
-
PrintBoard(board);
362
-
PrintEnterMove();
363
-
364
354
365
-
if (not ReadInt(&move)) {
366
-
PrintInvalidInput();
367
-
continue;
368
-
}
369
-
if (move <0or move >8) {
370
-
PrintInvalidMove();
371
-
continue;
372
-
}
373
-
if (board[move] !=0) {
374
-
PrintCellOccupied();
375
-
continue;
355
+
fn CheckWinner[self: Self]() -> i32 {
356
+
var i: i32=0;
357
+
while (i <8) {
358
+
if (self.board[self.wins[i][0]] !=0 and self.board[self.wins[i][0]] == self.board[self.wins[i][1]] and self.board[self.wins[i][1]] == self.board[self.wins[i][2]]) {
0 commit comments