三字棋 C語言實現

2021-09-23 07:56:00 字數 3424 閱讀 4712

三子棋是一種民間傳統遊戲,又叫九宮棋、圈圈叉叉、一條龍等。將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了。

【專案概要】:使用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...