要實現三子棋遊戲,首先要了解三子棋的規則,方便我們的程式設計和理解。
規則如下:
在九宮格棋盤上,只要將三個棋子走成一條線(橫、豎、對角線),對方就算輸了。
首先,我們的遊戲程式應該先有個選單頁面,這個選單頁面用來讓使用者操作選擇玩遊戲。我們可以用函式去實現,先建立乙個game.h作為標頭檔案,在定義乙個game.c檔案來實現具體的函式功能(建立棋盤,初始化棋盤等。),最後定義乙個main.c檔案主要編寫實現這個遊戲。
1.game.h(標頭檔案)
game.h(標頭檔案)
#ifndef __game_h__
#define __game_h__
#include#include#include#includevoid initboard(char board[3],int row,int col);
void showboard(char board[3],int row,int col);
void playermove(char board[3],int row,int col);
char iswin(char board[3],int row,int col);
void computermove(char board[3],int row,int col);
#endif//__game_h__
2.main.c(主函式)
#include "game.h"
void menu()
void game()
; initboard(board,3,3);
showboard(board,3,3);
while(1)
showboard(board,3,3);
computermove(board,3,3);
ret = iswin(board,3,3);
if(ret != ' ')
showboard(board,3,3);
} if(ret == 'q')
else if(ret == 'x')
else if(ret == 'o') }
int main()
}while(input);
return 0;
}
3.game.c
#include "game.h"
void initboard(char board[3],int row,int col)
} //memset(board,' ',row*col*sizeof(char));
}void showboard(char board[3],int row,int col)
} printf("\n");
if(i < row-1)
}printf("\n");
} }}void playermove(char board[3],int row,int col)
else
}else
}}static int isfull(char board[3],int row,int col)
} }return 1;//滿
}char iswin(char board[3],int row,int col)
//列if(board[0][i]==board[1][i] && board[1][i]==board[2][i]
&& board[0][i] != ' ')
if(board[0][0] == board[1][1] && board[1][1] ==board[2][2]
&& board[0][0] != ' ')
if(board[0][2] == board[1][1] && board[1][1] ==board[2][0]
&& board[0][0] != ' ')
//平局
if(isfull(board,row,col) == 1)
}//即沒有贏,也沒有平局
三子棋遊戲(c語言實現)
一說到寫個三子棋遊戲,首先我們得想到有個棋盤初始化和棋盤列印函式。接下來,玩遊戲階段,人玩遊戲,電腦玩遊戲,各寫乙個函式,每次下完棋都得判斷有沒有人贏了遊戲,若有人贏了,遊戲退出,否則繼續遊戲。在這過程中,還有可能棋盤滿 了,所以寫個判斷棋盤是否滿的的函式,棋盤滿了,程式結束,沒人贏,此時就平局。當...
C語言實現三子棋遊戲
三子棋是乙個簡單的人機對戰遊戲在3 3的棋盤上,只要有一方下的子連成一條直線則顯示遊戲獲勝,遊戲結束。例如 想要用c語言編寫三子棋其實不難,主要把程式設計的思想順利清楚就很容易實現了。編寫三子棋遊戲我們可以先建立乙個 game.h檔案作為標頭檔案,用來宣告函式和定義一些常亮,在定義乙個game.c檔...
C語言實現三子棋遊戲
先看一下最終效果 void chess board char arr row col int row,int col 初始化棋盤 void mimeograph char arr row col int row,int col 列印棋盤 void player char arr row col in...