編寫五子棋游戲的C語言程序主要包括以下步驟:
定義棋盤:創(chuàng)建一個(gè)二維數(shù)組來表示棋盤,每個(gè)元素代表棋盤上的一個(gè)位置。
初始化棋盤:將棋盤上的所有位置初始化為空。
繪制棋盤:利用循環(huán)輸出棋盤的每一行和每一列,用不同的字符表示空位、玩家1和玩家2的棋子。
判斷勝負(fù):編寫函數(shù)來判斷是否有玩家連成五子,可以通過檢查每個(gè)位置的水平、垂直和斜向連子情況來實(shí)現(xiàn)。
下棋:實(shí)現(xiàn)玩家輪流下棋的功能,通過輸入坐標(biāo)來確定落子位置,然后在棋盤上標(biāo)記對(duì)應(yīng)的棋子。
判斷平局:在每次下棋后判斷是否出現(xiàn)平局,即棋盤已滿但無玩家連成五子。
完善游戲邏輯:包括判斷輸贏后的處理、重新開始游戲功能等。
下面是一個(gè)簡(jiǎn)單的五子棋游戲的C語言代碼示例:
#include <stdio.h>
#define SIZE 15
#define EMPTY '.'
#define PLAYER1 'X'
#define PLAYER2 'O'
char board[SIZE][SIZE];
void initBoard() {
for(int i = 0; i < SIZE; i++) {
for(int j = 0; j < SIZE; j++) {
board[i][j] = EMPTY;
}
}
}
void printBoard() {
for(int i = 0; i < SIZE; i++) {
for(int j = 0; j < SIZE; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
}
int main() {
initBoard();
int currentPlayer = 1;
int x, y;
while(1) {
printf("Player %d's turn. Enter row and column: ", currentPlayer);
scanf("%d %d", &x, &y);
if(board[x][y] == EMPTY) {
board[x][y] = (currentPlayer == 1) ? PLAYER1 : PLAYER2;
printBoard();
// Check for win here
currentPlayer = (currentPlayer == 1) ? 2 : 1;
} else {
printf("Invalid move. Try again.\n");
}
}
return 0;
}
這段代碼實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的五子棋游戲,玩家輪流輸入行和列來下棋,并在控制臺(tái)上顯示棋盤。你可以根據(jù)需要添加判斷輸贏、重新開始游戲等功能。