今天發乙個介面醜到爆,無比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...