int main(void) { //init all CARD t_poker_card[CARDNUM]; CARD hand_cards1[HANDCARDMAX], hand_cards2[HANDCARDMAX], hand_cards3[HANDCARDMAX], hand_cards4[HANDCARDMAX]; PLAYER t_card_player[HANDCARDMAX] = { {{"Alice"}, 0, {hand_cards1[HANDCARDMAX]}}, {{"Ben"}, 1, {hand_cards2[HANDCARDMAX]}}, {{"Clark"}, 2, {hand_cards3[HANDCARDMAX]}}, {{"Durant"}, 3, {hand_cards4[HANDCARDMAX]}}}; SCOREIND t_indicator = {2, 2, 1}; int game_level = 2; while(t_indicator.partnerA < 14|| t_indicator.partnerB < 14){ //start one game init_cards(t_poker_card); shuffle_cards(t_poker_card); if(t_indicator.round != 1){ // } else{ //first game deal_cards(t_poker_card, &t_card_player[0], &t_card_player[1], &t_card_player[2], &t_card_player[3]); } } return 0; }
int main(void) { int i; char val, suit; int bmajor, bminor, wmajor, wminor; init_cards(); while(1) { for (i=0; i < 5; i++) { if (scanf(" %c%c", &val, &suit) != 2) { exit(0); } black_values[i] = card_values[val]; black_suits[i] = card_suits[suit]; } for (i=0; i < 5; i++) { if (scanf(" %c%c", &val, &suit) != 2) { exit(0); } white_values[i] = card_values[val]; white_suits[i] = card_suits[suit]; } qsort(black_values, 5, sizeof(int), compare); qsort(black_suits, 5, sizeof(int), compare); qsort(white_values, 5, sizeof(int), compare); qsort(white_suits, 5, sizeof(int), compare); get_ranks(black_values, black_suits, &bmajor, &bminor); get_ranks(white_values, white_suits, &wmajor, &wminor); if (wmajor > bmajor) { printf("White wins.\n"); } else if (bmajor > wmajor) { printf("Black wins.\n"); } else if (wminor > bminor) { printf("White wins.\n"); } else if (bminor > wminor) { printf("Black wins.\n"); } else { printf("Tie.\n"); } } }
int Load_Game() { FILE *f = fopen("Savegame.txt", "r"); if (fprintf(f, "") == EOF) return -1; int GameSizeX = 0, GameSizeY = 0, amPlayers = 0; char FileName[FILENAME_LENGHT]; if (fscanf(f, "%d %d %d %s", amPlayers, GameSizeX, GameSizeY, &FileName) == EOF) return FAILED_LOADING_SAVEGAME; struct Card cards[ARRAY_LENGTH]; int amCards = init_cards(&cards, "Savegame_Cards.txt"); if (amCards < 0) return amCards; Card_Background = load_picture(Card_Background, FileName); start_game(amPlayers, cards, amCards, GameSizeX, GameSizeY, &Card_Background, 1); return 0; }
void play_game_all(int nclients) { int id; pthread_t threads[MAX_PLAYERS]; init_cards(); for (id = 0; id < nclients; ++id) pthread_create(&threads[id], NULL, play_game_one, (void*) id); for (id = 0; id < nclients; ++id) pthread_join(threads[id], NULL); for (id = 0; id < MAX_PLAYERS; ++id) { if (clientSockFds[id] > 0) { int i = 0; int nwritten; char buffer[BUFFER_SIZE]; int player_sum, dealer_sum; int *player_hand_values = players_hand_values[id], *dealer_hand_values = dealers_hand_values[id]; int *player_hand_suits = players_hand_suits[id], *dealer_hand_suits = dealers_hand_suits[id]; while (calc_sum(dealer_hand_values, ndealers[id]) < 17) { dealer_hand_values[ndealers[id]] = card_values[ncard]; dealer_hand_suits[ndealers[id]] = card_suits[ncard]; buffer[i++] = value_codes[dealer_hand_values[ndealers[id]]]; buffer[i++] = suit_codes[dealer_hand_suits[ndealers[id]]]; ++ncard; ++ndealers[id]; } buffer[i] = 0; printf("\n"); printf("Player %d Hand: ", clientSockFds[id]); display_state(player_hand_values, player_hand_suits, nplayers[id]); printf("Dealer %d Hand: ", clientSockFds[id]); display_state(dealer_hand_values, dealer_hand_suits, ndealers[id]); if (BUFFER_SIZE != (nwritten = write(clientSockFds[id], buffer, BUFFER_SIZE))) { printf("Error! Couldn't write to player %d.\n", clientSockFds[id]); close(clientSockFds[id]); return; } player_sum = calc_sum(player_hand_values, nplayers[id]); dealer_sum = calc_sum(dealer_hand_values, ndealers[id]); if (dealer_sum > 21) printf("\nDealer busted! Player %d wins!\n", clientSockFds[id]); else if (player_sum == dealer_sum) printf("\nPlayer %d and dealer have the same score. It's a push!\n", clientSockFds[id]); else if (player_sum < dealer_sum) printf("\nDealer has a higher score than player %d. Dealer wins!\n", clientSockFds[id]); else printf("\nPlayer %d has a higher score. Player wins!\n", clientSockFds[id]); } } }