C Programlama da hatamı bulamıyorum yardım eder misiniz?

Katılım
2 Mayıs 2020
Mesajlar
29
Reaksiyon skoru
10
#include <stdio.h>
#include <conio.h>

char square[17] = { '0' ,'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16' };

int checkwin();
void drawBoard();

int main()
{
int player = 1, i, choice;

char mark;
do
{
drawBoard();
player = (player % 2) ? 1 : 2;

printf("Player %d, enter a number: ", player);
scanf("%d", &choice);

mark = (player == 1) ? 'X' : 'O';

if (choice == 1 && square[1] == '1')
square[1] = mark;

else if (choice == 2 && square[2] == '2')
square[2] = mark;

else if (choice == 3 && square[3] == '3')
square[3] = mark;

else if (choice == 4 && square[4] == '4')
square[4] = mark;

else if (choice == 5 && square[5] == '5')
square[5] = mark;

else if (choice == 6 && square[6] == '6')
square[6] = mark;

else if (choice == 7 && square[7] == '7')
square[7] = mark;

else if (choice == 8 && square[8] == '8')
square[8] = mark;

else if (choice == 9 && square[9] == '9')
square[9] = mark;

else if (choice == 10 && square[10] == '10')
square[10] = mark;

else if (choice == 11 && square[11] == '11')
square[11] = mark;

else if (choice == 12 && square[12] == '12')
square[12] = mark;

else if (choice == 13 && square[13] == '13')
square[13] = mark;

else if (choice == 14 && square[14] == '14')
square[14] = mark;

else if (choice == 15 && square[15] == '15')
square[15] = mark;

else if (choice == 16 && square[16] == '16')
square[16] = mark;

else
{
printf("Invalid move ");

player--;
getch();
}
i = checkwin();

player++;
}while (i == - 1);

drawBoard();

if (i == 1)
printf("==>\aPlayer %d win ", --player);
else
printf("==>\aGame draw");

getch();

return 0;
}

int checkwin()
{
if (square[1] == square[2] && square[2] == square[3] || square[2] == square[3] && square[3] == square[4] )
return 1;

else if (square[5] == square[6] && square[6] == square[7] || square[6] == square[7] && square[7] == square[8])
return 1;

else if (square[9] == square[10] && square[10] == square[11] || square[10] == square[11] && square[11] == square[12])
return 1;

else if (square[1] == square[5] && square[5] == square[9] || square[5] == square[9] && square[9] == square[13])
return 1;

else if (square[2] == square[6] && square[6] == square[10] || square[6] == square[10] && square[10] == square[14])
return 1;

else if (square[3] == square[7] && square[7] == square[11] || square[7] == square[11] && square[11] == square[15])
return 1;

else if (square[4] == square[8] && square[8] == square[12] || square[8] == square[12] && square[12] == square[16])
return 1;

else if (square[1] == square[6] && square[6] == square[11] || square[6] == square[11] && square[11] == square[16] )
return 1;

else if (square[2] == square[7] && square[7] == square[12])
return 1;

else if (square[5] == square[10] && square[10] == square[15])
return 1;

else if (square[4] == square[7] && square[7] == square[10] || square[7] == square[10] && square[10] == square[13])
return 1;

else if (square[3] == square[6] && square[6] == square[9])
return 1;

else if (square[8] == square[11] && square[11] == square[14])
return 1;

else if (square[1] != '1' && square[2] != '2' && square[3] != '3' &&
square[4] != '4' && square[5] != '5' && square[6] != '6' && square[7]
!= '7' && square[8] != '8' && square[9] != '9' && square[10] != '10'
&& square[11] != '11' && square[12] != '12' && square[13] != '13'
&& square[14] != '14' && square[15] != '15' && square[16] != '16')

return 0;
else
return - 1;
}

void drawBoard()
{
system("cls");
printf("\n\n\t X O X \n\n");

printf("Player 1 (X) - Player 2 (O)\n\n\n");


printf(" | | | | \n");
printf(" %c | %c | %c | %c |\n", square[1], square[2], square[3], square[4]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[5], square[6], square[7], square[8]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[9], square[10], square[11], square[12]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[13], square[14], square[15], square[16]);

printf(" | | | |\n\n");
}



Bu kodu çalıştırdığımda (10,11,12,13,14,15,16) sayıları ekrana gelmiyor ve bu sayıları tuşlayamıyorum bunun sebebi nedir bilen yardım edebilir mi?
 
#include <stdio.h>
#include <conio.h>

char square[17] = { '0' ,'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16' };

int checkwin();
void drawBoard();

