C語言實現簡易版三子棋遊戲

2022-10-04 05:36:09 字數 3203 閱讀 5345

什麼是多檔案?

多數大型的工程的標頭檔案和原始檔非常多,我們也不可能把所有的**都寫在同乙個檔案裡,這樣也不方便**的閱讀與維護,通常都會根據不同的功能將**分別書寫到多個原始檔與標頭檔案中。 

遊戲介紹

三子棋是個簡單的雙人遊戲,雙方在3x3的棋盤上輪流落子,當一條直線上出現三顆連續且相同的棋子時即獲勝。此程式讓玩家先落子,電腦在棋盤上隨機落子。遊戲結束時顯示勝負,玩家可以選擇是否繼續玩遊戲。

**實現

chess.h

通常我們會在標頭檔案中寫一些型別的定義、結構體定義、巨集定義、函式宣告、include包含等內容。

#ifndef _chess_h_

#define _chess_h_

#include

#include

#include

#include

#include

#pragma warning(disable:4996)

#define row 3

#define col 3

#define black_piece 'x'

#define white_piece 'o'

void initboard(char board[row][col], int row, int col);

void showboard(char board[row][col], int row, int col);

void playermove(char board[row][col], int row, int col);

int computermove(char board[row][col], int row, int col);

char checkwin(char board[row][col], int row, int col);

#endif

chess.c

原始檔中包含了chess.h這個標頭檔案,於是在這個chess.c檔案中就可以使用這些在標頭檔案中定義的內容,可以使用自定義型別、自定義函式、標準輸入輸出函式等。

include的路徑問題,當使用< >來指定包含的標頭檔案時,編譯器會從系統標頭檔案庫中進行查詢,而使用" "來包含的標頭檔案,編譯器將會從當前程式目錄進行查詢。在include時被包含檔案可以是絕對路徑,也可以是相對路徑,總之,只要標頭檔案的存放路徑與當前原始檔的關係正確即可。

#include "chess.h"

//列印棋盤

void initboard(char board[col], int row, int col) }}

void showboard(char board[col], int row, int col)

printf("----------------\n");}

//玩家下棋

void playermove(char board[col], int row, int col)

else

} else }}

//電腦下棋

int computermove(char board[col], int row, int col)

else

} }

} if (board[1][1] == ' ')

else

} }

} x = rand() % row; //四個邊的中間隨機落子,0—2

y = rand() % col;

if (board[x][y] == ' ')

printf("\n"); }}

static int isfull(char board[row][col], int row, int col)

} //已滿

return 1;}

//使用者贏了 black_piece 'x'

//電腦贏了 white_piece 'o'

//平局, 'q'

//繼續, 'c'

//結果判斷 玩家贏 or 電腦贏 or 平局

char checkwin(char board[row][col], int row, int col)

} for (i = 0; i < col; i++)

} if (board[0][0] != ' ' && board[0][0] == board[1][1] && board[1][1] == board[2][2])

if (board[0][2] != ' ' && board[0][2] == board[1][1] && board[1][1] == board[2][0])

//平局

if (isfull(board, row, col) == 1)

//繼續

return 'c';

}main.c

理清思路,搭建好執行的框架。

1.遊戲選單,選擇玩/不玩

2.列印棋盤

3.玩家落子

4.列印棋盤

5.電腦落子

6.列印棋盤

7.…8.顯示勝負

9.返回遊戲選單,選擇玩/不玩

#include "chess.h"

void menu()

void game()

;//記錄棋盤

char ret = 0;

initboard(board, row, col);

showboard(board, row, col);//列印棋盤

while (1)

computermove(board, row, col);//電腦走

showboard(board, row, col);//列印棋盤

//判斷輸贏

ret = checkwin(board, row, col);

if (ret != 'c')

} if (ret == 'x')

else if (ret == 'o')

else if (ret == 'q')}

int main()

} system("pause");

return 0;

}測試結果

更多有趣的經典小遊戲實現專題,分享給大家:

c++經典小遊戲彙總

python經典小遊戲彙總

python俄羅斯方塊遊戲集合

j**ascript經典遊戲 玩不停

j**a經典小遊戲彙總

j**ascript經典小遊戲彙總

本文標題: c語言實現簡易版三子棋遊戲

本文位址:

c語言實現簡易三子棋遊戲

建立並輸出棋盤 玩家落子並判定輸贏 電腦落子並判定輸贏 若無人勝則繼續2 3步驟直至棋盤滿。下面是實現 ifndef game h define game h include include include include define row 3 define col 3 void setboar...

c語言井字棋(三子棋)簡易版

遊戲的棋盤為3 3 的九宮格模式,玩家 vs 電腦 只要玩家 電腦 的某個方向的棋子連成一條線,就是玩家 電腦 或獲勝。1 表示玩家 2 表示電腦。此時就算是玩家勝利 玩家進行選擇 0 表示開始遊戲,1 表示退出遊戲 此處我們需要進行判斷玩家輸入是否有誤,輸入的值必須是0或者1,其他錯誤輸入需要進行...

基於C語言實現簡易三子棋遊戲

用c語言寫三子棋的具體 供大家參考,具體內容如下 define crt secure no warnings include include 識別符號定義 define row 3 define col 3 函式定義 棋盤初始化 void init board char board row col ...