程式思想
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 ...