From 831f9f01fbe4088eb6bd378c0e417d9996b676fd Mon Sep 17 00:00:00 2001 From: scratko Date: Fri, 30 Aug 2024 12:46:56 +0300 Subject: Final version v2.0 Added windows client. SIGPIPE signal was being sent to the server when the client was disconnected. Now there is handling of this signal. Added a delay when displaying some informational messages. --- client/verification_client_input.c | 115 ------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 client/verification_client_input.c (limited to 'client/verification_client_input.c') diff --git a/client/verification_client_input.c b/client/verification_client_input.c deleted file mode 100644 index fa88b54..0000000 --- a/client/verification_client_input.c +++ /dev/null @@ -1,115 +0,0 @@ -#include "verification_client_input.h" -#include "card_handling.h" -#include "printing_game_frames.h" - -#include -#include -#include - -enum { - output_buffer_size = 1024 -}; - -static char output_buffer[output_buffer_size]; - -/* - * 1 - response received - * 0 - waiting for re-entry of data - */ -int vci_confirmation_waiting(int fd, char *buffer) -{ - if(buffer[0] == '\n') { - write(fd, buffer, 1); - return 1; - } - else - printf("please press enter\n"); - return 0; -} - -/* - * example: A#\A^\Av\'\n' - * or (while tossing): '\n' - */ -int vci_attack_or_tossing(int fd, char *buffer, player_cards deck, - enum client_states state) -{ - int rank = 0, i, free_pos = 0; - char * card = NULL; - - if(state == tossing && buffer[0] == '\n') { /* cancel card tossing */ - write(fd, buffer, 1); - printf("skipping the card toss\n"); - return 1; - } - - for(i = 0; buffer[i] != '\n'; ++i) { - /* some symbols */ - if(state == attack && buffer[1] != '\n') { - card = card_search_by_marked_letter(deck, buffer[i]); - if(card) { - if(!rank) - rank = convert_rank_to_int(card); - if(rank != convert_rank_to_int(card)) { - printf("incorrect input\n> "); - fflush(stdout); - return 0; - } - } - /* one symbol inputed? */ - } else if(state == attack && buffer[1] == '\n') - card = card_search_by_unmarked_letter(deck, buffer[i]); - else if(state == tossing) - card = card_search_by_marked_letter(deck, buffer[i]); - - if(!card) { - printf("incorrect input\n> "); - fflush(stdout); - return 0; - } - strncpy(output_buffer + free_pos, card, strlen(card)); - free_pos += strlen(card); - output_buffer[free_pos] = '\\'; - ++free_pos; - } - if(state == attack && buffer[0] == '\n') { - printf("incorrect input\n> "); - fflush(stdout); - return 0; - } - output_buffer[free_pos] = '\n'; - write(fd, output_buffer, free_pos+1); - return 1; -} - -/* - * example: 5v'\n' - * or: '\n' - */ -int vci_defense(int fd, char *buffer, player_cards deck) -{ - int last_idx; - char *card = NULL; - - if(buffer[0] == '\n') { /* the player does not want to keep the defense */ - write(fd, buffer, 1); - printf("accepting cards\n"); - return 1; - } - if(buffer[1] != '\n') { - printf("incorrect input\n> "); - fflush(stdout); - return 0; - } - if((card = card_search_by_marked_letter(deck, buffer[0])) != NULL) { - strcpy(output_buffer, card); - last_idx = strlen(card); - output_buffer[last_idx] = '\n'; - write(fd, output_buffer, last_idx+1); - return 1; - } - /* card is not found in the deck or cannot be used */ - printf("incorrect input\n> "); - fflush(stdout); - return 0; -} -- cgit v1.2.3