三子棋是乙個很簡單的遊戲,用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...