在設計遊戲之前,自己對遊戲的邏輯和步驟要非常清楚,這一點是非常重要的。
三子棋遊戲它的邏輯也並不是很難。
電腦與玩家下棋,假設電腦先落子,玩家後落子,如此交替進行。直到有一方在行、列、左對角線、右對角線,四個方向的其中一種落子先滿,這一方獲勝。若棋盤已滿卻並未有以上情況,則視為平局。
在設計程式之初,首先要有選單供玩家選擇:選擇開始遊戲或退出遊戲。此處選單設定:1為開始遊戲,0為退出遊戲。假設玩家選擇1,開始遊戲。
首先要給出棋盤,然後電腦落子,(為了顯示結果此處列印棋盤),之後玩家落子,(列印棋盤),最後判斷輸贏。
若未出現輸贏結果,電腦再次落子,玩家也落子,如此迴圈。
假如棋盤已滿卻未論出輸贏,則視為平局。
電腦落子此處設定為生成隨機座標,玩家落子需要玩家輸入落子座標。
若玩家輸入非法座標,此處最好設定提醒,保證遊戲正常進行。
實現如下:
標頭檔案game.h
#ifndef __game_h__
#define __game_h__
#define _crt_secure_no_warnings 0
# 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 computer_move(char board[row][col], int row, int col); //電腦走
void player_move(char board[row][col], int row, int col); //玩家走
int is_full(char board[row][col], int row, int col); //判斷棋盤是否落滿
char is_win(char board[row][col], int row, int col); //判斷輸贏
#endif // __game_h__
test.c檔案
#include "game.h"
//定義遊戲選單
void menu()
void game()
; char ret = '0';
init_board(board, row, col); //棋盤的初始化
display_board(board, row, col); //列印棋盤
do printf("玩家走:\n");
player_move(board, row, col); //玩家走一步
display_board(board, row, col); //玩家走完後立即列印
ret = is_win(board, row, col); //判斷輸贏
} while (ret == ' '); //返回若為空,則遊戲繼續,迴圈。
if (is_win(board, row, col) == 'q') //返回q,平局。
else if (is_win(board, row, col) == 'x') //返回x,玩家贏。
else if (is_win(board, row, col) == '*') //返回*,電腦贏。 }
int main()
} while (input);
system("pause");
return 0;
}
遊戲執行檔案game.c
# include "game.h"
//初始化棋盤
void init_board(char board[row][col], int row, int col) }}
//列印棋盤
void display_board(char board[row][col], int row, int col)
else
printf("座標被占用,請重新輸入\n");
} else
printf("座標不合法,請重新輸入\n"); }}
//判斷棋盤是否落滿
//棋盤無空位,滿。
int is_full(char board[row][col], int row, int col)
{ int i = 0;
int j = 0;
for (i = 0; i試執行一下:
其實這個遊戲還是可以繼續擴充套件的,玩家選擇開始遊戲後,還可以設定遊戲難度供玩家選擇。容我再想想。
C語言 三子棋遊戲
用c語言第一次完成三子棋遊戲,感觸特別深刻。在寫 中我明白了,思路還有 風格的重要性,在這次 中發現,我們整理好邏輯想法 對寫 就不會有太多問題了 如下,若有改進的地方,還希望大家可以多多指點。include include include include define row 3 define c...
C語言三子棋遊戲
三子棋是一種只需要行 列 斜中任意一種情況三個相同棋子相連便勝利的遊戲。本程式中,要求玩家與電腦pk,棋盤座標用乙個二維陣列儲存起來,玩家通過鍵盤輸入座標落子,電腦通過srand和rand函式隨機產生座標落子。每次落子都需要判斷遊戲是否結束。1.遊戲選單,供使用者進入遊戲 2.建立初始化棋盤 3.列...
C語言 三子棋遊戲
今天,我們用c語言來寫乙個三子棋遊戲。在整個工程裡建立了三個檔案,分別為main.c game.c game.h,其中 main.c 用於放整個遊戲的框架 game.c與game.h組成玩遊戲的模組。如下 game.h define crt secure no warnings 1 include ...