C語言 三子棋

2021-09-01 16:08:49 字數 3289 閱讀 3356

三子棋是乙個很簡單的遊戲,用c語言實現,就是實現以下功能:

1.初始化介面(棋盤);

2.顯示介面;

3.玩家和電腦交替走棋;

4.在每次走棋之後判斷是否有人勝利;

5.判斷棋盤是否已下滿棋子。

注:此程式玩家下棋時的座標,就是棋盤實際上顯示的座標,並不需要再進行計算,判斷是從「0」還是「1」開始,即棋盤的橫縱座標的取值範圍為[1,3]。

首先是各個函式的實現:

chess.c

#include

"chess.h"

//初始化棋盤

void

init_board

(char board[row]

[col]

,int row,

int col)

//顯示棋盤

void

display_board

(char board[row]

[col]

,int row,

int col)}}

//選單選項

void

menu()

//玩家走棋,用'x'表示

void

player_move

(char board[row]

[col]

,int row,

int col)

else

}else}}

//電腦走棋,用'0'表示

void

computer_move

(char board[row]

[col]

,int row,

int col)}}

//判斷棋盤是否布滿

intcheck_full

(char board[col]

[row]

,int row,

int col)

}return1;

}//判斷是否有人勝出

char

check_win

(char board[row]

[col]

,int row,

int col)

for(

int i =

0; i < col; i++)if

(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2])

if(board[2]

[0]== board[1]

[1]&& board[1]

[1]== board[0]

[2])

if(check_full

(board, row, col)

)return

'f';

else

return

' ';

}//遊戲的邏輯

void

game()

;char ret =

'0';

init_board

(board, row, col)

;display_board

(board, row, col)

;while(1

)printf

("\n");

computer_move

(board, row, col)

;display_board

(board, row, col)

;//電腦走棋后判斷是否勝出

ret =

check_win

(board, row, col);if

(ret !=

' ')}if

(ret ==

'x')

else

if(ret ==

'0')

else

if(ret ==

'f')

}void

test()

}while

(input);}

intmain()

然後是標頭檔案的引用以及巨集的定義:

chess.h

#pragma once

#ifndef __game_h__

#define __game_h__

//避免scanf函式的警告

#define _crt_secure_no_warnings

#include

#include

#include

#include

#define row 3

#define col 3

void

init_board

(char board[row]

[col]

,int row,

int col)

;void

display_board

(char board[row]

[col]

,int row,

int col)

;void

player_move

(char board[row]

[col]

,int row,

int col)

;void

computer_move

(char board[row]

[col]

,int row,

int col)

;int

check_full

(char board[col]

[row]

,int row,

int col)

;char

check_win

(char board[row]

[col]

,int row,

int col)

;#endif

//__game_h__

實現以後,測試如下:

最後的游標就是sleep的時間,目的在於顯示勝出的選手。

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