It runs but crashes after i input the name of the player, i am still a beginner programmer so pardon my codes for being so messy.
void player(char player_name_ptr[maxs]); int easy_start_game(char player_name[maxs][maxs],char player_highest[maxs][maxs],int easy_highest,int easy_score,int right_answers[maxans]); int normal_start_game(int normal_highest,int normal_score,int right_answers[maxans]); int hard_start_game(int hard_highest,int hard_score,int right_answers[maxans]); void draw_boxes(char answers[maxans][maxs],int right_answers[maxans]); void displayall(char answers[maxans][maxs]); int get_random_number(int max); void shuffle_string(char text);
int main() {
int right_answers[maxans], rigth_answers_index,len=0; int opt,opt2,easy_highest=0,normal_highest=0,hard_highest=0,easy_score,normal_score,hard_score,i; char player_name[maxs][maxs],player_highest[maxs][maxs]; char* player_name_ptr[maxs]; system("color 1c"); while(1){ easy_score=0; normal_score=0; hard_score=0; // clear answers for (rigth_answers_index = 0; rigth_answers_index < maxans; rigth_answers_index++) { right_answers[rigth_answers_index] = 0; } printf("\n\n"); printf("\t\t\t ____________________________\n"); printf("\t\t\t| WORD TWISTER |\n"); printf("\t\t\t|____________________________|\n\n\n"); printf("\t\t\t[1] - Play game\n"); printf("\t\t\t[2] - highest_score\n"); printf("\t\t\t[3] - Exit\t"); scanf("%d",&opt); if(opt==1){ for(i=0;i<maxs;i++){ len=strlen(player_name[i]); if(len<=0){ player(player_name_ptr); strcpy(player_name[i],player_name_ptr[maxs]); printf("\n"); } else{ continue; } break; } printf("\t\t\tChoose Difficulty:\n"); printf("\t\t\t[1] - Easy\n"); printf("\t\t\t[2] - Normal\n"); printf("\t\t\t[3] - Hard\t"); scanf("%d",&opt2); if(opt2==1) { easy_start_game(player_name,player_highest,&easy_highest,&easy_score,right_answers); } else if(opt2==2) { normal_start_game(&normal_highest,&normal_score,right_answers); } else if(opt2==3) { hard_start_game(&hard_highest,&hard_score,right_answers); } } else if(opt==2) { system("cls"); for(i=0;i<maxans;i++){ printf("\t\t\t Easy Highest Score:%s:%d",player_highest[i],easy_highest); printf("\n"); } printf("\n"); printf("\t\t\t Normal Highest Score:%d",normal_highest); printf("\n"); printf("\t\t\t Hard Highest Score:%d",hard_highest); } else if(opt==3) { break; } else ("Invalid Option"); } return 0;
} void player(char* player_name_ptr[maxs]){
printf("\t\t\tEnter Player Name"); scanf("%s",player_name_ptr[maxs]);
}
int easy_start_game(char player_name[maxs][maxs],char player_highest[maxs][maxs],int easy_highest,int easy_score,int right_answers[maxans]) { char answers[easy_maxans][maxs] ={"alp","cap","lap","pal","act","alt","cat","lat","pat","apt","pac","tap", "acta","paca","plat","clap","pact","talc","clap", "clapt"}; int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0; char *original_text; char shuffle_text[maxs]; char user_input[maxs];
strcpy(shuffle_text, answers[19]); shuffle_string(shuffle_text); for (i = 0; i < maxans; i++) { system("cls"); original_text = answers[i]; draw_boxes(answers,right_answers); printf("\t\t\t Text: %s\n", shuffle_text); printf("Score:%d\n", *easy_score); while (1) { printf("Life Left %d\n",life); printf("Please enter your answer: \t"); scanf("%s", user_input); found_answer = 0; for (j = 0; j < maxans; j++) { if (strcmp(user_input, answers[j]) == 0) { right_answers[j] = 1; found_answer = 1; len=strlen(answers[j]); if(len==5) { *easy_score+=300; } else if(len==4) { *easy_score+=200; } else if(len<=3) { *easy_score+=50; } break; } } if (!found_answer) { life-=1; if(life==0) { gameover = 1; } } printf("\n"); break; } if (gameover) { system("cls"); displayall(answers); printf("\t\t\tGame over...\nThese are the correct answers\n"); printf("\t\t\tBack to Main Menu?\n[1] - Yes\n[2] - No"); scanf("%d",&opt2); if(opt2==1){ printf("Going back to Main Menu"); system("cls"); if(*easy_score>*easy_highest){ *easy_highest=*easy_score; strcpy(player_highest[i],player_name[i]); } } else if(opt2==2){ break; } break; } } if(*easy_score>*easy_highest){ *easy_highest=*easy_score; strcpy(player_highest[i],player_name[i]); }
} int normal_start_game(int normal_highest,int normal_score,int right_answers[maxans]) { char answers[maxans][maxs] ={"air","ear","ave","ran","van", "ire","vina","near","earn","rain", "rive","rave","vain","vein","vine", "rein","naive","raven","riven","ravin", "invar","naevi","naiver","vainer","ravine",}; int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0; char *original_text; char shuffle_text[maxs]; char user_input[maxs];
strcpy(shuffle_text, answers[24]); shuffle_string(shuffle_text); for (i = 0; i < maxans; i++) { system("cls"); original_text = answers[i]; draw_boxes(answers,right_answers); printf("\t\t\t Text: %s\n", shuffle_text); printf("\n\n"); printf("Score:%d\n", *normal_score); while (1) { printf("Life Left %d\n",life); printf("Please enter your answer: \t"); scanf("%s", user_input); found_answer = 0; for (j = 0; j < maxans; j++) { if (strcmp(user_input, answers[j]) == 0) { right_answers[j] = 1; found_answer = 1; len=strlen(answers[j]); if(len==6) { *normal_score+=500; } else if(len==5) { *normal_score+=300; } else if(len==4) { *normal_score+=200; } else if(len<=3) { *normal_score+=50; } break; } } if (!found_answer) { life-=1; if(life==0) { gameover = 1; } } printf("\n"); break; } if (gameover) { system("cls"); displayall(answers); printf("\t\t\tGame over...\nThese are the correct answers\n"); printf("\t\t\tBack to Main Menu?\n[1] - Yes\n[2] - No"); scanf("%d",&opt2); if(opt2==1){ printf("Going back to Main Menu"); system("cls"); } else if(opt2==2){ break; } break; } } if(*normal_score>*normal_highest){ *normal_highest=*normal_score; }
} int hard_start_game(int hard_highest,int hard_score,int right_answers[maxans]) { char answers[maxans][maxs] ={"dear","ears","eras","seam","seem", "ease","arms","sear","seer","arse", "seed","armed","dears","erase","dream", "derma","eased","meads","reads","smear", "dreams","remade","seamer","seared","dermas", "reamed","seamed","erased","edemas","madres",}; int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0; char *original_text; char shuffle_text[maxs]; char user_input[maxs];
strcpy(shuffle_text, answers[29]); shuffle_string(shuffle_text); for (i = 0; i < maxans; i++) { system("cls"); original_text = answers[i]; draw_boxes(answers,right_answers); printf("\t\t\t Text: %s\n", shuffle_text); printf("\n\n"); printf("Score:%d\n", *hard_score); while (1) { printf("Life Left %d\n",life); printf("Please enter your answer: \t"); scanf("%s", user_input); found_answer = 0; for (j = 0; j < maxans; j++) { if (strcmp(user_input, answers[j]) == 0) { right_answers[j] = 1; found_answer = 1; len=strlen(answers[j]); if(len==6) { *hard_score+=500; } else if(len==5) { *hard_score+=300; } else if(len==4) { *hard_score+=200; } else if(len<=3) { *hard_score+=50; } break; } } if (!found_answer) { life-=1; if(life==0) { gameover = 1; } } printf("\n"); break; } if (gameover) { system("cls"); displayall(answers); printf("\t\t\tGame over...\nThese are the correct answers\n"); printf("\t\t\tBack to Main Menu?\n[1] - Yes\n[2] - No"); scanf("%d",&opt2); if(opt2==1){ printf("Going back to Main Menu"); system("cls"); } else if(opt2==2){ break; } break; } } if(*hard_score>*hard_highest){ *hard_highest=*hard_score; }
} void draw_boxes(char answers[maxans][maxs],int right_answers[maxans]){ int i, j, len;
printf(" \t\t\t ____________________________\n"); printf("\t\t\t| WORD TWISTER |\n"); printf("\t\t\t|____________________________|\n"); printf("\n"); for (i = 0; i < maxans; i++) { printf("\t\t "); if (right_answers[i]){ printf("%s", answers[i]); } else { len = strlen(answers[i]); for (j = 0; j < len; j++){ printf("__."); } } printf("\n"); }
} void displayall(char answers[maxans][maxs]){ int i, j, len;
for (i = 0; i < maxans; i++) { printf("\t\t "); printf("%s",answers[i]); printf("\n"); }
} int get_random_number(int max) { srand(time(0)); // rand() generates a random number from 0 to 32767 return rand() % max; }
void shuffle_string(char clue[maxans]) { char temp; int len = strlen(clue); int i; int j;
for (i = 0; i < len; i++) { j = get_random_number(len); if (i == j) continue; temp = clue[i]; clue[i] = clue[j]; clue[j] = temp; }
Log in to post a comment.
It runs but crashes after i input the name of the player, i am still a beginner programmer so pardon my codes for being so messy.
include <time.h>
include <stdio.h>
include <stdlib.h>
include <string.h>
define maxans 31
define easy_maxans 21
define maxs 10
void player(char player_name_ptr[maxs]);
int easy_start_game(char player_name[maxs][maxs],char player_highest[maxs][maxs],int easy_highest,int easy_score,int right_answers[maxans]);
int normal_start_game(int normal_highest,int normal_score,int right_answers[maxans]);
int hard_start_game(int hard_highest,int hard_score,int right_answers[maxans]);
void draw_boxes(char answers[maxans][maxs],int right_answers[maxans]);
void displayall(char answers[maxans][maxs]);
int get_random_number(int max);
void shuffle_string(char text);
int main()
{
}
void player(char* player_name_ptr[maxs]){
}
int easy_start_game(char player_name[maxs][maxs],char player_highest[maxs][maxs],int easy_highest,int easy_score,int right_answers[maxans]) {
char answers[easy_maxans][maxs] ={"alp","cap","lap","pal","act","alt","cat","lat","pat","apt","pac","tap",
"acta","paca","plat","clap","pact","talc","clap",
"clapt"};
int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0;
char *original_text;
char shuffle_text[maxs];
char user_input[maxs];
}
int normal_start_game(int normal_highest,int normal_score,int right_answers[maxans]) {
char answers[maxans][maxs] ={"air","ear","ave","ran","van",
"ire","vina","near","earn","rain",
"rive","rave","vain","vein","vine",
"rein","naive","raven","riven","ravin",
"invar","naevi","naiver","vainer","ravine",};
int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0;
char *original_text;
char shuffle_text[maxs];
char user_input[maxs];
}
int hard_start_game(int hard_highest,int hard_score,int right_answers[maxans]) {
char answers[maxans][maxs] ={"dear","ears","eras","seam","seem",
"ease","arms","sear","seer","arse",
"seed","armed","dears","erase","dream",
"derma","eased","meads","reads","smear",
"dreams","remade","seamer","seared","dermas",
"reamed","seamed","erased","edemas","madres",};
int i,j,gameover=0,opt,opt2,life=5,found_answer=0,len,score=0;
char *original_text;
char shuffle_text[maxs];
char user_input[maxs];
}
void draw_boxes(char answers[maxans][maxs],int right_answers[maxans]){
int i, j, len;
}
void displayall(char answers[maxans][maxs]){
int i, j, len;
}
int get_random_number(int max) {
srand(time(0));
// rand() generates a random number from 0 to 32767
return rand() % max;
}
void shuffle_string(char clue[maxans]) {
char temp;
int len = strlen(clue);
int i;
int j;
}