⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pointstrs.cpp

📁 这个程序是一个六子棋对弈引擎
💻 CPP
字号:
#include "stdafx.h"

#include "PointStrs.h"
#include "chList.h"
#include "Define.h"

PointStrs::PointStrs()
{
	int i=0;
	chesstype=NOSTONE;
	for(i = 0; i < 1000; i++)
		numberofline[i] = 0;
}

void PointStrs::SetType(int type)
{
	chesstype=type;
}
int PointStrs::KnowType()
{
	return chesstype;
}

void PointStrs::UpDate(chList list,STONEMOVE p)
{
	int linenumber[25];
	int chessstatus[25][7];
	int i=0,j=0,tempcount=0,sign=0;

	list.StrOfPoint((p.StonePos[0].x),(p.StonePos[0].y),&(linenumber[1]));
	for (i=1; i<=24; i++)
	{
		if(linenumber[i]==-1)
			continue;
		tempcount=0;
		sign=0;
		/*list.GetCoor(linenumber[i],&(chesscoor[i][1]));*/
		list.GetStr(linenumber[i],&(chessstatus[i][1]));

		for (j=1; j<=6; j++)
		{
			if ( chessstatus[i][j] == !(KnowType()) )
			{
				numberofline[linenumber[i]]=0;
				sign=1;

				break;
			}
		}
		if(sign==0)
		{
			for (j=1; j<=6; j++)
			{
				if ( chessstatus[i][j] == (KnowType()) )
				{
					tempcount++;
				}
			}
			numberofline[linenumber[i]]=tempcount;
		}
	}

	list.StrOfPoint((p.StonePos[1].x),(p.StonePos[1].y),&(linenumber[1]));
	for (i=1; i<=24; i++)
	{
		if(linenumber[i]==-1)
			continue;
		tempcount=0;
		sign=0;
		/*list.GetCoor(linenumber[i],&(chesscoor[i][1]));*/
		list.GetStr(linenumber[i],&(chessstatus[i][1]));

		for (j=1; j<=6; j++)
		{
			if ( chessstatus[i][j] == !(KnowType()) )
			{
				numberofline[linenumber[i]]=0;
				sign=1;

				break;
			}
		}
		if(sign==0)
		{
			for (j=1; j<=6; j++)
			{
				if ( chessstatus[i][j] == (KnowType()) )
				{
					tempcount++;
				}
			}
			numberofline[linenumber[i]]=tempcount;
		}
	}
}
void PointStrs::UpDate(chList list,STONEPOS s)
{
	int linenumber[25];
	int chessstatus[25][7];
	int i=0,j=0,tempcount=0;
	int sign=0;

	list.StrOfPoint((s.x),(s.y),&(linenumber[1]));

	for (i=1; i<=24; i++)
	{
		if(linenumber[i]==-1)
			continue;
		tempcount=0;
		sign=0;
		list.GetStr(linenumber[i],&(chessstatus[i][1]));

		for (j=1; j<=6; j++)
		{
			if ( chessstatus[i][j] == !(KnowType()) )
			{
				numberofline[linenumber[i]]=0;
				sign=1;

				break;
			}
		}
		if(sign==0)
		{
			for (j=1; j<=6; j++)
			{
				if ( chessstatus[i][j] == (KnowType()) )
				{
					tempcount++;
				}
			}
			numberofline[linenumber[i]]=tempcount;
		}
		
	}
}
void PointStrs::SearchFive(int out[],int &count)
{
	int i=0,j=0;

	count=0;

	for (i=0; i<924; i++)
	{
		if (numberofline[i]==5)
		{
			count++;
			out[j]=i;
			j++;
		}
	}
}
void PointStrs::SearchFour(int out[],int &count)
{
	int i=0,j=0;

	count=0;

	for (i=0; i<924; i++)
	{
		if (numberofline[i]==4)
		{
			count++;
			out[j]=i;
			j++;
		}
	}
}
void PointStrs::SearchThree(int out[],int &count)
{
	int i=0,j=0;

	count=0;

	for (i=0; i<924; i++)
	{
		if (numberofline[i]==3)
		{
			count++;
			out[j]=i;
			j++;
		}
	}
}
void PointStrs::SearchTwo(int out[],int &count)
{
	int i=0,j=0;

	count=0;

	for (i=0; i<924; i++)
	{
		if (numberofline[i]==2)
		{
			count++;
			out[j]=i;
			j++;
		}
	}
}
void PointStrs::SearchOne(int out[],int &count)
{
	int i=0,j=0;

	count=0;

	for (i=0; i<924; i++)
	{
		if (numberofline[i]==1)
		{
			count++;
			out[j]=i;
			j++;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -