This commit is contained in:
Gentoo
2026-03-01 22:43:51 -05:00
parent 10b9c0b847
commit 8acb2ec20f
+29 -41
View File
@@ -3,8 +3,12 @@
const char p1 = 'x', p2 = 'o'; const char p1 = 'x', p2 = 'o';
char temp = 0; char temp = 0;
// char buf[9] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }; // char buf[9] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
void
print_bits_int(unsigned int n);
unsigned int unsigned int
encoder(unsigned int mask, int length, int point) 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) for (int i = 0; i < 9; i += 3)
{ {
char row[] = " 0 | 0 | 0\n"; char row[] = " 0 | 0 | 0\n";
if (decoder(buf, i) == 1) if (decoder(buf, i) == 1) row[1] = 'x';
{ else if (decoder(buf, i) == 2) row[1] = 'o';
row[1] = 'x'; else row[1] = ' ';
}
else if (decoder(buf, i) == 2) if (decoder(buf, i + 1) == 1) row[5] = 'x';
{ else if (decoder(buf, i + 1) == 2) row[5] = 'o';
row[1] = 'o'; else row[5] = ' ';
}
else if (decoder(buf, i + 2) == 1) row[9] = 'x';
{ else if (decoder(buf, i + 2) == 2) row[9] = 'o';
row[1] = ' '; else row[9] = ' ';
}
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); write(1, row, sizeof(row) - 1);
if (i < 6) write(1, divider, sizeof(divider) - 1); if (i < 6) write(1, divider, sizeof(divider) - 1);
} }
write(1, "Current Player: ", 16); write(1, "Current Player: ", 16);
write(1, &temp, 1); write(1, &temp, 1);
write(1, "\n", 1); write(1, "\n", 1);
print_bits_int(buf);
} }
void void
@@ -120,8 +100,12 @@ int
main() main()
{ {
unsigned player_mask = 0; unsigned player_mask = 0;
player_mask = encoder(player_mask, 1, 0); player_mask = encoder(player_mask, 1, 13); // p1
draw_board(player_mask); 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); // player_mask = encoder(player_mask, 1, 1);
// print_bits_int(player_mask); // print_bits_int(player_mask);
// player_mask = encoder(player_mask, 2, 3); // player_mask = encoder(player_mask, 2, 3);
@@ -162,9 +146,9 @@ main()
read(0, &ch, 1); read(0, &ch, 1);
if (ch == 'q') break; if (ch == 'q') break;
unsigned char idx = ch - '1'; 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); player_mask = encoder(player_mask, 1, idx);
// if (check_line(temp)) // if (check_line(temp))
// { // {
@@ -174,7 +158,11 @@ main()
// sizeof(" wins!\n") - 1); // sizeof(" wins!\n") - 1);
// goto end; // 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++; filled++;
} }
} }