三子棋遊戲

2021-07-23 14:54:59 字數 3094 閱讀 6041

首先介紹一下三子棋遊戲規則:這是乙個玩家和電腦對戰的三子棋遊戲;

棋盤如上圖所示,三個棋子連在一起則勝利;下面就是用c語言實現的方法;

建立棋盤:利用二維陣列來實現乙個棋盤,棋盤剛開始是沒有任何棋子的,將二維陣列所有元素初始化為空格即可;

玩家下棋:玩家輸入棋盤中的對應座標來下棋,下棋時需要考慮輸入座標合法性,輸入座標是否被下;若滿足座標合法,座標未被下子,這個座標放入棋子;若不滿足,重新輸入座標直至正確為止;

電腦下棋:電腦下棋可以自己設定難度;比如,遍歷棋盤找到未被下子的位置就放入棋子;本程式中電腦下棋是隨機產生座標,需要判斷隨機產生的座標是否被下,若這個座標已有棋子,重新產生隨機數直至找到沒有棋子的座標,在電腦下棋之前還需要判斷一下棋盤是否被下滿的情況;

判斷輸贏:贏的情況有以下幾種:判斷以下幾種情況即可;平局的情況要放在最後乙個判斷;

程式**:

game.h 

#define _crt_secure_no_deprecate

#ifndef __game_h__

#define __game_h__

#define rows 3

#define cols 3

enum

;void init_board(char board[rows][cols],int rows,int cols); //初始化棋盤

void print_board(char board[rows][cols], int rows, int cols); //列印棋盤

void play_game(char board[rows][cols], int rows, int cols); //開始玩遊戲

char who_win(char board[rows][cols]); //判斷輸贏

void player_move(char board[rows][cols]); //玩家走

void menu(); //選單

void computer_move(char board[rows][cols]); //電腦走

int is_full(char board[rows][cols]); //判斷棋盤是否已滿

#endif //__game_h__

test.c  

#define _crt_secure_no_deprecate

#include#include#include#include "game.h"

game()

} while (choose);

}

game.c

#define _crt_secure_no_deprecate

#include #include #include "game.h"

void menu()

void init_board(char board[rows][cols], int rows, int cols) }

}void print_board(char board[rows][cols], int rows, int cols)

}char who_win(char board[rows][cols])

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

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

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

if (is_full(board) == 1) }

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

computer_move(board);

ret = who_win(board); //判斷輸贏

if (ret == '0' || ret == 'x' || ret == 'q')

}if (ret == '0')

else if (ret == 'x')

else }

void player_move(char board[rows][cols])

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

}else

}}int is_full(char board[rows][cols]) //判斷棋盤是否已滿

玩家贏示例:

電腦贏示例:

三子棋遊戲

閒來無事,竟意外發現了三子棋遊戲,順便實現了這個過程,我們一起來看下。三子棋的實現需要的是五個函式,我用了initboard 初始化棋盤函式 display 列印棋盤函式 player 玩家 computer 電腦 check full 判斷棋盤是否已滿,從而判斷輸贏 game.h define c...

三子棋遊戲

遊戲部分思路 初始化棋盤 玩家下棋 輸出棋盤 判斷輸贏 電腦下棋 判斷輸贏 迴圈這部分,直到有人贏得比賽 效果圖 test,c原始檔 define crt secure no warnings include game.h void menu void game char win init boar...

三子棋遊戲

c語言三子棋遊戲 define crt secure no warnings 1 include include include game.h include game.h void print chessboard char coord 3 else if i 17 6 i 17 12 else ...