C語言實現的乙個三子棋遊戲詳解流程

2022-09-21 22:00:20 字數 4040 閱讀 8072

目錄

三子棋是我們先前所學知識的綜合運用,它的成功實現會讓我們對於c語言的基礎知識有乙個更深的了解

提示:以下是本篇文章正文內容

1、介面

2、棋盤與下棋時簡單的互動功能

3、判斷輸贏

上面便是三子棋簡單功能介紹。下面我們來用**實現。

【如圖】

**如下(示例):

在test.c原始檔中

#include "game.h"//引用標頭檔案

void menu()

int main()

} while (input);

}【列印效果】

1、在test.c檔案中,定義函式game();

#include "game.h"//引用標頭檔案

void menu()

void game()

int main()

} while (input);

}2、在game.h 標頭檔案中

#include

#define row 3

#define col 3

//初始化棋盤

void initboard(char board[row][col], int row, int col);//因為傳過來的是二維陣列,所以用二維陣列來接受

//列印棋盤

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

3、在game.c原始檔中

#include "game.h"

//在這裡實現函式功能

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

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

void game()

}int main()

} while (input);

}2、在game.h標頭檔案中

#include

#include

#include

#define row 3

#define col 3

//初始化棋盤

void initboard(char board[row][col], int row, int col);//因為傳過來的是二維陣列,所以用二維陣列來接受

//列印棋盤

void displaayboard(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);

3、在game.c原始檔中

#include "game.h"

//在這裡實現函式功能

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

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

else

}else//其餘是非法的

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

}}4、此時列印效果

在這裡,**能走,但不能判斷輸贏,所以接下來,我們實現最後一步判斷輸贏

1、在test.c原始檔中

#include "game.h"//引用標頭檔案

void menu()

void game()

//電腦下

computermove(board, row, col);//電腦應該隨機下棋

displaayboard(board, row, col);//電腦下完棋之後,列印棋盤觀察結果

ret = iswin(board, row, col);//判斷輸贏的函式,有返回值,判斷結果

if (ret != 'c')//如果不是返回其他三種情況,遊戲結束

ret = iswin(board, row, col);//判斷輸贏的函式,有返回值,判斷結果

if (ret != 'c')//如果不是返回其他三種情況,遊戲結束

}if (ret == '*')//如果不是返回其他三種情況,遊戲結束

else if (ret == '#')

else

displaayboard(board, row, col);//無論結果怎樣,都把最終棋盤列印出來

//需要更改行和列的時候,直接回到標頭檔案中改就可以了

}int main()

} while (input);

}2、在game.h標頭檔案中

#include

#include

#include

#define row 3

#define col 3

//初始化棋盤

void initboard(char board[row][col], int row, int col);//因為傳過來的是二維陣列,所以用二維陣列來接受

//列印棋盤

void displaayboard(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);

//判斷遊戲輸贏

//要返回四種不同的狀態

//1、玩家贏——返回『*'

//2、電腦贏——返回『#'

//3、平局——返回『q'

//4、繼續——返回『c'

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

3、在game.c原始檔中

#include "game.h"

//在這裡實現函式功能

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

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

else

}else//其餘是非法的

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

//返回1表示棋盤滿了

//返回0表示棋盤沒滿

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

} }return 1;//棋盤滿了返回1,

}char iswin(char board[row][col], int row, int col)

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

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

return board[1][1];

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

return board[1][1];

//2、判斷平局

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

//3、遊戲繼續

return 'c';

}4、最終實現結果

以上是通過本人學習的理解和網上資料的整理有關三子棋**實現的內容,有錯漏之處,還請各位多多包涵與指出,共同進步,共同成長!

三子棋遊戲(c語言實現)

一說到寫個三子棋遊戲,首先我們得想到有個棋盤初始化和棋盤列印函式。接下來,玩遊戲階段,人玩遊戲,電腦玩遊戲,各寫乙個函式,每次下完棋都得判斷有沒有人贏了遊戲,若有人贏了,遊戲退出,否則繼續遊戲。在這過程中,還有可能棋盤滿 了,所以寫個判斷棋盤是否滿的的函式,棋盤滿了,程式結束,沒人贏,此時就平局。當...

C語言實現三子棋遊戲

三子棋是乙個簡單的人機對戰遊戲在3 3的棋盤上,只要有一方下的子連成一條直線則顯示遊戲獲勝,遊戲結束。例如 想要用c語言編寫三子棋其實不難,主要把程式設計的思想順利清楚就很容易實現了。編寫三子棋遊戲我們可以先建立乙個 game.h檔案作為標頭檔案,用來宣告函式和定義一些常亮,在定義乙個game.c檔...

C語言實現三子棋遊戲

先看一下最終效果 void chess board char arr row col int row,int col 初始化棋盤 void mimeograph char arr row col int row,int col 列印棋盤 void player char arr row col in...