簡單的三子棋實現

2021-08-21 17:59:27 字數 2337 閱讀 5886

game.h

#pragma warning(disable: 4996)

#ifndef __game_h__

#define __game_h__

#include#include#include#define row 3

#define col 3

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

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

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

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

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

enum option

;#endif //__game_h__

#ifndef 和 #endif 要一起使用,如果丟失#endif,可能會報錯

#ifndef起到的效果是防止乙個原始檔兩次包含同乙個標頭檔案,而不是防止兩個原始檔包含同乙個標頭檔案

分析:當第一次包含test.h時,由於沒有定義_test_h,條件為真,這樣就會包含(執行)#ifndef _test_h和

#endif之間的**,當第二次包含test.h時前面一次已經定義了_test_h,條件為假,#ifndef _test_h和

#endif之間的**也就不會再次被包含,這樣就避免了重定義了.

game.c

#include"game.h"

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

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

printf("\n");

if (i < row - 1)

printf("\n");

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

else

printf("輸入座標被占用!\n");

} else

printf("輸入座標非法!\n"); }}

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

static int isfull(char board[row][col],int row,int col)//只能在當前原始檔內部使用,外部連線屬性變成內部連線屬性(命名不衝突)

} return 1;

}char checkwin(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])

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

if (isfull(board, row, col))

return ' ';

}

可是通過改變巨集row.col快速改變棋盤大小,但是判斷輸贏的條件隨之也要修改

#include"game.h"

void menu()

void game()

; initboard(board,row,col);

displayboard(board, row, col);

while (1)

if(win == 'x')

else if(win == 'o')

else

}void test()

} while (i);

}int main()

『x』玩家贏

『o』電腦贏

『pj』平局

『 』未分出結果

ps:如果開始遊戲時選擇1 任意數字

能執行遊戲,但是會發生錯誤~

求大神~~

簡單三子棋

c8 簡單三子棋 使用二維陣列 建立乙個棋盤,每乙個元素都是乙個char x 表示玩家落子 o 表示電腦落子 表示未落子 define crt secure no warnings include include include int menu define max row 3 define ma...

簡單的三子棋的實現

程式執行結果如下 本次 實現乙個簡易的三子棋遊戲,基本思路是 列印選單 選擇遊戲 列印初始棋盤 玩家下棋 電腦隨機下棋 利用rand srand 的庫函式 判斷 棋盤是否的格仔是否為空,判斷哪一方贏 結束遊戲。為下 game.h ifndef game h define game h include...

三子棋的實現

三子棋的實現還是比較簡單的,在寫 之前,你先構建一下遊戲的架構,這樣寫的時候思路比較清晰,不容易思想卡克,很容易就完成。再乙個,你寫的 並不是孤芳自賞的,而是要拿出來給別人看,別人可以清楚地看懂你的 這才是好 我們先來看三子棋的架構如何實現,這就看你的思維邏輯能力了。下面 很清晰的展現了這一架構 v...