如何變現乙個三子棋遊戲呢?
1.首先每乙個遊戲都需要有乙個選單函式進行選擇遊戲的開始以及結束。
2.我們先分析下三子棋遊戲的棋盤是乙個3x3的九宮格,因此需要建立乙個3x3的陣列。
3.設定乙個初始化函式,對陣列進行初始化,將所有的下棋位置初始為空。
4.建立乙個列印棋盤函式,顯示棋盤。
5.設定乙個玩家下棋函式,讓玩家進行下棋。
6.設定乙個電腦下棋,讓電腦進行下棋,利用隨機數生成。
7.設定乙個判斷函式,判斷輸贏以及平局。
8.設定乙個遊戲主體函式,將以上執行功能的函式聯絡起來。
9.最後設定乙個設定乙個測試函式,呼叫遊戲主體函式,這樣就基本完成寫乙個三子棋小遊戲的基本操作了。
//選單函式
void menu()
選單函式主要是選擇1進行遊戲,選擇0結束遊戲。
//初始化話陣列
void initboard(char board[row][col], int row, int col)
}}
設定初始化陣列將3x3的陣列全初始化為空,相當於下棋開始棋盤上棋盤上沒有棋子。
//列印棋盤
void displayboard(char board[row][col], int row, int col)
}printf("\n");
if (j < row - 1)}}
printf("\n");
}
利用for迴圈進行列印棋盤,第乙個大的for迴圈是列印每一列,第二大的for迴圈是列印每一行。
//玩家下棋
void playermove(char board[row][col], int row, int col)
else
}else}}
判斷所要下棋的位置是否為空,如果為空則可以正確下棋否則輸出所下座標不合法,重新進行輸入座標下棋
//電腦下棋
void computermove(char board[row][col], int row, int col)}}
利用隨機函式,判斷棋盤為空的地方自動生成隨機數。
//判斷輸贏
char checkwin(char board[row][col], int row, int col)
//判斷豎列
if ((board[0][i] == board[1][i]) && (board[1][i] == board[2][i]))
//判斷斜
if ((board[0][0] == board[1][1]) && (board[1][1] == board[2][2]))
if ((board[0][2] == board[1][1]) && (board[1][1] == board[2][0]))}}
三子棋在判斷輸贏時,是判斷是否有顏色相同的三個棋子連城一條直線,因此需要分別進行橫行,豎行,斜行進行判斷。
//遊戲主體
void game()
if (ret == 'b')
if (count == 5)
computermove(board, row, col);
if (ret == 'a')
if (ret == 'b')
displayboard(board, row, col);}}
呼叫各功能模組函式進行遊戲執行步驟,設定返回值如果返回a表示玩家贏,返回b表示電腦贏,如果count = 5平局(因為是3x3的棋盤,所以無論是玩家還是電腦最多只能下5次棋)
//測試函式
void test()
} while (input);
}
利用switch case設定遊戲選擇項,呼叫遊戲主體。
小遊戲完整**:
#ifndef _game_h_
#define _game_h_
#include
#include
#include
#define row 3
#define col 3
void initboard(char board[row][col], int row, int col);//初始化陣列
void displayboard(char board[row][col], int row, int col);//列印棋盤
void playermove(char board[row][col], int row, int col);//玩家下棋
void computermove(char board[row][col], int row, int col);//電腦下棋
char checkwin(char board[row][col], int row, int col);//判斷輸贏
#endif
#define _crt_secure_no_warnings 1
#include"game.h"
//初始化話陣列
void initboard(char board[row][col], int row, int col)
}}//列印棋盤
void displayboard(char board[row][col], int row, int col)
}printf("\n");
if (j < row - 1)}}
printf("\n");
}/*int i = 0;
int j = 0;
for (i = 0; i < row; i++)
printf("\n");
}*/}//玩家下棋
void playermove(char board[row][col], int row, int col)
else
}else
}}//電腦下棋
void computermove(char board[row][col], int row, int col)
}}//判斷輸贏
char checkwin(char board[row][col], int row, int col)
//判斷豎列
if ((board[0][i] == board[1][i]) && (board[1][i] == board[2][i]))
//判斷斜
if ((board[0][0] == board[1][1]) && (board[1][1] == board[2][2]))
if ((board[0][2] == board[1][1]) && (board[1][1] == board[2][0]))}}
#define _crt_secure_no_warnings 1
#include "game.h"
//選單函式
void menu()
//遊戲主體
void game()
if (ret == 'b')
if (count == 5)
computermove(board, row, col);
if (ret == 'a')
if (ret == 'b')
displayboard(board, row, col);
}}//測試函式
void test()
} while (input);
}int main()
執行結果:
C語言編寫三子棋
首先,採用分檔案形式編寫遊戲,可以使程式結構更加清晰 編寫思路如下 第一在main.c中寫出遊戲的主要框架,包括有初始介面的選單項和main函式 遊戲主框架 include game.h void menu int main printf byebye n system pause 第二在game....
C語言 簡單實現三子棋
今天我們來完成乙個三子棋的小遊戲。遊戲要實現 在3 3的棋盤上進行人機對弈,玩家輸入棋盤座標下棋,電腦通過產生隨機數下棋。最終,誰先完成三子相連,就是贏家。若在棋盤下滿還未決出勝負,那就是平局。為了完成這個遊戲,我們要建立三個檔案,分別為chessboard.h chessboard.c test....
C語言簡單實現三子棋
首先我們在vs2013中建立乙個test.c和game.c檔案,再建立乙個test.h標頭檔案,其中game.c檔案裡面編寫三子棋的主要功能實現,test.c檔案用於三子棋功能測試,test.h檔案用於宣告函式。函式解釋 memset void dest,intc,size tcount dest為...