萌新的九宮棋(C語言)

2021-10-11 16:32:25 字數 3041 閱讀 8150

二、設計思路

三、程式實現

四、部分執行效果

五、相關支援

1、實現功能

該程式提供了九宮棋玩法的實現。並且可以接受兩種模式,人機對戰和雙人對戰,並且支援通過命令列引數選擇兩種模式。

2、介紹

學習c語言到陣列函式這塊了,打算寫個小的專案來練一下手,驗證一下自己的學習成果(p.s.當然部落格也是第一次寫)。想來想去應該是九宮棋比較簡單,所以用學到的知識簡單實現了一下九宮棋。如果有不妥帖之處,懇請大佬多多指正。

3、編譯器

mingw gcc version 9.2.0

4、致謝

p.s. 本程式借鑑了hidden.blueee的三子棋的部分思路,十分感謝hidden.blueee提供的一些思路。

大體分為1介面以及錯誤資訊輸出2玩家和計算機落子3判斷輸贏4單次九宮棋玩法的實現5主函式的統籌呼叫五部分。

函式名註解

返回值引數

描述output

1void

int輸出歡迎,結束介面

isfull

3int

char (*) [03]

判斷棋盤是否已滿

iswin

3char

char (*) [03]

判斷是否有玩家贏得比賽

endputwin

1void

char

遊戲單次結束輸出獲勝者

inputerr

1void

int輸出輸入錯誤的提示

playamethod

4void

void

人機對戰的實現

playbmethod

4void

void

雙人對戰的實現

pcmove

2void

char (*) [03]

電腦無腦落子

playermove

2void

char (*) [03]

玩家落子

putchess

1void

char (*) [03]

輸出實時棋盤

putmenu

1void

void

列印選擇選單

1、main()函式的實現

說句實話,發現這個主函式多少有點臃腫。

乙個小tip:記得處理scanf函式讀取後殘留的換行符。

int main (

int argc,

char

**ar**)

else

if(modechoice ==

'b'|| modechoice ==

'b')

else}}

else

if(argc ==2)

}else

// 命令列引數輸入過多錯誤

while

(true)

else

if(modechoice ==

'b'|| modechoice ==

'b')

else}}

else

break;}

output(2

);return0;

}

2、pcmove()實現–計算機的落子

話說有了計算機的落子玩家的的落子玩家落子應該容易實現了。

void

pcmove

(char chess[max_row]

[max_col]

,char player)

}

3、iswin()函式的實現–判斷是否有玩家贏棋
char

iswin

(char chess[max_row]

[max_col]

)for

(int col =

0; col < max_col; col++

)// 判斷對角線是否有玩家贏

if(chess[0]

[0]!=

' '&& chess[0]

[0]== chess[1]

[1]&& chess[0]

[0]== chess[2]

[2])

return chess[0]

[0];

if(chess[2]

[0]!=

' '&& chess[2]

[0]== chess[1]

[1]&& chess[2]

[0]== chess[0]

[2])

// 判斷棋盤是否已滿if(

isfull

(chess)

)return

'q';

return

' ';

}

4、playamethod()函式實現
void

playamethod

(void);

// 遊戲開始,玩家都未落子,輸出棋盤

提取碼:uydk

C 藍橋杯 九宮重排

題目 如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局面記為 12345678.把第二個圖的局面記為 123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為...

Android中的九宮格

1 實現基類 1 item數量控制 private void ensureitems int count else if c count for int i 0 i getchildcount i 2 mearsure處理 override protected final void onmeasur...

藍橋杯 歷屆試題 九宮幻方(C )

問題描述 解題思路 具體 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 小明最近在教鄰居家的小朋友小學奧數,而最近正好講述到了三階幻方這個部分,三階幻方指的是將1 9不重複的填入乙個33的矩陣當中,使得每一行 每一列和每一條對角線的和都是相同的。三階幻方又被稱作九宮格,在小學奧...