初学VC之五子棋

来源:互联网 发布:mac安装的软件在哪 编辑:程序博客网 时间:2024/05/19 13:55


       才开始真正学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-15for(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-4for(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;}

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




原创粉丝点击