PDA

View Full Version : ایراد منطقی چک کردن بازی دوز



mymind
یک شنبه 28 دی 1393, 16:45 عصر
#include <stdio.h>#include "conio.h"
#include <iostream>
#include <windows.h>
// table draw
int status=0;
void board(int full[8][8]){
int k,m;
printf( " \n");
printf( "\t\t" "_________________________________");
printf( "\n\t\t" "| | | | | | | | |");

for ( k=0; k <8; k++)
{
printf( "\n" "\t\t" "|");


for (m=8; m > 0; m--)

printf( "___\b\b%d_|",full[k][8-m]) ;


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

}

printf( "\n\t\t" "| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |\n ");
}


//wining check
int check(int full[][8]){
int i,j;
//wining check horizentall
for(j=0;j<8;j++){
for(i=0;i<=4;i++){
if(full[i][j]==1&& full[i+1][j]==1&&full[i+2][j]==1 &&full[i+3][j]==1&&full[i][j]==1){
status=full[i][j];
goto loop1;}
else if(full[i][j]==2&& full[i+1][j]==2&&full[i+2][j]==2 &&full[i+3][j]==2&&full[i][j]==2)
status=2;
goto loop1;}
}

//wining check vertical
for(j=0;j<8;j++){
for(i=0;i<=4;i++){
if(full[i][j]==1 &&full[i][j+1]==1&&full[i][j+2]==1&&full[i][j+3]==1&&full[i][j]==1){
status=1;
goto loop1;}
if(full[i][j]==2 &&full[i][j+1]==2&&full[i][j+2]==2&&full[i][j+3]==2&&full[i][j]==2){
status=2;
goto loop1;}
}
}

//winning check right and down
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(full[i][j]==1&&full[i+1][j+1]==1&&full[i+2][j+2]==1&&full[i+3][j+3]==1&&full[i][j]==1){
status=1;
goto loop1;}

if(full[i][j]==2&&full[i+1][j+1]==2&&full[i+2][j+2]==2&&full[i+3][j+3]==2&&full[i][j]==2){
status=2;
goto loop1;}


}
}
//wining check right and up
for(i=4;i<8;i++){
for(j=0;j<4;j++){
if(full[i][j]==1&&full[i-1][j+1]==1&&full[i-2][j+2]==1&&full[i-3][j+3]==1&&full[i][j]==1&&full[i-3][j+3]==1){
status=1;
goto loop1;}

if(full[i][j]==2&&full[i-1][j+1]==2&&full[i-2][j+2]==2&&full[i-3][j+3]==2&&full[i][j]==2&&full[i-3][j+3]==2){
status=2;
goto loop1;}


}}
loop1:

return status;
}






int main()
{
int i,j=0,sel=0,o;
int full[8][8];
for(i=0;i<8;i++){
for(j=0;j<8;j++)
full[i][j]=0;
}
j=0;

for(o=0;o<64;o++){
scanf("%d",&sel);
// fill array
j=8;
for(;;)/>{
if(full[j][sel-1]==0){

full[j][sel-1]=(o%2+1);
break;}
else
j--;
}

check(full);
board(full);
if(status!=0)
printf("%d is winner",status);

}



















return 0;


}





دوستان چرا قسمت منطقیه چک کردنش کار نمیکنه ؟؟ اصلن وقت ندارم تا فردا باید تحویل بدم ... پیشاپیش تشکر 4 تا مهره رو باید کنار هم تشخیص بده بازی دوز