Plz plz plz plz plz help me!!!!! i tried alot to figure out the pblm but i failed..therefore i m putting my querie in front of xperts.. i m a beginner.. please help.!!!
Program before winchck function call
every thing working fine...... while function in mai runs 9 times taking all inputs.. Please run it and chck
Code:#include <stdio.h> #include <conio.h> #include <time.h> void charsel(char *p1choic, char *p2choic); int posin(char arr[9]); void tableout(char arr[9]); int winchck(char arr[9], char p1choic, char p2choic); int main(){ char arr[9]={32,32,32,32,32,32,32,32,32}; int i,j=0; int p1=1,p2=1; int a=0; char p1choic=0, p2choic=0; charsel(&p1choic, &p2choic); //charachter selection srand( time(NULL)); j = rand() % 2; system("pause"); for(i=1; i<10; i++){ if(j == 0){ system("cls"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); while(arr[p1-1] != 32){ system("cls"); if(p1<1 || p1 >9){ printf("Selection is not between 1 - 9\n\a"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); } else{ printf("Place has already been selected before\n\a"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); } } arr[p1-1]=p1choic; j++; } else if(j == 1){ system("cls"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); while(arr[p2-1] != 32){ system("cls"); if(p2<1 || p2 >9){ printf("Selection is not between 1 - 9\n\a"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); } else{ printf("Place has already been selected before\n\a"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); } } arr[p2-1]=p2choic; j--; } } system("cls"); tableout(arr); getch (); return 0; } // Functions // --Position Input int posin(char arr[9]){ int n=0; printf("you can choose position:\n\n"); int i=0; for(i=0;i<9;i++){ if(i == 3 || i == 6 || i == 9){ printf("%c\n - - -\n",179); } if(arr[i] == 32){ printf("%c%d",179,i+1); } else if(arr[i]!=32) printf("%c%c",179,178); } printf("%c\n",179); printf("\nEnter choice: "); scanf("%d",&n); return n; } // !!--Position Input // --Table Output f void tableout(char arr[9]){ int i=0; printf("\n*RESULT*\n\n"); for(i=0;i<9;i++){ if(i == 3 || i == 6 || i == 9){ printf("%c\n - - -\n",179); } if(arr[i] == 32){ printf("%c%c",179,arr[i+1]); } else if(arr[i]!=32) printf("%c%c",179,arr[i]); } printf("%c\n",179); } // !!--Table Output // -- Winchck int winchck(char arr[9], char p1choic, char p2choic){ if(arr[0]==p1choic && arr[1]==p1choic && arr[2]==p1choic) return 1; else if(arr[3]==p1choic && arr[4]==p1choic && arr[5]==p1choic) return 1; else if(arr[6]==p1choic && arr[7]==p1choic && arr[8]==p1choic) return 1; else if(arr[0]==p1choic && arr[3]==p1choic && arr[6]==p1choic) return 1; else if(arr[1]==p1choic && arr[4]==p1choic && arr[7]==p1choic) return 1; else if(arr[2]==p1choic && arr[5]==p1choic && arr[8]==p1choic) return 1; else if(arr[0]==p1choic && arr[4]==p1choic && arr[8]==p1choic) return 1; else if(arr[2]==p1choic && arr[4]==p1choic && arr[6]==p1choic) return 1; else if(arr[0]==p2choic && arr[1]==p2choic && arr[2]==p2choic) return 2; else if(arr[3]==p2choic && arr[4]==p2choic && arr[5]==p2choic) return 2; else if(arr[6]==p2choic && arr[7]==p2choic && arr[8]==p2choic) return 2; else if(arr[0]==p2choic && arr[3]==p2choic && arr[6]==p2choic) return 2; else if(arr[1]==p2choic && arr[4]==p2choic && arr[7]==p2choic) return 2; else if(arr[2]==p2choic && arr[5]==p2choic && arr[8]==p2choic) return 2; else if(arr[0]==p2choic && arr[4]==p2choic && arr[8]==p2choic) return 2; else if(arr[2]==p2choic && arr[4]==p2choic && arr[6]==p2choic) return 2; return 0; } // !!-- Win Check // --Charachter Selection-- void charsel(char *p1choic, char *p2choic){ int i=0; while(1){ printf("Enter your Choice\nx or o : "); fflush(stdin); scanf("%c",p1choic); switch(*p1choic){ case 'x': *p2choic='o'; break; case 'o': *p2choic='x'; break; default: printf("\nPlease choose x or o\n"); } if (*p1choic == 'x' || *p1choic == 'o') break; } printf("\nPlayer 1 choice: %c\nPlayer 2 choice: %c\n",*p1choic,*p2choic); } // !!--Charachter Selection--
Code after winchck function call.. while loop only running once and then breaking in main..
Code:#include <stdio.h> #include <conio.h> #include <time.h> void charsel(char *p1choic, char *p2choic); int posin(char arr[9]); void tableout(char arr[9]); int winchck(char arr[9], char p1choic, char p2choic); int main(){ char arr[9]={32,32,32,32,32,32,32,32,32}; int i,j=0; int p1=1,p2=1; int a=0; char p1choic=0, p2choic=0; charsel(&p1choic, &p2choic); //charachter selection srand( time(NULL)); j = rand() % 2; system("pause"); for(i=1; i<10; i++){ if(j == 0){ system("cls"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); while(arr[p1-1] != 32){ system("cls"); if(p1<1 || p1 >9){ printf("Selection is not between 1 - 9\n\a"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); } else{ printf("Place has already been selected before\n\a"); tableout(arr); printf("\nPlayer 1 turn\n"); p1=posin(arr); } } arr[p1-1]=p1choic; j++; } if(winchck(arr,p1choic,p2choic) ==! 1){ printf("Player 1 Wins"); break; } else if(j == 1){ system("cls"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); while(arr[p2-1] != 32){ system("cls"); if(p2<1 || p2 >9){ printf("Selection is not between 1 - 9\n\a"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); } else{ printf("Place has already been selected before\n\a"); tableout(arr); printf("\nPlayer 2 turn\n"); p2=posin(arr); } } arr[p2-1]=p2choic; j--; } if(winchck(arr,p1choic,p2choic) ==! 2){ printf("Player 2 Wins"); break; } } system("cls"); tableout(arr); getch (); return 0; } // Functions // --Position Input int posin(char arr[9]){ int n=0; printf("you can choose position:\n\n"); int i=0; for(i=0;i<9;i++){ if(i == 3 || i == 6 || i == 9){ printf("%c\n - - -\n",179); } if(arr[i] == 32){ printf("%c%d",179,i+1); } else if(arr[i]!=32) printf("%c%c",179,178); } printf("%c\n",179); printf("\nEnter choice: "); scanf("%d",&n); return n; } // !!--Position Input // --Table Output f void tableout(char arr[9]){ int i=0; printf("\n*RESULT*\n\n"); for(i=0;i<9;i++){ if(i == 3 || i == 6 || i == 9){ printf("%c\n - - -\n",179); } if(arr[i] == 32){ printf("%c%c",179,arr[i+1]); } else if(arr[i]!=32) printf("%c%c",179,arr[i]); } printf("%c\n",179); } // !!--Table Output // -- Winchck int winchck(char arr[9], char p1choic, char p2choic){ if(arr[0]==p1choic && arr[1]==p1choic && arr[2]==p1choic) return 1; else if(arr[3]==p1choic && arr[4]==p1choic && arr[5]==p1choic) return 1; else if(arr[6]==p1choic && arr[7]==p1choic && arr[8]==p1choic) return 1; else if(arr[0]==p1choic && arr[3]==p1choic && arr[6]==p1choic) return 1; else if(arr[1]==p1choic && arr[4]==p1choic && arr[7]==p1choic) return 1; else if(arr[2]==p1choic && arr[5]==p1choic && arr[8]==p1choic) return 1; else if(arr[0]==p1choic && arr[4]==p1choic && arr[8]==p1choic) return 1; else if(arr[2]==p1choic && arr[4]==p1choic && arr[6]==p1choic) return 1; else if(arr[0]==p2choic && arr[1]==p2choic && arr[2]==p2choic) return 2; else if(arr[3]==p2choic && arr[4]==p2choic && arr[5]==p2choic) return 2; else if(arr[6]==p2choic && arr[7]==p2choic && arr[8]==p2choic) return 2; else if(arr[0]==p2choic && arr[3]==p2choic && arr[6]==p2choic) return 2; else if(arr[1]==p2choic && arr[4]==p2choic && arr[7]==p2choic) return 2; else if(arr[2]==p2choic && arr[5]==p2choic && arr[8]==p2choic) return 2; else if(arr[0]==p2choic && arr[4]==p2choic && arr[8]==p2choic) return 2; else if(arr[2]==p2choic && arr[4]==p2choic && arr[6]==p2choic) return 2; return 0; } // !!-- Win Check // --Charachter Selection-- void charsel(char *p1choic, char *p2choic){ int i=0; while(1){ printf("Enter your Choice\nx or o : "); fflush(stdin); scanf("%c",p1choic); switch(*p1choic){ case 'x': *p2choic='o'; break; case 'o': *p2choic='x'; break; default: printf("\nPlease choose x or o\n"); } if (*p1choic == 'x' || *p1choic == 'o') break; } printf("\nPlayer 1 choice: %c\nPlayer 2 choice: %c\n",*p1choic,*p2choic); } // !!--Charachter Selection--



LinkBack URL
About LinkBacks
therefore i m putting my querie in front of xperts.. i m a beginner.. please help.!!!


