我與C語言的點滴(8) 三子棋遊戲

2021-08-29 02:01:51 字數 2602 閱讀 6680

在設計遊戲之前,自己對遊戲的邏輯和步驟要非常清楚,這一點是非常重要的。

三子棋遊戲它的邏輯也並不是很難。

電腦與玩家下棋,假設電腦先落子,玩家後落子,如此交替進行。直到有一方在行、列、左對角線、右對角線,四個方向的其中一種落子先滿,這一方獲勝。若棋盤已滿卻並未有以上情況,則視為平局。

在設計程式之初,首先要有選單供玩家選擇:選擇開始遊戲或退出遊戲。此處選單設定: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 ...