資源簡介
C++實現雙人對戰五子棋項目,內含項目源碼,演示demo,開發具體流程文檔。
代碼片段和文件信息
#include
#include //圖形庫頭文件
#include //播放音樂頭文件
#include
#pragma?comment(lib?“winmm.lib“) //播放音樂庫文件
int?flag?=?0; //表示下棋次數
int?board[20][20]?=?{?0?}; //0表示棋盤沒有棋子狀態
void?initGame();
int?judge(int?a?int?b);
void?playChess();
int?main()?{
initGame();
playChess();
getchar();
return?0;
}
//1.畫出棋盤
void?initGame()?{ //初始化游戲
//1.1?繪圖環境?庫函數
//默認調用系統的窗口
initgraph(600?500); //創建自定義窗口
//setbkcolor(BLUE); //設置窗口背景顏色
//cleardevice(); //刷新
//1.2?貼圖
loadimage(NULL?“./src/bg.jpg“);
//1.3?背景音樂 mci?多媒體控制結口
mciSendString(“open?./src/skyCity.mp3“?0?0?0);
//mciSendString(“play?./src/skyCity.mp3“?0?0?0);
//setlinecolor(BLACK);
//1.4?繪制棋盤
//畫線?20?20?25?25?500?500
for?(int?i?=?0;?i?<=?500;?i?+=?25)?{
line(0?i?500?i);
line(i?0?i?500);
}
line(501?0?501?500);
//1.5?print?out
outtextxy(510?100?“玩家1:黑棋“);
outtextxy(510?200?“玩家2:白棋“);
}
//2.下棋
void?playChess()?{
//鼠標
MOUSEMSG?m; //保存鼠標消息
int?x=0?y=0; //坐標
int?a=0?b=0; //行列
//持續下棋
while?(1)?{
m?=?GetMouseMsg(); //獲取一個鼠標消息
//獲取離鼠標最近的點的坐標信息
for?(int?i?=?1;?i?20;?i++)?{
for?(int?j?=?1;?j?20;?j++)?{
if?(abs(m.x?-?i?*?25)?12?&&?abs(m.y?-?j?*?25)?12)?{
x?=?i?*?25;
y?=?j?*?25;
a?=?i;
b?=?j;
}
}
}
if?(m.uMsg?==?WM_LBUTTONDOWN)?{
//棋子重復下在一個位置上
if?(board[a][b]?!=?0)?{
MessageBox(NULL?“這里已經有棋子了,請重新選擇。“?“提示“?MB_OK); //彈出一個提示框
continue; //進入下一循環
}
//判斷黑白子
if?(flag?%?2?==?0)?{ // 偶數次?黑子
setfillcolor(BLACK);
solidcircle(x?y?10);
board[a][b]?=?1;
}
else?{ //奇數次
setfillcolor(WHITE);
solidcircle(x?y?10);
board[a][b]?=?2;
}
flag++;
}
if?(judge(a?b))?{
if?(flag?%?2?==?0)?{
MessageBox(NULL?“玩家2勝利。“?“游戲結束“?MB_OK); //彈出一個提示框
exit(0);
}
else?{
MessageBox(NULL?“玩家1勝利。“?“游戲結束“?MB_OK); //彈出一個提示框
exit(0);
}
}
}
}
//3.判斷輸贏
int?judge(int?a?int?b)?{
int?i?j;
int?t?=?2?-?flag?%?2; //1?判斷黑子是否贏 2?判斷白子是否贏
//橫向
for?(i?=?a?-?4?j?=?b;?i?<=?a;?i++)?{
if?(i?>?0?&&?i?16?&&?t?==?board[i][j]?&&?t?==?board[i?+?1][j]?&&?t?==?board[i?+?2][j]?&&?t?==?board[i?+?3][j]?&&?t?==?board[i?+?4][j])?{
return?1;
}
}
//縱向
for?(i?=?a?j?=?b?-?4;?j?<=?b;?j++)?{
if?(j?>?0?&&?j?16?&&?t?==?board[i][j]?&&?t?==?board[i][j?+?1]?&&?t?==?board[i][j?+?2]?&&?t?==?board[i][j?+?3]?&&?t?==?board[i][j?+?4])?{
return?1;
}
}
//右下
for?(i?=?a?-?4?j?=?b?-?4;?i?<=?a?j?<=?b;?i++?j++)?{
if?(i?>?0?&&?i?16?&&?j?>?0?&&?j?16?&&?t?==?board[i][j]?&&?t?==?board[i?+?1][j?+?1]?&&?t?==?board[i?+?2][j?+?2]?&&?t?==?board[i?+?3][j?+?3]?&&?t?==?board[i?+?4][j?+?4])?{
return?1;
}
}
//左下
for?(i?=?a?-?4?j?=?b?+?4;?i?<=?a?j?>=?b;?i++?j--)?{
if?(i?>?0?&&?i?16?&&?j?>?0?&&?j?16?&&?t?==?board[i][j]?&&?t?==?board[i?+?1][j?-?1]?&&?t?==?board[i?+?2][j?-?2]?&&
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-26?12:55??C++實現五子棋項目(附源碼)\
?????文件?????1038797??2019-07-26?12:51??C++實現五子棋項目(附源碼)\demo.gif
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\
?????文件???????28160??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\.suo
?????文件????36438016??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\Browse.VC.db
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\ipch\
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\ipch\AutoPCH\
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\ipch\AutoPCH\9f00a37c38189f49\
?????文件?????2359296??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\.vs\gobang\v16\ipch\AutoPCH\9f00a37c38189f49\MAIN.ipch
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\
?????文件??????114176??2019-07-26?12:29??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.exe
?????文件??????866016??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.ilk
?????文件??????????88??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.log
?????文件??????913408??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.pdb
?????目錄???????????0??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\
?????文件?????????616??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\CL.command.1.tlog
?????文件???????26834??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\CL.read.1.tlog
?????文件?????????404??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\CL.write.1.tlog
?????文件?????????202??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\gobang.lastbuildstate
?????文件????????1134??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\li
?????文件????????3602??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\li
?????文件?????????424??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\gobang.tlog\li
?????文件???????25199??2019-07-26?12:29??C++實現五子棋項目(附源碼)\gobang\Debug\main.obj
?????文件??????257024??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\vc142.idb
?????文件??????151552??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\Debug\vc142.pdb
?????文件????????1432??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\gobang.sln
?????文件????????6118??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\gobang.vcxproj
?????文件?????????949??2019-07-26?12:51??C++實現五子棋項目(附源碼)\gobang\gobang.vcxproj.filters
............此處省略6個文件信息
- 上一篇:loadConfig.zip
- 下一篇:個人物品管理程序
評論
共有 條評論