C語言編寫三子棋

2021-09-29 11:17:30 字數 2454 閱讀 9405

**

首先,採用分檔案形式編寫遊戲,可以使程式結構更加清晰;

**編寫思路如下:

第一在main.c中寫出遊戲的主要框架,包括有初始介面的選單項和main函式:

//遊戲主框架

#include "game.h"

void menu()

int main()

} printf("byebye!\n");

system("pause");

}

第二在game.**件中編寫所有的宣告,其中包含有五個需要實現的主要函式:

//所有宣告

#ifndef _game_h_

#define _game_h_

#include#include#include#pragma warning(disable:4996)

#define row 3

#define col 3

#define p_color 'x'

#define c_color 'o'

#define init ' '

//初始化棋盤

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

//列印棋盤

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

//電腦移動

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

//判斷

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

void game();

#endif

第三在game.c中寫所有函式的實現:

//所有實現 

#include "game.h"

int true = 1;

//初始化棋盤

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

//列印棋盤

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

printf("\n");

printf("--------------\n"); }}

//電腦移動

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

//判斷——採用窮舉方案 (三子棋改五子棋的核心點)

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

} for (i = 0; i < row; i++)

} if (board[1][1] != ' '&&\

board[0][0] == board[1][1] && \

board[1][1] == board[2][2])

if (board[1][1] != ' '&&\

board[0][2] == board[1][1] && \

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

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

} }return 'f';

}void game()

//檢測落子合法性

if (board[x - 1][y - 1] != ' ')

board[x - 1][y - 1] = p_color; //落子

result = judge(board, row, col); //判斷結果

if (result != 'n')

computermove(board, row, col);

result = judge(board, row, col);

if (result != 'n')

} while (1);

if (result == p_color)

else if (result == c_color)

else

printf("你玩的還不錯,要不要再來一把!\n");

}

基本上的**編寫思路就是這樣,細節的在**中也標有注釋,相信大家應該可以看懂。

編寫過程中,重要的幾個點是:(1)用c語言編寫的三子棋遊戲主要就是使用陣列,三子棋棋盤就是運用乙個二維陣列表示的,通過這個遊戲的編寫我對陣列有了更深的認識。(2)showboard函式需要我們多次的執行調整,使編譯出的介面更加美觀;(3)judge函式採用窮舉方案 編寫,同時也是三子棋改五子棋的核心點,每個棋子都有8個方向的延伸,所以五子棋的編寫就是根據五子棋的遊戲輸贏判斷規則來寫,和三子棋很類似;(4)當然遊戲的編寫過程中自然不可避免的使用到了隨機數,也是需要多加練習。(5)還有就是在落子時的判斷,判斷落子是否越界或者落子的地方是否已經被占用,即判斷落子的合法性。

C語言基礎三子棋程式編寫

由玩家輸入棋子座標將棋子存入陣列board中,由chessboard得陣列儲存方式為 c c c 最後根據iswin返回值判斷玩家或電腦是否贏了遊戲 include include include include pragma warning disable 4996 void game void ...

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...