三子棋是一種民間傳統遊戲,又叫九宮棋、圈圈叉叉、一條龍等。將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了。
【專案概要】:使用c語言中二維陣列和函式的基本知識簡單實現乙個三子棋遊戲,這個遊戲要實現的基本功能主要有初始化棋盤、棋盤的列印、玩家下棋、電腦下棋、判斷輸贏(三子連珠)。
【專案描述】:
1、列印選單,供使用者選擇;
2、main 函式建立整體框架;
3、game()函式,通過呼叫不同功能函式共同實現遊戲主體;
1、標頭檔案:
#ifndef _threechess_h_
#define _threechess_h_
#include #include #include #pragma warning (disable:4996)
#define row 3
#define col 3
#define player_color 'x'
#define computer_color 'o'
void game();
void initboard(char board[col],int row, int col);
void showboard(char board[col], int row, int col);
char judge(char board[col], int row, int col);
void playermove(char board[col], int row, int col);
void computermove(char board[col], int row, int col);
int getrandom(int start, int end);
#endif
2、main()檔案:
#include "threechess.h"
void showmenu()
int main()
} system("pause");
return 0;
}
3、函式實現原始檔:
#include "threechess.h"
/*對陣列進行初始化。 方法一:
void initboard(char board[col], int row, int col) }}
*///對陣列進行初始化。 方法二
void initboard(char board[col], int row, int col)
//memset函式用來對一段記憶體空間全部設定為某個字元
void showboard(char board[col], int row, int col) }}
char judge(char board[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])
for (i = 0; i < row; i++)
}} return 'e';
}void playermove(char board[col], int row, int col)
else
} else }}
void computermove(char board[col], int row, int col) }}
int getrandom(int start, int end)
void game()
computermove(board, row, col);
showboard(board, row, col);
result = judge(board, row, col);
if (result != 'n')
} switch (result)
//memset(board, ' ', sizeof(board));
printf("再來一把?\n");
}
memset函式用來對一段記憶體空間全部設定為某個字元。
不知道memset函式的戳這裡---->memset。
一、這裡先介紹一下多檔案編寫**:
1、需要乙個標頭檔案,以 .h 結尾,裡面放置函式的宣告;格式如下:
#ifndef _threechess_h_
#define _threechess_h_
//需要宣告的函式
//、、、、、、
#endif
2、需要乙個原始檔,以 .c 結尾,裡面放置函式的實現;該檔案頂端,需要和標頭檔案進行連線;格式如下:
#include "threechess.h"
3、需要乙個原始檔放置main函式,檔名以 .c 結尾;同樣需要和標頭檔案進行連線;格式如上;
1、windows系統相關程式設計操作
#include //以下函式的標頭檔案
system("pause");//系統暫停的意思,等待使用者訊號;不然控制台程式會一閃即過,你來不及看到執行結果。
system("cls");//清屏操作,將命令列視窗內容清空
sleep(500);//休眠函式,系統暫停500毫秒,數字可以改
2、隨機數生成:
計算機不可能生成真正的隨機數,全部是偽隨機數;它是根據乙個數(乙個種子),通過某種運算得來的;
srand() 用來設定 rand() 產生隨機數時的隨機數種子。引數 seed 必須是個整數,如果每次 seed 都設相同值,rand() 所產生的隨機數值每次就會一樣。
rand() 產生的隨機數在每次執行的時候都是與上一次相同的。若要不同, 用函式 srand() 初始化它。可以利用 srand((unsigned int)(time(null)) 的方法,產生不同的隨機數種子,因為每一次執行程式的時間是不同的。
還有,在一定範圍內,任意區間【start,end】隨機數求取公式為 rand()%(end-start)+start
具體使用方法如下:
srand((unsigned int)time(null));
int getrandom(int start, int end)
本專案非常適合c語言初學者,希望有興趣的朋友可以一起學習。 C語言實現三字棋遊戲
include include include include define rows 3 define cols 3 void menu void init board char arr cols int x,int y 初始化棋盤 void print board char arr cols i...
用C語言實現三字棋
用c語言實現三字棋,其根本就是在乙個二維陣列裡的各種操作,在這個專案裡面,我們要自己定義乙個標頭檔案 ifndef game h define game h include include include include define row 3 設定行 define col 3 設定列 void ...
c語言三字棋
1.三字棋存在只能演算法,雖然程式較笨,希望大佬指導。2.利用for迴圈巢狀if判斷,每一行有三種堵棋的情況。3.玩家或者電腦每下一步棋都要進行判斷輸贏和列印棋盤 game.h 標頭檔案 ifndef game h define game h include include include defi...