Я пытаюсь сделать игру в крестики нолики на C с помощью 2d массива но что то происходит ошибка
#include<stdio.h> #include<conio.h> char a[3][3]={'0','1','2','3','4','5','6','7','8'}; int checkwin(); void board(); int main() { int ch,player=1,i; char make; do { board(); player= (player % 2) ? 1 : 2; printf(" player no. %d",player); scanf("%d",&ch); make= (player==1) ? 'X': 'O'; if(ch==1 && a[1][1]=='1') { a[1][1]=make; } else if(ch==2 && a[1][2]=='2') { a[1][2]=make; } else if(ch==3 && a[1][3]=='3') { a[1][3]=make; } else if(ch==4 && a[2][1]=='4') { a[2][1]=make; } else if(ch==5 && a[2][2]=='5') { a[2][2]=make; } else if(ch==6 && a[2][3]=='6') { a[2][3]=make; } else if(ch==7 && a[3][1]=='7') { a[3][1]=make; } else if(ch==8 && a[3][2]=='8') { a[3][2]=make; } else if(ch==9 && a[3][3]=='9') { a[3][3]=make; } else { printf("invalid choice"); player--; getch(); } i=checkwin(); player++; } while(i==-1); board(); if(i==1) printf("player %d win",--player); else printf("game over"); getch(); return 0; } int checkwin() { char a[3][3]; if(a[1][1]==a[1][2] && a[1][2]==a[1][3]) return 1; else if(a[2][1]==a[2][2] && a[2][2]==a[2][3]) return 1; else if(a[3][1]==a[3][2] && a[3][2]==a[3][3]) return 1; else if(a[1][1]==a[2][1] && a[2][1]==a[3][1]) return 1; else if(a[1][2]==a[2][2] && a[2][2]==a[3][2]) return 1; else if(a[1][3]==a[2][3] && a[2][3]==a[3][3]) return 1; else if(a[1][1]==a[2][2] && a[2][2]==a[3][3]) return 1; else if(a[1][3]==a[2][2] && a[2][2]==a[3][1]) return 1; else if(a[1][1]!=a[1][2] && a[1][2]!=a[1][3] && a[2][1]!=a[2][2] && a[2][2]!=a[2][3] && a[3][1]!=a[3][2] && a[3][2]!=a[3][3] && a[1][1]!=a[2][1] && a[2][1]!=a[3][1] && a[1][2]!=a[2][2] && a[2][2]!=a[3][2] && a[1][3]!=a[2][3] && a[2][3]!=a[3][3] && a[1][1]!=a[2][2] && a[2][2]!=a[3][3] && a[1][3]!=a[2][2] && a[2][2]!=a[3][1]) return 0; else return -1; } void board() { clrscr(); printf("TIC-TAC-TOE GAME\n\n\n"); printf("PLAYER 1 (X) ----- PLAYER 2 (O)\n\n\n"); printf(" | | \n"); printf(" %c | %c | %c \n",a[1][1],a[1][2],a[1][3]); printf("____|____|____\n"); printf(" | | \n"); printf(" %c | %c | %c \n",a[2][1],a[2][2],a[2][3]); printf("____|____|____\n"); printf(" | | \n"); printf(" %c | %c | %c \n",a[3][1],a[3][2],a[3][3]); printf(" | | \n"); }
Что я уже пробовал:
я делаю игру в крестики-нолики в 2-d массиве, но происходит ошибка . Сэр, пожалуйста, проверьте, что случилось не так .
Patrice T
"но ошибки случаются"
это не информативно.
опишите ошибку или то, что не так в программе.