資源簡介
用fltk庫編寫的五子棋代碼,內含簡單的ai,有界面,實現了多種功能,無禁手
代碼片段和文件信息
#ifndef?AI_H
#define?AI_H
/*評分規則:
???????????*代表玩家方的棋子及棋盤邊線,+代表空位,o代表Ai的棋子
?????+?o?+??????????????1???分??單子
?+?o?o?+????????????10??分??雙連
?+?o?o?o?*??????????5??分??沖三
?+?o?o?o?+??????????50?分??活三
?+?o?o?o?o?*????????2000分??沖四
?+?o?o?o?o?+????????500分??活四
?o?o?o?o?o??????????5000分?五子連珠
?如果對玩家棋子進行評分,則o和*交換,分數取負即可。
*/
#include“board1.h“
#include“game_window.h“
extern?game_window?*win;//外部定義
void?board::black_ai()//黑棋的ai
{
if(?win->someone_win==1)//若已經分出勝負或者棋盤上已經有人下過子則不能落子
{???cout<<“wrong\n“;
return??;}
?int???a_qipan[N][N]={
{000000000000000}
{011111111111110}
{012222222222210}
{012333333333210}
{012344444443210}
{012345555543210}
{012345666543210}
{012345676543210}
{012345666543210}
{012345555543210}
{012344444443210}
{012333333333210}
{012222222222210}
{011111111111110}
{000000000000000}};//初始化
?for(int?i=0;i ?{
?for(int?j=0;j ?{//1的情況
????if(?win->qipan[i][j-1]==1?||?win->qipan[i][j+1]==1?||?
win->qipan[i-1][j]==1?||?win->qipan[i+1][j]==1?||?
win->qipan[i-1][j-1]==1?||?win->qipan[i+1][j+1]==0?||?
win->qipan[i-1][j+1]==1?||?win->qipan[i+1][j-1]==1?)?
????????????????????a_qipan[i][j]+=1;
????????????//2的情況
if(win->qipan[i-2][j]==1?&&?win->qipan[i-1][j]==1)?
??a_qipan[i][j]+=5;
????if(win->qipan[i+2][j]==1?&&?win->qipan[i+1][j]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i][j-2]==1?&&?win->qipan[i][j-1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i][j+2]==1?&&?win->qipan[i][j+1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i+2][j+2]==1?&&?win->qipan[i+1][j+1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i-2][j+2]==1?&&?win->qipan[i-1][j+1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i+2][j-2]==1?&&?win->qipan[i+1][j-1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i-2][j-2]==1?&&?win->qipan[i-1][j-1]==1)?
??a_qipan[i][j]+=5;
if(win->qipan[i+1][j-1]==1?&&?win->qipan[i-1][j+1]==1)?
??a_qipan[i][j]+=10;
if(win->qipan[i+1][j]==1?&&?win->qipan[i-1][j]==1)?
??a_qipan[i][j]+=10;
if(win->qipan[i][j-1]==1?&&?win->qipan[i][j+1]==1)?
??a_qipan[i][j]+=10;
if(win->qipan[i+1][j+1]==1?&&?win->qipan[i-1][j-1]==1)?
??a_qipan[i][j]+=10;
//3
if(win->qipan[i][j+3]==1?&&?win->qipan[i][j+2]==1?&&?win->qipan[i][j+1]==1??)?
??a_qipan[i][j]+=100;
if(win->qipan[i][j-3]==1?&&?win->qipan[i][j-2]==1?&&?win->qipan[i][j-1]==1??)?
??a_qipan[i][j]+=100;
if(win->qipan[i-3][j]==1?&&?win->qipan[i-2][j]==1?&&?win->qipan[i-1][j]==1??)?
??a_qipan[i][j]+=100;
if(win->qipan[i+3][j]==1?&&?win->qipan[i+2][j]==1?&&?win->qipan[i+1][j]==1??)?
??a_qipan[i][j]+=100;
if(win->qipan[i+3][j+3]==1?&&?win->qipan[i+2][j+2]==1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-07-14?15:57??五子棋代碼\
?????目錄???????????0??2012-07-14?15:57??五子棋代碼\Debug\
?????文件??????821248??2012-07-14?15:56??五子棋代碼\Debug\exercise7---1-1.exe
?????文件?????1754852??2012-07-14?15:56??五子棋代碼\Debug\exercise7---1-1.ilk
?????文件?????3107840??2012-07-14?15:56??五子棋代碼\Debug\exercise7---1-1.pdb
?????目錄???????????0??2012-07-14?15:57??五子棋代碼\exercise7---1-1\
?????目錄???????????0??2012-07-14?15:57??五子棋代碼\exercise7---1-1\Debug\
?????文件??????149684??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\CL.read.1.tlog
?????文件????????3894??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\CL.write.1.tlog
?????文件??????154609??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\ai.obj
?????文件??????148898??2012-07-14?15:20??五子棋代碼\exercise7---1-1\Debug\board1.obj
?????文件??????354814??2012-07-14?15:20??五子棋代碼\exercise7---1-1\Debug\button.obj
?????文件????????3658??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\cl.command.1.tlog
?????文件????????3247??2012-07-14?13:22??五子棋代碼\exercise7---1-1\Debug\exercise7---1-1.Build.CppClean.log
?????文件?????????381??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\exercise7---1-1.exe.intermediate.manifest
?????文件??????????95??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\exercise7---1-1.lastbuildstate
?????文件???????29706??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\exercise7---1-1.log
?????文件??????100914??2012-07-14?15:20??五子棋代碼\exercise7---1-1\Debug\game_window.obj
?????文件????????2522??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\li
?????文件????????5530??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\li
?????文件????????1742??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\li
?????文件???????70772??2012-07-14?15:20??五子棋代碼\exercise7---1-1\Debug\main.obj
?????文件?????????632??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\mt.command.1.tlog
?????文件?????????808??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\mt.read.1.tlog
?????文件?????????436??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\mt.write.1.tlog
?????文件?????1117184??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\vc100.idb
?????文件??????757760??2012-07-14?15:56??五子棋代碼\exercise7---1-1\Debug\vc100.pdb
?????文件??????137216??2012-07-10?23:20??五子棋代碼\exercise7---1-1\Fmod.dll
?????文件???????43611??2012-07-10?23:18??五子棋代碼\exercise7---1-1\Fmod.h
?????文件??????155352??2012-07-10?23:20??五子棋代碼\exercise7---1-1\Fmodvc.lib
?????文件???????19595??2012-07-14?15:56??五子棋代碼\exercise7---1-1\ai.cpp
............此處省略26個文件信息
評論
共有 條評論