91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4.03MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-28
  • 語言: C/C++
  • 標簽:

資源簡介

基于MFC的五子棋程序,里面有人人和人機對弈模式,AI水平還不錯,可以下載參考啦,里面是一個完整的工程,代碼后面有足夠詳細的注釋

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“FiveChess.h“

CFiveChess::CFiveChess()
{
m_nCount=0;
}
void?CFiveChess::InitArr()
{
for(int?i=0;i {
for(int?j=0;j {
m_cArr[i][j]=SPACE;?//初始化為空格
}
}
m_nCount=0;
}
void?CFiveChess::SetArr(int?rowint?colchar?cChess)
{
m_cArr[row][col]=cChess;
}
char?CFiveChess::GetArr(int?rowint?col)
{
return?m_cArr[row][col];
}
void?CFiveChess::SetCurrentPoint(int?rowint?col)
{
m_nCurrentX=row;
m_nCurrentY=col;
}
/*
返回:
棋子符號(CHESS_BLACK)‘B‘?表示黑方勝,
棋子符號(CHESS_WHITE)‘W‘?表示白方勝,
等于(PEACE)‘=‘?表示和棋
空格(SPACE)‘?‘?表示尚未分出勝負。
*/

//勝負判斷實際上是據當前最后一個落子的情況來判斷勝負的這也是為什么添加m_nCurrentXm_nCurrentY的原因
//實際上需要從四個位置判斷,以該子為出發點的水平,豎直和兩條分別為?45度角和135度角的線,
//目的是看在這四個方向是否最后落子的一方構成連續五個的棋子,如果是的話,就表示該盤棋局已經分出勝負。
//所以沒必要進行全盤搜索

char?CFiveChess::JudegeWin(char?cChessFlag)?
{
int?nRownCol;
int?num1num2;
//判斷橫向
num1=0;num2=0;
for(nCol=m_nCurrentY-1;nCol>=0?&&?nCol>=m_nCurrentY-4;nCol--)?//左邊
if(m_cArr[m_nCurrentX][nCol]==cChessFlag)
num1++;
else
break;
for(nCol=m_nCurrentY+1;nCol if(m_cArr[m_nCurrentX][nCol]==cChessFlag)
num2++;
else?
break;
if(num1+num2>=4)//左右兩邊相加大于等于4就說明滿5了下同
return?cChessFlag;
//判斷縱向
num1=0;num2=0;
for(nRow=m_nCurrentX-1;nRow>=0?&&?nRow>=m_nCurrentX-4;nRow--)//上
if(m_cArr[nRow][m_nCurrentY]==cChessFlag)
num1++;
else
break;
for(nRow=m_nCurrentX+1;nRow if(m_cArr[nRow][m_nCurrentY]==cChessFlag)
num2++;
else
break;
if(num1+num2>=4)
return?cChessFlag;
//判斷‘\‘方向
num1=0;num2=0;
for(nRow=m_nCurrentX-1nCol=m_nCurrentY-1;nRow>=0?&&?nRow>=m_nCurrentX-4?&&?nCol>=0?&&?nCol>=m_nCurrentY-4;nRow--nCol--)//左上
if(m_cArr[nRow][nCol]==cChessFlag)
num1++;
else
break;
for(nRow=m_nCurrentX+1nCol=m_nCurrentY+1;nRow if(m_cArr[nRow][nCol]==cChessFlag)
num2++;
else
break;
if(num1+num2>=4)
return?cChessFlag;
//判斷‘/‘方向
num1=0;num2=0;
for(nRow=m_nCurrentX-1nCol=m_nCurrentY+1;nRow>=0?&&?nRow>=m_nCurrentX-4?&&?nCol if(m_cArr[nRow][nCol]==cChessFlag)
num1++;
else
break;
for(nRow=m_nCurrentX+1nCol=m_nCurrentY-1;nRow=0?&&?nCol>=m_nCurrentY-4;nRow++nCol--)//左下
if(m_cArr[nRow][nCol]==cChessFlag)
num2++;
else
break;
if(num1+num2>=4)
return?cChessFlag;

if(m_nCount return?SPACE;
return?CHESS_PEACE;?//在判斷了其他情況后還未返回就是和棋了
}

//以下是人機對戰函數
void?CFiveChess::ComputerPlay(char?cComputerchar?cPeople)
{
int?maxComputer=0maxPeople=0;//計算機和人的狀態矩陣的最大值
//(即maxComputer是計算機最有價值點的值,maxPeople是人最有價值點的值初始化為0
int?nRownCol;
int?cxcypxpy;
for(nRow=0;nRow for(nCol=0;nCol? computer[nRow][nCol]=people[nRow

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????614400??2012-02-03?19:20??五子棋.exe

?????文件??????28415??2012-02-03?19:23??五子棋\Debug\FiveChess.obj

?????文件??????13280??2012-02-03?19:23??五子棋\Debug\FiveChess.sbr

?????文件???????3806??2012-02-03?19:23??五子棋\Debug\FivePos.obj

?????文件????????562??2012-02-03?19:23??五子棋\Debug\FivePos.sbr

?????文件??????19392??2012-02-03?19:23??五子棋\Debug\MainFrm.obj

?????文件???????3622??2012-02-03?19:23??五子棋\Debug\MainFrm.sbr

?????文件????????760??2012-01-27?23:02??五子棋\Debug\MAP_PP.sbr

?????文件?????105882??2012-02-03?19:23??五子棋\Debug\StdAfx.obj

?????文件????1375299??2012-02-03?19:23??五子棋\Debug\StdAfx.sbr

?????文件?????230400??2012-02-03?19:23??五子棋\Debug\vc60.idb

?????文件?????397312??2012-02-03?19:23??五子棋\Debug\vc60.pdb

?????文件????3269632??2012-01-29?01:10??五子棋\Debug\五子棋.bsc

?????文件?????495701??2012-02-03?19:23??五子棋\Debug\五子棋.exe

?????文件?????358588??2012-02-03?19:23??五子棋\Debug\五子棋.ilk

?????文件??????23032??2012-02-03?19:23??五子棋\Debug\五子棋.obj

?????文件????6882088??2012-02-03?19:23??五子棋\Debug\五子棋.pch

?????文件?????377856??2012-02-03?19:23??五子棋\Debug\五子棋.pdb

?????文件?????278824??2012-02-03?19:23??五子棋\Debug\五子棋.res

?????文件???????8923??2012-02-03?19:23??五子棋\Debug\五子棋.sbr

?????文件??????14820??2012-02-03?19:23??五子棋\Debug\五子棋Doc.obj

?????文件???????7118??2012-02-03?19:23??五子棋\Debug\五子棋Doc.sbr

?????文件??????76212??2012-02-03?19:23??五子棋\Debug\五子棋View.obj

?????文件??????96355??2012-02-03?19:23??五子棋\Debug\五子棋View.sbr

?????文件??????25028??2012-02-01?15:16??五子棋\FiveChess.cpp

?????文件???????2261??2012-02-01?13:46??五子棋\FiveChess.h

?????文件????????213??2012-01-23?21:11??五子棋\FivePos.cpp

?????文件????????175??2012-01-23?21:14??五子棋\FivePos.h

?????文件???????2596??2012-01-26?16:31??五子棋\MainFrm.cpp

?????文件???????1581??2012-01-28?17:13??五子棋\MainFrm.h

............此處省略35個文件信息

評論

共有 條評論

相關資源