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';
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++;
}
}