小遊戲 三子棋(任意幾子棋)

2021-08-10 16:25:54 字數 3341 閱讀 3279

程式思想

1. 多檔案實現遊戲功能

2. 改變巨集定義即可改變棋盤大小以及棋子個數

3. test.c:功能的測試以及函式的呼叫

4. game.h : 包含標頭檔案的引用,函式的宣告

5. game.c : 各函式的功能的實現。

具體實現

1. 棋牌的設定以及棋盤的顯示

2. 玩家和電腦各自落子的實現

3. 輸贏的判定

**:

test.c

#define _crt_secure_no_warnings 1

#include

#include

#include

#include"game.h"

void game()

void menu()

int main()

} while (input);

return

0;}

game.c

#define _crt_secure_no_warnings 1

#include"game.h"

#include

//初始化棋盤

void init_board(char board[row][col], int row,int col)

}}//顯示棋盤

void display_board(char board[row][col], int row, int col)

printf("\n");

for (j = 0; j < col; j++)

printf("\n");

}}//選擇第一次誰先落子(先落子優勢大)

void menu1()

//玩家落子

void player_move(char board[row][col], int row, int col)

else

}else

// 輸入的座標超出棋盤範圍

}}//電腦落子

void computer_move(char board[row][col], int row, int col)

}}//判斷棋盤是否為滿

static

int isfull(char board[row][col], int row, int col)

}return1;}

//判斷輸贏

char win_check(char board[row][col], int row, int col, char c)

if (j == col)

return c;

}// 檢測列

for (i = 0; i < col; i++)

if (j == row)

return c;

}// 檢測對角線

for (i = 0; i < row; i++)

if (i == row)

return c;

// 檢測對角線

for (i = 0; i < row; i++)

if (i == row)

return c;

if (isfull(board, row, col))

return

' ';

}void play_game(char board[row][col], int row, int col)

if (k == 3) //選擇3,第一次電腦先走

}if (ret == 'x')

else

if (ret == '*')

else

if (ret == 'p')

display_board(board, row, col);

}

game.h

#define _crt_secure_no_warnings 1

#ifndef __game_h__

#define __game_h__

#include

#include

#include

#define row 5

#define col 5

void init_board(char board[row][col],int row,int col);

void display_board(char board[row][col], int row, int col);

void play_game(char board[row][col], int row, int col);

void menu1();

void player_move(char board[row][col],int row,int col);

void computer_move(char board[row][col], int row, int col);

char win_check(char board[row][col], int row, int col);

int isfull(char board[row][col], int row, int col);

#endif //_game_h__

總結

1. 改變巨集定義即改變棋盤大小以及棋子個數

#define row  3

#define col 3

輸贏的判斷時應考慮幾種情況(以三子為例):

1)橫行三子相連為贏

2)豎列三子相連為贏

3)對角線三子相連為贏

4)出現平局

char win_check(char board[row][col], int row, int col, char c)

if (j == col)

return c;

}// 檢測列

for (i = 0; i < col; i++)

if (j == row)

return c;

}// 檢測對角線

for (i = 0; i < row; i++)

if (i == row)

return c;

// 檢測對角線

for (i = 0; i < row; i++)

if (i == row)

return c;

if (isfull(board, row, col))

return

' ';

}

小遊戲 三子棋

c語言 實現最簡單的三子棋 無人工智慧,介面簡單,手動輸入座標x x 如下 環境 vs2015 game.h pragma once ifndef game h define game h include include include include define row 3 define col...

三子棋小遊戲

簡單版的三子棋遊戲並不難,就只是運用二維陣列和呼叫各個函式。現在來分析遊戲的思路,首先在螢幕上列印乙個選擇遊戲的選單,這個簡單,就只需要呼叫乙個函式輸出就可以了,玩家選擇開始遊戲就進入遊戲函式,首先要初始化二維陣列,可以用memset 來進行初始化,然後在螢幕上列印出三子棋的棋盤,這個也簡單,知識簡...

三子棋小遊戲

game.h define crt secure no warnings ifndef game h define game h include include include include define rows 3 行數 define cols 3 列數void initboard char ...