Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- char wynik[9]; /* Tabela dostępna globalnie, by funkcje wincond, ruch oraz printer mogły jej używać*/
- char p1[20]; /*Nazwa pierwszego gracza */
- char p2[20];/*Nazwa drugiego gracza */
- typedef enum bool {false=0, true=1} bool;
- void printer(void);
- int ruch(char, bool);
- int wincond(void);
- int main()
- {
- int i=0;
- int random; /* Zmienna bez określonej wartości przyjmuje losowe wartości*/
- bool ruc=false; /*Definiuje, kto aktualnie wykonuje ruch*/
- int input=0;
- for(i=0;i<=8;i++)
- wynik[i]='#';
- printf("Cześć! Podaj imię pierwszego gracza:\n");
- scanf(" %100s",p1);
- printf("Cześć %s! Jak ma na imię Twój przeciwnik?\n", p1);
- scanf(" %100s",p2);
- printf("Oto plansza! Zapoznajcie się z nią.\n\n");
- printer();
- if(random%2==0){
- printf("Zaczyna %s! ", p2);
- }
- else{
- printf("Zaczyna %s! ", p1);
- ruc=true;
- }
- for(i=0;i<9;i++)
- {
- if(ruc==true){
- printf(" %s, które pole chcesz zapełnić?\n", p1);
- scanf("%d", &input);
- ruch(input,ruc);
- printf("%d", ruch(input,ruc));
- while(ruch(input, ruc)==0){
- printf("Wprowadzono złą liczbę!\n");
- scanf("%d", &input);
- ruch(input, ruc);}
- printer();
- wincond();
- }
- else if(ruc==false){
- printf(" %s, które pole chcesz zapełnić?\n", p2);
- scanf("%d", &input);
- ruch(input, ruc);
- printf("%d", ruch(input,ruc));
- while(ruch(input,ruc)==0){
- printf("Wprowadzono złą liczbę!\n");
- scanf("%d", &input);
- ruch(input, ruc);}
- printer();
- wincond();
- }
- ruc = !ruc;
- if(wincond()==1 || wincond()==2){
- if(wincond()==1)
- printf("Wygrywa %s!", p1);
- if(wincond()==2){
- printf("Wygrywa %s!", p2);}
- break;
- }
- }
- return 0;
- }
- int ruch(char pole, bool gracz){
- int i=0;
- for(i=0;i<9;i++){
- if(gracz==true){
- if(pole==i+1){
- if(wynik[i]=='#'){
- wynik[i]='X';
- return 3;}
- else if(wynik[i]!='#')
- return 0;
- }}
- else if(gracz==false){
- if(pole==i+1){
- if(wynik[i]=='#'){
- wynik[i]='O';
- return 3;}
- else if(wynik[i]!='#')
- return 0;
- }}}}
- void printer(void)
- {
- printf("%c %c %c\n%c %c %c\n%c %c %c \n \n", wynik[0], wynik[1], wynik[2],wynik[3], wynik[4], wynik[5], wynik[6], wynik[7], wynik[8]);
- }
- int wincond(){
- if((wynik[0]=='X' && wynik[1]=='X' && wynik[2]=='X') || (wynik[0]=='X' && wynik[3]=='X' && wynik[6]=='X') || (wynik[0]=='X' && wynik[4]=='X' && wynik[8]=='X')
- || (wynik[1]=='X' && wynik[4]=='X' && wynik[7]=='X' ) || (wynik[2]=='X' && wynik[5]=='X' && wynik[8]=='X')
- || (wynik[3]=='X' && wynik[4]=='X' && wynik[5]=='X') || (wynik[6]=='X' && wynik[7]=='X' && wynik[8]=='X') || (wynik[2]=='X' && wynik[4] == 'X' && wynik[6] == 'X')){
- return 1;}
- else if((wynik[0]=='O' && wynik[1]=='O' && wynik[2]=='O') || (wynik[0]=='O' && wynik[3]=='O' && wynik[6]=='O') || (wynik[0]=='O' && wynik[4]=='O' && wynik[8]=='O')
- || (wynik[1]=='O' && wynik[4]=='O' && wynik[7]=='O' ) || (wynik[2]=='O' && wynik[5]=='O' && wynik[8]=='O')
- || (wynik[3]=='O' && wynik[4]=='O' && wynik[5]=='O') || (wynik[6]=='O' && wynik[7]=='O' && wynik[8]=='O') || (wynik[2]=='O' && wynik[4] == 'O' && wynik[6] == 'O')){
- return 2;
- }
- else
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement