什麼是多檔案?
多數大型的工程的標頭檔案和原始檔非常多,我們也不可能把所有的**都寫在同乙個檔案裡,這樣也不方便**的閱讀與維護,通常都會根據不同的功能將**分別書寫到多個原始檔與標頭檔案中。
遊戲介紹
三子棋是個簡單的雙人遊戲,雙方在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 ...