C語言 三子棋遊戲

2021-10-10 06:30:45 字數 3879 閱讀 7207

問題描述

3*3的棋盤中,只要一條線上出現三個一樣的棋子就獲勝(玩家或電腦);如果棋盤已經放滿還未出現三個棋子一條線則打成平手。

具體細節

初始化棋盤(用空格初始化)

//初始化棋盤

void

initchess

(char chessbox[row]

[col])}

}

列印棋盤

//列印棋盤

void

printchess

(char chessbox[row]

[col]

)}

電腦落子(用o表示電腦落子)

//電腦落子(用o表示)

void

computermove

(char chessbox[row]

[col])}

}

玩家落子

//玩家落子(用x表示)

void

playermove

(char chessbox[row]

[col])if

(chessbox[row]

[col]

==' '

)printf

("該位置已有棋子,請重新輸入:");

}}

三個棋子一條線

//行

for(

int row =

0; row < row; row++)}

//列for

(int col =

0; col < col; col++

)}

if

(chessbox[0]

[0]!=

' '&&chessbox[0]

[0]== chessbox[1]

[1]&& chessbox[0]

[0]== chessbox[2]

[2])

if(chessbox[2]

[0]!=

' '&&chessbox[2]

[0]== chessbox[1]

[1]&& chessbox[2]

[0]== chessbox[0]

[2])

和棋

在這裡插入**片

//和棋 if(

isfull

(checkbox)

)

輸贏約定:

if

(iswinner

(chessbox)

=='x'

)

if

(iswinner

(chessbox)

=='o'

)

if

(iswinner

(chessbox)

=='a'

)

判斷棋盤是否放滿:

//判斷棋盤是否擺滿

//1表示滿;0表示不滿。

intisfullchess

(char chessbox[row]

[col])}

}return1;

}

源**:

#define  _crt_secure_no_warnings

#include

#include

#include

#define row 3

#define col 3

//玩家落子(用x表示)

void

playermove

(char chessbox[row]

[col])if

(chessbox[row]

[col]

==' '

)printf

("該位置已有棋子,請重新輸入:");

}}//電腦落子(用o表示)

void

computermove

(char chessbox[row]

[col])}

}//初始化棋盤

void

initchess

(char chessbox[row]

[col])}

}//列印棋盤

void

printchess

(char chessbox[row]

[col])}

//判斷棋盤是否擺滿,擺滿返回1;未滿返回0

intisfullchess

(char chessbox[row]

[col])}

}return1;

}//約定:返回x代表玩家贏了;返回o代表電腦贏了;返回a代表和棋

char

iswinner

(char chessbox[row]

[col])}

//列for

(int col =

0; col < col; col++)}

//對角線

if(chessbox[0]

[0]!=

' '&&chessbox[0]

[0]== chessbox[1]

[1]&& chessbox[0]

[0]== chessbox[2]

[2])

if(chessbox[2]

[0]!=

' '&&chessbox[2]

[0]== chessbox[1]

[1]&& chessbox[2]

[0]== chessbox[0]

[2])

//和棋if(

isfullchess

(chessbox)

)return0;

}//開始一局遊戲

void

game()

;initchess

(chessbox)

;printf

("遊戲開始啦!\n");

printchess

(chessbox)

;while(1

)if(iswinner

(chessbox)

=='a'

)//電腦落子

computermove

(chessbox)

;//列印棋牌

printchess

(chessbox)

;//判斷勝負if(

iswinner

(chessbox)

=='o')if

(iswinner

(chessbox)

=='a')}

}int

menu()

intmain()

else

if(choice ==0)

else

}system

("pause");

return0;

}

執行結果:

C語言 三子棋遊戲

用c語言第一次完成三子棋遊戲,感觸特別深刻。在寫 中我明白了,思路還有 風格的重要性,在這次 中發現,我們整理好邏輯想法 對寫 就不會有太多問題了 如下,若有改進的地方,還希望大家可以多多指點。include include include include define row 3 define c...

C語言三子棋遊戲

三子棋是一種只需要行 列 斜中任意一種情況三個相同棋子相連便勝利的遊戲。本程式中,要求玩家與電腦pk,棋盤座標用乙個二維陣列儲存起來,玩家通過鍵盤輸入座標落子,電腦通過srand和rand函式隨機產生座標落子。每次落子都需要判斷遊戲是否結束。1.遊戲選單,供使用者進入遊戲 2.建立初始化棋盤 3.列...

C語言 三子棋遊戲

今天,我們用c語言來寫乙個三子棋遊戲。在整個工程裡建立了三個檔案,分別為main.c game.c game.h,其中 main.c 用於放整個遊戲的框架 game.c與game.h組成玩遊戲的模組。如下 game.h define crt secure no warnings 1 include ...