int main()
{
int player = 1, i, choice;

char mark;
do
{
drawBoard();
player = (player % 2) ? 1 : 2;

printf("Player %d, enter a number: ", player);
scanf("%d", &choice);

mark = (player == 1) ? 'X' : 'O';

if (choice == 1 && square[1] == '1')
square[1] = mark;

else if (choice == 2 && square[2] == '2')
square[2] = mark;

else if (choice == 3 && square[3] == '3')
square[3] = mark;

else if (choice == 4 && square[4] == '4')
square[4] = mark;

else if (choice == 5 && square[5] == '5')
square[5] = mark;

else if (choice == 6 && square[6] == '6')
square[6] = mark;

else if (choice == 7 && square[7] == '7')
square[7] = mark;

else if (choice == 8 && square[8] == '8')
square[8] = mark;

else if (choice == 9 && square[9] == '9')
square[9] = mark;

else if (choice == 10 && square[10] == '10')
square[10] = mark;

else if (choice == 11 && square[11] == '11')
square[11] = mark;

else if (choice == 12 && square[12] == '12')
square[12] = mark;

else if (choice == 13 && square[13] == '13')
square[13] = mark;

else if (choice == 14 && square[14] == '14')
square[14] = mark;

else if (choice == 15 && square[15] == '15')
square[15] = mark;

else if (choice == 16 && square[16] == '16')
square[16] = mark;

else
{
printf("Invalid move ");

player--;
getch();
}
i = checkwin();

player++;
}while (i == - 1);

drawBoard();

if (i == 1)
printf("==>\aPlayer %d win ", --player);
else
printf("==>\aGame draw");

getch();

return 0;
}

int checkwin()
{
if (square[1] == square[2] && square[2] == square[3] || square[2] == square[3] && square[3] == square[4] )
return 1;

else if (square[5] == square[6] && square[6] == square[7] || square[6] == square[7] && square[7] == square[8])
return 1;

else if (square[9] == square[10] && square[10] == square[11] || square[10] == square[11] && square[11] == square[12])
return 1;

else if (square[1] == square[5] && square[5] == square[9] || square[5] == square[9] && square[9] == square[13])
return 1;

else if (square[2] == square[6] && square[6] == square[10] || square[6] == square[10] && square[10] == square[14])
return 1;

else if (square[3] == square[7] && square[7] == square[11] || square[7] == square[11] && square[11] == square[15])
return 1;

else if (square[4] == square[8] && square[8] == square[12] || square[8] == square[12] && square[12] == square[16])
return 1;

else if (square[1] == square[6] && square[6] == square[11] || square[6] == square[11] && square[11] == square[16] )
return 1;

else if (square[2] == square[7] && square[7] == square[12])
return 1;

else if (square[5] == square[10] && square[10] == square[15])
return 1;

else if (square[4] == square[7] && square[7] == square[10] || square[7] == square[10] && square[10] == square[13])
return 1;

else if (square[3] == square[6] && square[6] == square[9])
return 1;

else if (square[8] == square[11] && square[11] == square[14])
return 1;

else if (square[1] != '1' && square[2] != '2' && square[3] != '3' &&
square[4] != '4' && square[5] != '5' && square[6] != '6' && square[7]
!= '7' && square[8] != '8' && square[9] != '9' && square[10] != '10'
&& square[11] != '11' && square[12] != '12' && square[13] != '13'
&& square[14] != '14' && square[15] != '15' && square[16] != '16')

return 0;
else
return - 1;
}

void drawBoard()
{
system("cls");
printf("\n\n\t X O X \n\n");

printf("Player 1 (X) - Player 2 (O)\n\n\n");


printf(" | | | | \n");
printf(" %c | %c | %c | %c |\n", square[1], square[2], square[3], square[4]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[5], square[6], square[7], square[8]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[9], square[10], square[11], square[12]);

printf("_____|_____|_____|_____|\n");
printf(" | | | |\n");

printf(" %c | %c | %c | %c |\n", square[13], square[14], square[15], square[16]);

printf(" | | | |\n\n");
}



Bu kodu çalıştırdığımda (10,11,12,13,14,15,16) sayıları ekrana gelmiyor ve bu sayıları tuşlayamıyorum bunun sebebi nedir bilen yardım edebilir mi?
Hocam sadece merak ettiğimden baktım da allah kolaylık versin bu ne
 
Dostum kod çok kirli görünüyor, hata ile ilgili yorum yapamam C kodlamıyorum fakat döngü kullanmalısın. Bu şekilde kodu sen dahi düzgün bir biçimde okuyamıyorken senden başkası hiç okuyamaz. Kodlama da önemli olan kısım sadece kodun çalışması değil aynı zamanda temiz ve okunabilir olması da çok önemli. Yoksa saatliği 1 dolara kod yazan hintlilerden bir farkın kalmaz. (Yapıcı eleştiri yapmaya çalıştım yanlış anlama)
 
Dostum kod çok kirli görünüyor, hata ile ilgili yorum yapamam C kodlamıyorum fakat döngü kullanmalısın. Bu şekilde kodu sen dahi düzgün bir biçimde okuyamıyorken senden başkası hiç okuyamaz. Kodlama da önemli olan kısım sadece kodun çalışması değil aynı zamanda temiz ve okunabilir olması da çok önemli. Yoksa saatliği 1 dolara kod yazan hintlilerden bir farkın kalmaz. (Yapıcı eleştiri yapmaya çalıştım yanlış anlama)
tamamdır teşekkür ederim yorumun için
 
Hocam kodu spoiler içine veya txt içine koyup falan paylaşabilirmisiniz ya
 
Tanımlamalarını tek tırnak (' ') yerine çift tırnak (" ") içinde yaparak dener misin?
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,153,528
Mesajlar
10,396,026
Üyeler
183,441
Son üye
emrevyst
Geri
Top