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

📄 ai.cpp

📁 用Microsoft .net编的游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		for(y=0; y<FIVE_Y-5; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==FIVE_NULL &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==nSide &&
				m_nboard[x+5][y+5]==FIVE_NULL){
					m_nVals[x+2][y+2]+=m_nValuesSetting[7];
					m_nVals[x  ][y  ]+=m_nValuesSetting[8];
					m_nVals[x+5][y+5]+=m_nValuesSetting[8];
			}
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==FIVE_NULL &&
				m_nboard[x+4][y+4]==nSide &&
				m_nboard[x+5][y+5]==FIVE_NULL){
					m_nVals[x+3][y+3]+=m_nValuesSetting[7];
					m_nVals[x  ][y  ]+=m_nValuesSetting[8];
					m_nVals[x+5][y+5]+=m_nValuesSetting[8];
			}
		}
}

void AI::Think06(char nSide)
{//@*@**500 value9
	int x,y;

	//_*_**500 |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==FIVE_NULL &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==nSide ){
					m_nVals[x][y  ]+=m_nValuesSetting[9];
					m_nVals[x][y+2]+=m_nValuesSetting[9];
			}
			if( m_nboard[x][y  ]==nSide &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==FIVE_NULL &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==FIVE_NULL){
					m_nVals[x][y+2]+=m_nValuesSetting[9];
					m_nVals[x][y+4]+=m_nValuesSetting[9];
			}
		}
	//_*_**500 --
	for(y=0; y<FIVE_Y; y++)
		for(x=0; x<FIVE_X-4; x++){
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==FIVE_NULL &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==nSide ){
					m_nVals[x  ][y]+=m_nValuesSetting[9];
					m_nVals[x+2][y]+=m_nValuesSetting[9];
			}
			if( m_nboard[x  ][y]==nSide &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==FIVE_NULL &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==FIVE_NULL ){
					m_nVals[x+2][y]+=m_nValuesSetting[9];
					m_nVals[x+4][y]+=m_nValuesSetting[9];
			}
		}
	//_*_**500 /
	for(x=0; x<FIVE_X-4; x++)
		for(y=4; y<FIVE_Y; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==FIVE_NULL &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==nSide ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[9];
					m_nVals[x+2][y-2]+=m_nValuesSetting[9];
			}
			if(	m_nboard[x  ][y  ]==nSide &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==FIVE_NULL &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==FIVE_NULL ){
					m_nVals[x+2][y-2]+=m_nValuesSetting[9];
					m_nVals[x+4][y-4]+=m_nValuesSetting[9];
			}
	}
	//_*_**500  \  
	for(x=0; x<FIVE_X-4; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==FIVE_NULL &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==nSide ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[9];
					m_nVals[x+2][y+2]+=m_nValuesSetting[9];
			}
			if(	m_nboard[x  ][y  ]==nSide &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==FIVE_NULL &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==FIVE_NULL ){
					m_nVals[x+2][y+2]+=m_nValuesSetting[9];
					m_nVals[x+4][y+4]+=m_nValuesSetting[9];
			}
		}

}

void AI::Think07(char nSide)
{//@**@*1500 value10
	int x,y;

	//_**_*1500 |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==FIVE_NULL &&
				m_nboard[x][y+4]==nSide ){
					m_nVals[x][y  ]+=m_nValuesSetting[10];
					m_nVals[x][y+3]+=m_nValuesSetting[10];
			}
			if( m_nboard[x][y  ]==nSide &&
				m_nboard[x][y+1]==FIVE_NULL &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==FIVE_NULL ){
					m_nVals[x][y+1]+=m_nValuesSetting[10];
					m_nVals[x][y+4]+=m_nValuesSetting[10];
			}
		}
	//_**_*1500 --
	for(y=0; y<FIVE_Y; y++)
		for(x=0; x<FIVE_X-4; x++){
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==FIVE_NULL &&
				m_nboard[x+4][y]==nSide ){
					m_nVals[x  ][y]+=m_nValuesSetting[10];
					m_nVals[x+3][y]+=m_nValuesSetting[10];
			}
			if( m_nboard[x  ][y]==nSide &&
				m_nboard[x+1][y]==FIVE_NULL &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==FIVE_NULL ){
					m_nVals[x+1][y]+=m_nValuesSetting[10];
					m_nVals[x+4][y]+=m_nValuesSetting[10];
			}
		}
	//_**_*1500 /
	for(x=0; x<FIVE_X-4; x++)
		for(y=4; y<FIVE_Y; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==FIVE_NULL &&
				m_nboard[x+4][y-4]==nSide ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[10];
					m_nVals[x+3][y-3]+=m_nValuesSetting[10];
			}
			if(	m_nboard[x  ][y  ]==nSide &&
				m_nboard[x+1][y-1]==FIVE_NULL &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==FIVE_NULL ){
					m_nVals[x+1][y-1]+=m_nValuesSetting[10];
					m_nVals[x+4][y-4]+=m_nValuesSetting[10];
			}
	}
	//_**_*1500  \  
	for(x=0; x<FIVE_X-4; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==FIVE_NULL &&
				m_nboard[x+4][y+4]==nSide ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[10];
					m_nVals[x+3][y+3]+=m_nValuesSetting[10];
			}
			if(	m_nboard[x  ][y  ]==nSide &&
				m_nboard[x+1][y+1]==FIVE_NULL &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==FIVE_NULL ){
					m_nVals[x+1][y+1]+=m_nValuesSetting[10];
					m_nVals[x+4][y+4]+=m_nValuesSetting[10];
			}
		}
}

