C語言 黑框框 下不忍直視的三子棋實現

2021-07-23 15:37:10 字數 3106 閱讀 5891

今天發乙個介面醜到爆,無比low的三子棋程式

同樣,win32 無圖形介面

輸入座標進行互動,

x代表玩家下子,0代表電腦下子(rand()函式隨機產生合法座標落子),率先連成三子則勝利。棋盤滿未連成三子則平局。

程式比較簡單直接發原始碼.三個塊,game.h代表程式所需標頭檔案、巨集定義、函式宣告,test.c代表程式遊戲邏輯,game.c代表程式定義函式實現.

**未優化,盡請見諒.

game.h:

/*

此標頭檔案包含test.c所需標頭檔案及相關函式宣告

*/#ifndef __game_h__

#define __game_h__

#include #include#include//定義棋盤的行數與列數

#define rows 3

#define cols 3

//列印選單

void menu(void);

//初始化棋盤

void init(char board[cols], int rows);

//列印棋盤

void print(char board[cols], int rows);

//遊戲環節

void play(char board[cols], int rows);

//通過檢查棋盤是否已滿判斷是否和棋

int checkfull(char board[cols], int rows);

//檢查是否有人獲勝

int checkwin(char board[cols], int rows);

//玩家玩

void player(char board[cols], int rows);

//電腦玩

void computer(char board[cols], int rows);

//檢查是否有人獲勝or平局

int check(char board[cols], int rows);

#endif

test.c:

/*

三子棋遊戲邏輯

*/#include "game.h"

int main(void)

//遊戲結束

printf("\nbye!\n"); //程式結束

return 0;

}

game.c:

/*

此源**包含test.c函式實現

*/#include "game.h"

//列印選單

void menu(void)

//初始化棋盤

void init(char board[cols], int rows)

//列印棋盤

void print(char board[cols], int rows)

printf("\n");

if( r == 2 ) //列印棋盤最後一行時規則不同

printf(" | | ");

else

printf("___|___|___");

printf("\n"); }}

//檢查是否有人獲勝or平局

int check(char board[cols], int rows)

else if( flag == 0 ) //flag為0電腦勝

ret = checkfull(board, rows); //如若前面為無人獲勝,則此處通過檢查棋盤是否已滿判斷是否和棋

if( ret == 1 ) //ret為1 則棋盤滿 和棋

return 0; //返回1 則此局結束, 返回0 則此局未結束!

}//通過檢查棋盤是否已滿判斷是否和棋

int checkfull(char board[cols], int rows)

//檢查是否有人獲勝

int checkwin(char board[cols], int rows)

for( c = 0; c < cols; c++ ) //判斷3列情況下是否有人獲勝

if( (board[0][0] == board[1][1]) //下面為判斷對角線情況是否有人獲勝

&& (board[1][1] == board[2][2])

&& (board[2][2] == 'x') )

return 1;

if( (board[0][0] == board[1][1])

&& (board[1][1] == board[2][2])

&& (board[2][2] == '0') )

return 0;

if( (board[0][2] == board[1][1])

&& (board[1][1] == board[2][0])

&& (board[2][0] == 'x') )

return 1;

if( (board[0][2] == board[1][1])

&& (board[1][1] == board[2][0])

&& (board[2][0] == '0') )

return 0;

}//玩家玩

void player(char board[cols], int rows)

else

}//退出while迴圈

print(board, rows); //列印更新後棋盤

}//電腦玩

void computer(char board[cols], int rows)

}//退出迴圈

printf("電腦玩!\n");

print(board, rows); //列印更新後的棋盤}

//遊戲環節

void play(char board[cols], int rows)

//退出while迴圈

}

C語言 三子棋

使用工具 vs2017 分為三部分 game.h 函式宣告 game.c 實現函式功能 test.c main函式 棋盤為3 3的矩陣 規則 1.每回合玩家與電腦只能放置一枚棋子 2.已有棋子的位置不能再放置棋子 3.若有一方的三枚棋子可連城一條直線,則勝利 4.若棋盤棋子已經布滿,但是雙方沒有一方...

三子棋(c語言)

今天做了乙個三子棋小遊戲,寫了好久卻只完成了一部分,先把這部分分享給大家吧!望大家給點建議和指導,最後判斷輸贏部分到現在還沒構思出來,嘿嘿!game.h define crt secure no warnings 1 ifndef game h define game h include inclu...

c語言 三子棋

c語言三子棋 來完善一下三子棋 game.h define crt secure no warnings 1 ifndef game h define game h include include include include define row 3 define col 3 void menu...