程序可以运行 ,可以下棋 但是 到了判定胜利的时候一直没法判定,
我原来想的是,落子的地方与 上下,左右,左上右下 ,左下右上 依次递归比较 如果相同,计数器 count就+1
到最后如果count的值》=5 那么就赢了,但是我运行试着检测count的值 但是一直没有改变 我找不到哪里错了,希望哪位大大能帮忙看看,谢谢。
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define A "┏"
#define B "┣"
#define C "┗"
#define D "┳"
#define E "╋"
#define F "┻"
#define G "┓"
#define H "┫"
#define M "┛"
#define N "○"
#define I "●"
int count=1;
int i=0;
char arr[20][20][4];
int winner(int a,int b);
void out(char (*p)[20][4])
{
int i=0,j=0;
for (i=5;i<15;i++)
{
for (j=6;j<15;j++)
{
printf("%s",*(*(p+i)+j));
}
printf("\n");
}
}
int winner(int a,int b)
{
count=1;
while(arr[a][b]==I||arr[a][b]==N)
{
if(arr[a][b]==arr[a][b+1]||arr[a][b]==arr[a][b-1])//行
{
while(arr[a][b]==arr[a][b+1])
{
count++;
if(arr[a][b]==arr[a][b+2])
{
count++;
if(arr[a][b]==arr[a][b+2])
{
count++;
if(arr[a][b]==arr[a][b+3])
{
count++;
if(arr[a][b]==arr[a][b+4])
我原来想的是,落子的地方与 上下,左右,左上右下 ,左下右上 依次递归比较 如果相同,计数器 count就+1
到最后如果count的值》=5 那么就赢了,但是我运行试着检测count的值 但是一直没有改变 我找不到哪里错了,希望哪位大大能帮忙看看,谢谢。
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define A "┏"
#define B "┣"
#define C "┗"
#define D "┳"
#define E "╋"
#define F "┻"
#define G "┓"
#define H "┫"
#define M "┛"
#define N "○"
#define I "●"
int count=1;
int i=0;
char arr[20][20][4];
int winner(int a,int b);
void out(char (*p)[20][4])
{
int i=0,j=0;
for (i=5;i<15;i++)
{
for (j=6;j<15;j++)
{
printf("%s",*(*(p+i)+j));
}
printf("\n");
}
}
int winner(int a,int b)
{
count=1;
while(arr[a][b]==I||arr[a][b]==N)
{
if(arr[a][b]==arr[a][b+1]||arr[a][b]==arr[a][b-1])//行
{
while(arr[a][b]==arr[a][b+1])
{
count++;
if(arr[a][b]==arr[a][b+2])
{
count++;
if(arr[a][b]==arr[a][b+2])
{
count++;
if(arr[a][b]==arr[a][b+3])
{
count++;
if(arr[a][b]==arr[a][b+4])