void AI::Think08(char nSide)
{//_**@_ 500 value11
	//@**_@100 value12
	int x,y;

	//_**__500 100 |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==FIVE_NULL &&
				m_nboard[x][y+4]==FIVE_NULL ){
					m_nVals[x][y  ]+=m_nValuesSetting[12];
					m_nVals[x][y+3]+=m_nValuesSetting[11];
					m_nVals[x][y+4]+=m_nValuesSetting[12];
			}
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==FIVE_NULL &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==FIVE_NULL ){
					m_nVals[x][y  ]+=m_nValuesSetting[12];
					m_nVals[x][y+1]+=m_nValuesSetting[11];
					m_nVals[x][y+4]+=m_nValuesSetting[12];
			}
		}
	//_**__500 100 --
	for(y=0; y<FIVE_Y; y++)
		for(x=0; x<FIVE_X-4; x++){
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==FIVE_NULL &&
				m_nboard[x+4][y]==FIVE_NULL ){
					m_nVals[x  ][y]+=m_nValuesSetting[12];
					m_nVals[x+3][y]+=m_nValuesSetting[11];
					m_nVals[x+4][y]+=m_nValuesSetting[12];
			}
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==FIVE_NULL &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==FIVE_NULL ){
					m_nVals[x  ][y]+=m_nValuesSetting[12];
					m_nVals[x+1][y]+=m_nValuesSetting[11];
					m_nVals[x+4][y]+=m_nValuesSetting[12];
			}
		}
	//_**__500 100 /
	for(x=0; x<FIVE_X-4; x++)
		for(y=4; y<FIVE_Y; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==FIVE_NULL &&
				m_nboard[x+4][y-4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[12];
					m_nVals[x+3][y-3]+=m_nValuesSetting[11];
					m_nVals[x+4][y-4]+=m_nValuesSetting[12];
			}
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==FIVE_NULL &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[12];
					m_nVals[x+1][y-1]+=m_nValuesSetting[11];
					m_nVals[x+4][y-4]+=m_nValuesSetting[12];
			}
	}
	//_**__500 100  \  
	for(x=0; x<FIVE_X-4; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==FIVE_NULL &&
				m_nboard[x+4][y+4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[12];
					m_nVals[x+3][y+3]+=m_nValuesSetting[11];
					m_nVals[x+4][y+4]+=m_nValuesSetting[12];
			}
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==FIVE_NULL &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[12];
					m_nVals[x+1][y+1]+=m_nValuesSetting[11];
					m_nVals[x+4][y+4]+=m_nValuesSetting[12];
			}
		}
}

void AI::Think09(char nSide)
{//__@**_5000 value13
	int x,y;

	//_@***_5000 |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-5; y++){
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==FIVE_NULL &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==nSide &&
				m_nboard[x][y+5]==FIVE_NULL)
					m_nVals[x][y+1]+=m_nValuesSetting[13];
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==nSide &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==FIVE_NULL &&
				m_nboard[x][y+5]==FIVE_NULL)
					m_nVals[x][y+4]+=m_nValuesSetting[13];
		}
	//__***_ 5000 --
	for(y=0; y<FIVE_Y; y++)
		for(x=0; x<FIVE_X-5; x++){
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==FIVE_NULL &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==nSide &&
				m_nboard[x+5][y]==FIVE_NULL )
					m_nVals[x+1][y]+=m_nValuesSetting[13];
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==nSide &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==FIVE_NULL &&
				m_nboard[x+5][y]==FIVE_NULL)
					m_nVals[x+4][y]+=m_nValuesSetting[13];
		}
	//__***_ 5000 /
	for(x=0; x<FIVE_X-5; x++)
		for(y=5; y<FIVE_Y; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==FIVE_NULL &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==nSide &&
				m_nboard[x+5][y-5]==FIVE_NULL)
					m_nVals[x+1][y-1]+=m_nValuesSetting[13];
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==nSide &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==FIVE_NULL &&
				m_nboard[x+5][y-5]==FIVE_NULL)
					m_nVals[x+4][y-4]+=m_nValuesSetting[13];
	}
	//__***_ 5000  \  
	for(x=0; x<FIVE_X-5; x++)
		for(y=0; y<FIVE_Y-5; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==FIVE_NULL &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==nSide &&
				m_nboard[x+5][y+5]==FIVE_NULL)
					m_nVals[x+1][y+1]+=m_nValuesSetting[13];
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==nSide &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==FIVE_NULL &&
				m_nboard[x+5][y+5]==FIVE_NULL)
					m_nVals[x+4][y+4]+=m_nValuesSetting[13];
		}
}

