初学VC之五子棋

初学VC之五子棋_第1张图片


       才开始真正学VC编程,兴趣很重要,所以先照猫画虎写了一个五子棋的程序,还可以玩的,只是没有智能AI的部分,下一步会好好学习的。

         在整个程序中,感觉最重要的要数输赢检测了,下面把算法公布出来:

BOOL CMyView::Desk_win(CPoint pt){
	pt.x=pt.x-1;
	pt.y=pt.y-1;
	int i=0,j=0;
	for(i=0;i<line-4;i++){	//行连续五个是否相等
		if(qizi[i][pt.y]==qizi[i+1][pt.y] && qizi[i+1][pt.y]==qizi[i+2][pt.y] && 
			qizi[i+2][pt.y]==qizi[i+3][pt.y] && qizi[i+3][pt.y]==qizi[i+4][pt.y] && qizi[i][pt.y]!=0){
			TRACE("行连续五个是否相等");
			return TRUE;
		}
	}
	for(i=0;i<line-4;i++){	//列连续五个是否相等
		if(qizi[pt.x][i]==qizi[pt.x][i+1] && qizi[pt.x][i+1]==qizi[pt.x][i+2] && 
			qizi[pt.x][i+2]==qizi[pt.x][i+3] && qizi[pt.x][i+3]==qizi[pt.x][i+4] && qizi[pt.x][i]!=0){
			TRACE("列连续五个是否相等");
			return TRUE;
		}
	}
//********************************
	for(j=4;j<16;j++){	//斜上方向,4-15
		for(i=0;i<j-3;i++){
			if(qizi[i][j-i]==qizi[i+1][j-i-1] && qizi[i][j-i]==qizi[i+2][j-i-2] && qizi[i][j-i]==qizi[i+3][j-i-3] 
				&& qizi[i][j-i]==qizi[i+4][j-i-4] && qizi[i][j-i]>0){
				TRACE("斜上方向,4-15");
				return TRUE;
			}
//			TRACE("("+Tool_Tostr(i)+","+Tool_Tostr(j-i)+")  ");
		}
//		TRACE("\n");
	}
	for(i=1;i<12;i++){	//斜上方向,下半棋盘14-4
		for(j=0;j<15-i-3;j++){
			if(qizi[i+j][15-j]==qizi[i+1+j][15-j-1] && qizi[i+j][15-j]==qizi[i+2+j][15-j-2] && qizi[i+j][15-j]==qizi[i+3+j][15-j-3] 
				&& qizi[i+j][15-j]==qizi[i+4+j][15-j-4] && qizi[i+j][15-j]>0){
				TRACE("斜上方向,下半棋盘14-4");
				return TRUE;
			}
	//		TRACE("("+Tool_Tostr(i+j)+","+Tool_Tostr(15-j)+")  ");
		}
//TRACE("\n");
	}
	for(j=0;j<12;j++){	//右斜下半旗盘
		for(i=0;i<15-j-3;i++){
			if(qizi[i][j+i]==qizi[i+1][j+1+i] && qizi[i][j+i]==qizi[i+2][j+2+i] && qizi[i][j+i]==qizi[i+3][j+3+i] 
				&& qizi[i][j+i]==qizi[i+4][j+4+i] && qizi[i][j+i]>0){
				TRACE("右斜下半旗盘");
				return TRUE;
			}
//		TRACE("("+Tool_Tostr(i)+","+Tool_Tostr(j+i)+")  ");
		}
//		TRACE("\n");
	}
	for(i=1;i<12;i++){	//右斜下,上半棋盘
		for(j=0;j<15-i-3;j++){
			if(qizi[i+j][j]==qizi[i+1+j][j+1] && qizi[i+j][j]==qizi[i+2+j][j+2] && qizi[i+j][j]==qizi[i+3+j][j+3] 
				&& qizi[i+j][j]==qizi[i+4+j][j+4] && qizi[i+j][j]>0){
				TRACE("右斜下,上半棋盘");
				return TRUE;
			}
//			TRACE("("+Tool_Tostr(i+j)+","+Tool_Tostr(j)+")  ");
		}
//		TRACE("\n");
	}

	return FALSE;

}

下面是源程序的下载地址:点我下载




你可能感兴趣的:(初学VC之五子棋)