C語言實現簡單的三子棋操作

2021-10-20 12:22:40 字數 3242 閱讀 8082

學習完陣列就能用c語言寫出的簡單小遊戲

編譯器使用的為vs2013

**分為三個部分

標頭檔案 game.h

原始檔 game.c 用來存放遊戲中所有的函式

原始檔 test.c 用來存放遊戲的主題部分

**如下:

game.h部分

#include

#include

#include

#define row 3

#define col 3

//初始化棋盤

void

initboard

(char board[row]

[col]

,int row,

int col)

;//列印棋盤

void

displayboard

(char board[row]

[col]

,int row,

int col)

;//玩家走

void

playermove

(char board[row]

[col]

,int row,

int col)

;//電腦走

void

computermove

(char board[row]

[col]

,int row,

int col)

;//判斷輸贏 此時函式有返回值了 不能再用void了,返回值為字元要用char

char

checkwin

(char board[row]

[col]

,int row,

int col)

;

game.c部分

#include

"game.h"

void

initboard

(char board[row]

[col]

,int row,

int col)

//將陣列全部初始化為空格}}

void

displayboard

(char board[row]

[col]

,int row,

int col)

printf

("\n");

if(i < row -1)

//一列三個空格也只需要列印兩排『 --- 』即可

printf

("\n");

}}}void

playermove

(char board[row]

[col]

,int row,

int col)

else

}else}}

void

computermove

(char board[row]

[col]

,int row,

int col)}}

intisfull

(char board[row]

[col]

,int row,

int col)}}

return1;

}char

checkwin

(char board[row]

[col]

,int row,

int col)

//判斷贏得情況,返回值為字元

//玩家贏返回值為 * //電腦贏時返回值為 #

//平局時返回值為 q //仍可以下棋且為分勝負時返回值為 c

}for

(i =

0; i < col; i++

)//一列相同時

}//對角線相同時的兩種情況

if(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2]&&board[1]

[1]!=

' ')

if(board[0]

[2]== board[1]

[1]&& board[1]

[1]== board[2]

[0]&& board[1]

[1]!=

' ')

//棋盤全部下滿仍未分勝負的情況if(

isfull

(board, row, col)==1

)//isfull為判斷棋盤是否全滿時,當全滿時返回值為1,未滿時為0

return

'c';

//返回值為c遊戲繼續

}

test.c部分

#include

"game.h"

void

menu()

void

game()

displayboard

(board, row, col)

;//列印棋盤

computermove

(board, row, col)

;//電腦移動

ret =

checkwin

(board, row, col);if

(ret !=

'c')

displayboard

(board, row, col);}

if(ret ==

'*')

else

if(ret ==

'#')

else

if(ret ==

'q')

displayboard

(board, row, col);}

intmain()

}while

(input)

;return0;

}

注: srand函式是隨機數發生器的初始化函式,srand和rand()函式配合使用產生偽隨機數序列,但如果只是這兩個函式結合則程式每一次執行產生的隨機數將會相同,也就達不到隨機的目的了,因此在srand函式中要新增乙個隨時在變動的值,而在計算機中時間是在不斷變化的,因此可以用time()函式讀取系統時間(此處涉及到乙個概念叫:時間戳),time函式中直接用空指標null即可,這樣就可以達到生成隨機數的目的了。

C語言實現簡單的三子棋

一 主要思想 1 建立乙個3 3的棋盤 使用字元陣列 2 初始化棋盤 用空格填充 3 列印棋盤 使其有可見的邊框 4 玩家落子,用x表示 檢驗是否越界,是否已經落子,是否贏 5 電腦落子,用o表示 檢驗是否已經落子,是否贏 注 電腦在有效範圍內隨機落子,使用當前時間戳設定隨機種子即srand tim...

C語言實現三子棋

game.h define crt secure no warnings 1 ifndef game h define game h include include include include define rows 3 define cols 3 void init board char bo...

三子棋C語言實現

要寫這個三子棋的程式我們分為三個部分首先是宣告函式的標頭檔案,我們分別宣告了五個函式,初始化棋盤,列印棋盤,玩家走,電腦走,檢查是否贏了。之後我們寫測試 然後分別來實現這五個函式 define crt secure no warnings 1 ifndef game h define game h ...