void AI::Think10(char nSide)
{//_*@*_ 500 value14
// @*_*@ 100 value15
	int x,y;

	//_*@*_ 500 |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if( m_nboard[x][y  ]==FIVE_NULL &&
				m_nboard[x][y+1]==nSide &&
				m_nboard[x][y+2]==FIVE_NULL &&
				m_nboard[x][y+3]==nSide &&
				m_nboard[x][y+4]==FIVE_NULL){
					m_nVals[x][y  ]+=m_nValuesSetting[15];
					m_nVals[x][y+2]+=m_nValuesSetting[14];
					m_nVals[x][y+4]+=m_nValuesSetting[15];
			}
		}
	//_*_*_ 500 --
	for(y=0; y<FIVE_Y; y++)
		for(x=0; x<FIVE_X-4; x++){
			if( m_nboard[x  ][y]==FIVE_NULL &&
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==FIVE_NULL &&
				m_nboard[x+3][y]==nSide &&
				m_nboard[x+4][y]==FIVE_NULL ){
					m_nVals[x  ][y]+=m_nValuesSetting[15];
					m_nVals[x+2][y]+=m_nValuesSetting[14];
					m_nVals[x+4][y]+=m_nValuesSetting[15];
			}
		}
	//_*_*_ 500 /
	for(x=0; x<FIVE_X-4; x++)
		for(y=4; y<FIVE_Y; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==FIVE_NULL &&
				m_nboard[x+3][y-3]==nSide &&
				m_nboard[x+4][y-4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[15];
					m_nVals[x+2][y-2]+=m_nValuesSetting[14];
					m_nVals[x+4][y-4]+=m_nValuesSetting[15];
			}
	}
	//_*_*_ 500   \  
	for(x=0; x<FIVE_X-4; x++)
		for(y=0; y<FIVE_Y-4; y++){
			if(	m_nboard[x  ][y  ]==FIVE_NULL &&
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==FIVE_NULL &&
				m_nboard[x+3][y+3]==nSide &&
				m_nboard[x+4][y+4]==FIVE_NULL ){
					m_nVals[x  ][y  ]+=m_nValuesSetting[15];
					m_nVals[x+2][y+2]+=m_nValuesSetting[14];
					m_nVals[x+4][y+4]+=m_nValuesSetting[15];
			}
		}
}

void AI::Think11(char nSide)
{//@*@30 value16
	int x,y;

	//  _*_ 30  |
	for(x=0; x<FIVE_X; x++)
		for(y=0; y<FIVE_Y-2; y++){
			if( m_nboard[x][y  ]==FIVE_NULL && 
				m_nboard[x][y+1]==nSide && 
				m_nboard[x][y+2]==FIVE_NULL ){
					m_nVals[x][y  ]+=m_nValuesSetting[16];
					m_nVals[x][y+4]+=m_nValuesSetting[16];
			}
		}
	//  _*_ 30  --
	for(x=0; x<FIVE_X-2; x++)
		for(y=0; y<FIVE_Y; y++){
			if( m_nboard[x  ][y]==FIVE_NULL && 
				m_nboard[x+1][y]==nSide &&
				m_nboard[x+2][y]==FIVE_NULL){
					m_nVals[x  ][y]+=m_nValuesSetting[16];
					m_nVals[x+2][y]+=m_nValuesSetting[16];
			}
		}
	//_*_ 30  /
	for(x=0; x<FIVE_X-2; x++)
		for(y=2; y<FIVE_Y; y++){
			if( m_nboard[x  ][y  ]==FIVE_NULL && 
				m_nboard[x+1][y-1]==nSide &&
				m_nboard[x+2][y-2]==FIVE_NULL){
					m_nVals[x  ][y  ]+=m_nValuesSetting[16];
					m_nVals[x+2][y-2]+=m_nValuesSetting[16];
			}
		}
	// \
	//_*_ 30 
	for(x=0; x<FIVE_X-2; x++)
		for(y=0; y<FIVE_Y-2; y++){
			if( m_nboard[x  ][y  ]==FIVE_NULL && 
				m_nboard[x+1][y+1]==nSide &&
				m_nboard[x+2][y+2]==FIVE_NULL){
					m_nVals[x  ][y  ]+=m_nValuesSetting[16];
					m_nVals[x+2][y+2]+=m_nValuesSetting[16];
			}
		}
}




void AI::Think00(char nSide)
{// @* 6 value17
	int x,y;
	//  _*  6
	for(x=1; x<FIVE_X-1; x++)
		for(y=1; y<FIVE_Y-1; y++){
			if(m_nboard[x][y+1]==nSide )
				m_nVals[x][y]+=m_nValuesSetting[17];
			if(m_nboard[x][y-1]==nSide ) 
				m_nVals[x][y]+=m_nValuesSetting[17];
			if(m_nboard[x+1][y]==nSide )
				m_nVals[x][y]+=m_nValuesSetting[17];
			if(m_nboard[x-1][y]==nSide )
				m_nVals[x][y]+=m_nValuesSetting[17];
		}
}

void AI::SetValueSettings(int values[], int n)
{
	for(int i=0; i<n; i++)
		m_nValuesSetting[i]=values[i];
}

⌨️ 快捷键说明

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