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 تا مهره رو باید کنار هم تشخیص بده بازی دوز
#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 تا مهره رو باید کنار هم تشخیص بده بازی دوز