From 8acb2ec20f9f7ab166555e674eb4e2886c8bd64d Mon Sep 17 00:00:00 2001 From: Gentoo Date: Sun, 1 Mar 2026 22:43:51 -0500 Subject: [PATCH] f --- src/main.c | 70 ++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/src/main.c b/src/main.c index 836ea69..2f1ad97 100644 --- a/src/main.c +++ b/src/main.c @@ -3,8 +3,12 @@ const char p1 = 'x', p2 = 'o'; char temp = 0; + // char buf[9] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }; +void +print_bits_int(unsigned int n); + unsigned int encoder(unsigned int mask, int length, int point) { @@ -60,48 +64,24 @@ draw_board(unsigned int buf) for (int i = 0; i < 9; i += 3) { char row[] = " 0 | 0 | 0\n"; - if (decoder(buf, i) == 1) - { - row[1] = 'x'; - } - else if (decoder(buf, i) == 2) - { - row[1] = 'o'; - } - else - { - row[1] = ' '; - } - if (decoder(buf, i + 1) == 1) - { - row[5] = 'x'; - } - else if (decoder(buf, i + 1) == 2) - { - row[5] = 'o'; - } - else - { - row[5] = ' '; - } - if (decoder(buf, i + 2) == 1) - { - row[9] = 'x'; - } - else if (decoder(buf, i + 2) == 2) - { - row[9] = 'o'; - } - else - { - row[9] = ' '; - } + if (decoder(buf, i) == 1) row[1] = 'x'; + else if (decoder(buf, i) == 2) row[1] = 'o'; + else row[1] = ' '; + + if (decoder(buf, i + 1) == 1) row[5] = 'x'; + else if (decoder(buf, i + 1) == 2) row[5] = 'o'; + else row[5] = ' '; + + if (decoder(buf, i + 2) == 1) row[9] = 'x'; + else if (decoder(buf, i + 2) == 2) row[9] = 'o'; + else row[9] = ' '; write(1, row, sizeof(row) - 1); if (i < 6) write(1, divider, sizeof(divider) - 1); } write(1, "Current Player: ", 16); write(1, &temp, 1); write(1, "\n", 1); + print_bits_int(buf); } void @@ -120,8 +100,12 @@ int main() { unsigned player_mask = 0; - player_mask = encoder(player_mask, 1, 0); - draw_board(player_mask); + player_mask = encoder(player_mask, 1, 13); // p1 + player_mask = encoder(player_mask, 2, 14); // p2 + player_mask = encoder(player_mask, 1, 15); // Temp + + // player_mask = encoder(player_mask, 1, 0); + // draw_board(player_mask); // player_mask = encoder(player_mask, 1, 1); // print_bits_int(player_mask); // player_mask = encoder(player_mask, 2, 3); @@ -162,9 +146,9 @@ main() read(0, &ch, 1); if (ch == 'q') break; unsigned char idx = ch - '1'; - if (ch >= '1' && ch <= '9' && decoder(player_mask, idx) != (1 | 2)) + if (ch >= '1' && ch <= '9' && + decoder(player_mask, idx) != (1 | 2)) { - // buf[idx] = temp; player_mask = encoder(player_mask, 1, idx); // if (check_line(temp)) // { @@ -174,7 +158,11 @@ main() // sizeof(" wins!\n") - 1); // goto end; // } - // temp = (temp == 1) ? 2 : 1; + temp = (decoder(player_mask, 15) == 1) + ? (player_mask = + encoder(player_mask, 2, 15)) + : (player_mask = + encoder(player_mask, 2, 15)); filled++; } }