From eda7d1fab61e73780571aa97fcb75714f990c252 Mon Sep 17 00:00:00 2001 From: ninya9k <> Date: Sun, 12 Nov 2023 13:42:03 +0000 Subject: [PATCH] fug --- uttt.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/uttt.c b/uttt.c index 52bd6e4..8d968bf 100644 --- a/uttt.c +++ b/uttt.c @@ -211,7 +211,32 @@ void ut_local_game(struct ut_state *state) { } void ut_host_game(struct ut_state *state, int sock) { - printf(":P\n"); + while (true) { + int x, y; + ut_show(state); + for (int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) { + putchar(state->boards[j][i]); + } + putchar('\n'); + } + bool ok = getpos(state, &y, &x); + if (!ok) {continue;} + int err = ut_move(state, state, x, y); + if (err) {continue;} + char w = ut_winner((char *)state->boards, 0, 3); + if(w) + { + if(w == ' ') + { + printf("\nDraw!\n"); + } + else + { + printf("\n%c wins!\n", (int)w); + } + } + } } int main(int argc, char **argv) { @@ -236,6 +261,18 @@ int main(int argc, char **argv) { printf("error %d\n", errsv); return 1; } + if (listen(sock, 128) == -1) { + int errsv = errno; + printf("error %d\n", errsv); + return 1; + } + printf("Waiting for game partner at 127.0.0.1:6669 ...\n"); + int conn = accept(sock, NULL, NULL); + if (conn == -1) { + int errsv = errno; + printf("error %d\n", errsv); + return 1; + } ut_host_game(&state, sock); } else if (strncmp(argv[1], arg_join, strlen(arg_join)) == 0) { printf("no ;)\n");