




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲這是一個(gè)用C語(yǔ)言實(shí)現(xiàn)的控制臺(tái)小游戲-五子棋,棋盤大小和獲勝棋子數(shù)目是用宏定義的,可以自定義,所以可以輕松改為三子棋、六子棋等等。此游戲設(shè)定為人機(jī)對(duì)戰(zhàn)(PVE),電腦走棋是隨機(jī)的。
編譯環(huán)境:VS2015
此程序采用多文件編譯,共有三個(gè)文件,一個(gè)game.h頭文件,一個(gè)game.c文件和一個(gè)main.c文件,代碼分別如下:
game.h
這里是一些數(shù)據(jù)和函數(shù)的聲明
#ifndef
_GAME_H_
#define_GAME_H_
#define_BOARD_10
//棋盤大小
#define_PIECE_5
//獲勝所需要連起來的棋子個(gè)數(shù)
typedefstructBoard{
charshow[_BOARD_][_BOARD_];
//棋盤字符數(shù)組
charPc;
//電腦使用的棋子
charPlayer;
//棋手使用的棋子
}Brd,*pBrd;
//Brd:五子棋
pBrd:五子棋指針
voidinit(pBrdB);
voidPrintBrd(constpBrdB);
voidPcrand(pBrdB);
intPlayer(pBrdB);
intjudge(pBrdB,intn);
voidmenu(pBrdB);
#endif//!_GAME_H_
game.c
這里是函數(shù)的具體實(shí)現(xiàn)
#includestdio.h
#includestdlib.h
#includetime.h
#include"game.h"
voidinit(pBrdB)
inti,j;
for(i=0;i_BOARD_;i++)
{
for(j=0;j_BOARD_;j++)
{
B-show[i][j]='';
}
}
B-Pc='@';
B-Player='*';
voidPrintBrd(constpBrdB)
inti,j;
printf("");
for(i=0;i_BOARD_;i++)
{
printf("
%d",i+1);
}
printf("\n");
for(i=0;i_BOARD_;i++)
{
for(j=0;j_BOARD_;j++)
{
if(j==0)printf("%d|",i+1);
printf("%c|",B-show[i][j]);
}
if(i==0)printf("
Player:*");
if(i==1)printf("
AI:@");
printf("\n\n");
}
voidPcrand(pBrdB)
inti,j;
srand((unsignedint)time((NULL)));
intn=rand()%(_BOARD_*_BOARD_);
for(i=0;i_BOARD_;i++)
{
for(j=0;j_BOARD_;j++)
{
if(n0)n--;
elseif(n==0B-show[i][j]=='')
{
B-show[i][j]=B-
return;
}
}
}
intPlayer(pBrdB)
inti,j;
printf("請(qǐng)輸入落子位置:\n");
printf("行:
scanf("%d",
printf("列:
scanf("%d",
i--;
j--;
if(B-show[i][j]!=''||i=_BOARD_||j=_BOARD_||i0||j0)
{
printf("請(qǐng)輸入正確的位置!\n");
system("pause");
return0;
}
B-show[i][j]=B-Player;
return1;
intjudge(pBrdB,intn)
chars;
intc=0;
inti,j,sum=0;
if(n==1)s=B-Player;
elseif(n=2)s=B-
for(i=0;i_BOARD_;i++)
{
sum=0;
for(j=0;j_BOARD_;j++)
{
if(B-show[i][j]==s)sum++;
elsesum=0;
if(sum==_PIECE_)return1;
}
}
for(j=0;j_BOARD_;j++)
{
sum=0;
for(i=0;i_BOARD_;i++)
{
if(B-show[i][j]==s)sum++;
elsesum=0;
if(sum==_PIECE_)return1;
}
}
sum=0;
for(i=0,j=0;i_BOARD_;i++,j++)
{
if(B-show[i][j]==s)sum++;
elsesum=0;
if(sum==_PIECE_)return1;
}
sum=0;
for(i=0,j=_BOARD_-1;i_BOARD_;i++,j--)
{
if(B-show[i][j]==s)sum++;
elsesum=0;
if(sum==_PIECE_)return1;
}
return0;
voidmenu(pBrdB)
intc,n=1;
printf("****************************************\n");
printf("*********
1.play
**
0.exit
*********\n");
printf("****************************************\n");
printf("請(qǐng)輸入選項(xiàng):
scanf("%d",
while(c)
{
system("cls");
if(n==1)
{
PrintBrd(B);
if(Player(B))n=2;
elsecontinue;
}
else
{
Pcrand(B);
n=1;
}
if(judge(B,n))
{
PrintBrd(B);
if(n==1)printf("OldFe666!\n");
elseprintf("請(qǐng)大俠重新來過\n");
break;
}
}
}
main.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寫畢業(yè)論文遇到的困難
- 八年級(jí)數(shù)學(xué)教學(xué)論文
- 化工電氣安裝培訓(xùn)
- 常規(guī)超聲檢查配合規(guī)范
- 幼兒園老師幸福感培訓(xùn)
- 直播人事培訓(xùn)方案
- 幕墻加工培訓(xùn)課件模板
- 企業(yè)司機(jī)禮儀培訓(xùn)
- 痙攣型腦性癱瘓護(hù)理查房
- 游樂設(shè)施培訓(xùn)課件模板
- 2025年河北交通投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2020-2021學(xué)年河南省鄭州市八下期末數(shù)學(xué)試卷(原卷版)
- 家具公司工藝流程
- 《吸入性肺炎的護(hù)理》課件
- 2024-2030年中國(guó)卷煙行業(yè)市場(chǎng)未來發(fā)展?fàn)顩r及投資規(guī)劃研究報(bào)告
- 水利水電工程施工企業(yè)“三類人員”安全生產(chǎn)考核題庫(kù)-(單選多選題庫(kù))
- 2025《國(guó)家安全教育》教學(xué)大綱
- 帆狀胎盤的臨床護(hù)理
- 【MOOC】結(jié)構(gòu)力學(xué)基礎(chǔ)-西南交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024廣東省勞動(dòng)合同范本范本下載
- 水利信息化水質(zhì)監(jiān)測(cè)系統(tǒng)單元工程質(zhì)量驗(yàn)收評(píng)定表、檢查記錄
評(píng)論
0/150
提交評(píng)論