Question: Using the program given. Add an option 4 to your menu for Play Bingo read in a bingo call (e,g, B6, I17, G57, G65) checks
Using the program given. Add an option 4 to your menu for Play Bingo read in a bingo call (e,g, B6, I17, G57, G65) checks to see if the bingo call read in is valid (i.e., G65 is not valid) marks all the boards that have the bingo call checks to see if there is a winner, for our purposes winning means 5 tokens in a row or column 5 tokens in a diagonal 1 token in each of the 4 corners of the game board Loop accepting bingo calls until there is a winner, and display an appropriate message specifying which user won.
Given program:
#include
int max_for_col(int column_index) { return (column_index + 1) * 15; }
void print_bingo_card(int cards[5][10][5][5], int player, int card) {int i, j;
printf("B I N G O "); for(i = 0; i < 5; ++i) { for(j = 0; j < 5; ++j) { if(i == 2 && j ==2) { printf("F "); }
else{ printf("%2d ", cards[player][card][i][j]); } } printf(" "); } printf(" "); } int main () { srand(time(NULL)); int num_players, num_cards, i, j, k, l, m, num; int bingo_cards[5][10][5][5]; int count[75]; int num_rows = 5, num_cols = 5; int already_exists = 0; printf("Enter number of players:"); //asking for player count scanf("%d", &num_players);//scanning user input printf("Enter number of cards per players:");//Asking for number of cards per person. scanf("%d", &num_cards);//scanning user input
for(i = 0; i < num_players; ++i){ for(j = 0; j < num_cards; ++j){ for (k = 0; k < num_cols; ++k) { for(l = 0; l < num_rows; ++l){ while(1) { num = get_random_number(min_for_col(k), max_for_col(k)); already_exists = 0; for(m = 0; m < 1; ++m){ if(bingo_cards[i][j][m][k] == num){ already_exists = 1; } }
if(already_exists == 0){ break; } } bingo_cards[i][j][l][k] = num; } } } } //histogram calculations for( i = 0; i < 75; ++i){ count[i] = 0; }
for(i = 0; i < num_players; ++i){ for(j = 0; j < num_cards; ++j){ for (k = 0; k while(1){ //while(1) means while true. so the loop continues to loop until the user presses 3 to exit the loop. printf("Press 1 to select user bingo card to display "); printf("Press 2 to show histogram "); printf("Press 3 to exit "); printf("Please enter your choice: ");//asking for user input scanf("%d", &i);//reading user input switch(i){ case 1: printf("Enter player number(%d-%d): ", 1, num_players); scanf("%d", &j); printf("Enter card number(%d-%d):", 1, num_cards); scanf("%d", &k); print_bingo_card(bingo_cards, j - 1, k - 1); break; case 2: for (j = 0; j < 75; ++j) { printf("%2d: ", j + 1); for(k = 0; k < count[j]; ++k) { printf("*"); /* when the histogram option is selected, numbers rangine from 1-75 will be shown. The asterisk will represent how many times each number has appearead on the cards.*/ } printf(" "); } break; case 3: return 0; default: //in case the user inputs an invalid number they are told to make another selection. printf("Invalid Choice. Make another selection."); break; } } return 0; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
