C 零分和叉分

C 零分和叉分,c,C,我的胜利者检查程序不起作用。例如,对于xox,我获得了x作为赢家 #include <stdio.h> #include <stdlib.h> char plansza[3][3]; void wczytaj() { printf(" %c |%c | %c\n",plansza[0][0],plansza[0][1],plansza[0][2]); printf("-------\n"); printf(" %c |%c | %c\n",plansza[1][0],p

我的胜利者检查程序不起作用。例如,对于
xox
,我获得了
x
作为赢家

#include <stdio.h>
#include <stdlib.h>

char plansza[3][3];
void wczytaj()
{
printf(" %c |%c | %c\n",plansza[0][0],plansza[0][1],plansza[0][2]);
printf("-------\n");
printf(" %c |%c | %c\n",plansza[1][0],plansza[1][1],plansza[1][2]);
printf("-------\n");
printf(" %c |%c | %c\n",plansza[2][0],plansza[2][1],plansza[2][2]);
}
int sprawdzenie()
{
if((plansza[0][0]&&plansza[0][1]&&plansza[0][2] =='x' )|| 
(plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='x') ||
 (plansza[0][2]&&plansza[1][2]&&plansza[2][2]=='x') ||
 (plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='x') || 
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]=='x') ||
 (plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='x') ||
 (plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='x') ||
 (plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='x'))
{
    return 1;

}else if((plansza[0][0]&&plansza[0][1]&&plansza[0][2]=='o') ||
 (plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='o') || 
(plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='o') || 
(plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='o') || 
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]=='o') ||
 (plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='o') || 
 (plansza[0][2]&&plansza[1][2]&&plansza[2][2]=='o') ||
 (plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='o'))
{
    return 2;
}else
    return 0;



}
   void gracz_x()
{
unsigned int i=3;
unsigned int j=3;
wczytaj();
printf("Podaj wiersz i kolumnę: ");
scanf("%u %u",&i,&j);
if(plansza[i][j]!='o')
    plansza[i][j]='x';
else{
    printf("Podaj poprawne współrzędne: ");
    scanf("%u %u",&i,&j);
    plansza[i][j]='x';
}
}
   void gracz_o()
{
unsigned int i=3;
unsigned int j=3;
wczytaj();
printf("Podaj wiersz i kolumnę: ");
scanf("%u %u",&i,&j);
if(plansza[i][j]!='x')
    plansza[i][j]='o';
else{
    printf("Podaj poprawne współrzędne: ");
    scanf("%u %u",&i,&j);
    plansza[i][j]='o';
}

}
int main()

{

char wynik=0;
int kolejka = 0;
while(wynik==0)
{
    if(kolejka==0)
    {
        gracz_o();

    }else{
        gracz_x();
    }
    kolejka=kolejka+1;
    wynik=sprawdzenie();
    if(kolejka==9){
        printf("remis");
        break;
    }
}
wczytaj();
if(wynik==1)
{
    printf("wygryw x\n");
}else if(wynik==2)
    {
        printf("wygryw o\n");
    }

return 0;
}
#包括
#包括
char plansza[3][3];
void wczytaj()
{
printf(“%c |%c |%c\n”,plansza[0][0],plansza[0][1],plansza[0][2]);
printf(“----\n”);
printf(“%c |%c |%c\n”,plansza[1][0],plansza[1][1],plansza[1][2]);
printf(“----\n”);
printf(“%c |%c |%c\n”,plansza[2][0],plansza[2][1],plansza[2][2]);
}
int sprawdzenie()
{
如果((plansza[0][0]&&plansza[0][1]&&plansza[0][2]=='x')|
(plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='x')||
(plansza[0][2]&&plansza[1][2]&&plansza[2][2]=='x')||
(plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='x')||
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]=='x')||
(plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='x')||
(plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='x')||
(plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='x'))
{
返回1;
}else if((plansza[0][0]&&plansza[0][1]&&plansza[0][2]='o'))||
(plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='o')||
(plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='o')||
(plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='o')||
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]='o')||
(plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='o')||
(plansza[0][2]&&plansza[1][2]&&plansza[2][2]='o')||
(plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='o'))
{
返回2;
}否则
返回0;
}
void gracz_x()
{
无符号整数i=3;
无符号整数j=3;
wczytaj();
printf(“Podaj wiersz i kolumnę;”);
scanf(“%u%u”、&i和&j);
if(plansza[i][j]!='o')
plansza[i][j]='x';
否则{
printf(“Podaj poprawne wspórzędne:”);
scanf(“%u%u”、&i和&j);
plansza[i][j]='x';
}
}
void gracz_o()
{
无符号整数i=3;
无符号整数j=3;
wczytaj();
printf(“Podaj wiersz i kolumnę;”);
scanf(“%u%u”、&i和&j);
if(plansza[i][j]!='x')
plansza[i][j]='o';
否则{
printf(“Podaj poprawne wspórzędne:”);
scanf(“%u%u”、&i和&j);
plansza[i][j]='o';
}
}
int main()
{
char-wynik=0;
int kolejka=0;
while(wynik==0)
{
如果(kolejka==0)
{
gracz_o();
}否则{
gracz_x();
}
kolejka=kolejka+1;
wynik=sprawdzenie();
如果(kolejka==9){
printf(“remis”);
打破
}
}
wczytaj();
如果(wynik==1)
{
printf(“wygryw x\n”);
}否则如果(wynik==2)
{
printf(“wygryw o\n”);
}
返回0;
}
这个

检查
plansza[0][0]
是否有值(非
'\0'
的任何值),
plansza[0][1]
是否有值,以及
plansza[0][2]
是否等于
'x'
。它不检查前两个值是否与
'x'
比较

因此,您需要

if((plansza[0][0] == 'x' &&plansza[0][1] == 'x' &&plansza[0][2] =='x' )

还有一种非常简单的方法可以自己检查图形代码:运行它。测试一下。试试看。它打印正确吗?然后,它可能会正常工作。如果你能更好地格式化代码,这会非常有帮助:更多的空格和适当的缩进对每个人来说都会更好,甚至可以发现你遇到的问题。好吧,很抱歉。我是新来的,我忘了我的语言中有名称。它工作得很好。谢谢抽签怎么样?我怎么数一数移动?
if((plansza[0][0] == 'x' &&plansza[0][1] == 'x' &&plansza[0][2] =='x' )