實戰五子棋:
思路:1. 棋盤由邊緣數字和橫豎線及棋子構成;
2. 先init初始化,畫出棋盤的數字邊緣,為了第一次下棋的時候能看見棋盤樣子,其實可以封裝起來用;
3. 落子之後呼叫draw_cross畫出整個棋盤,依舊是先畫邊緣數字,再畫棋子,一行一行畫;
4. 判斷輸贏。
#include
#include
#definenum 10
#defineblack 1
#definewhite 2
intcross[num][num];//存入白棋和黑棋的座標
intdraw_num[num]=;//邊際
int x,y;
voidinit_draw()elseif(cross[i][j]==black)elseelseif(cross[x][y]==white||cross[x][y]==black)elseelse if(r==-1)else if(r==-2)elseelse if(r==-1)else if(r==-2){
printf("已經存在棋子!");
intwho_can_win(int color,int x,int y){
int count = 1;
int i,j;
for(i=x,j=y-1;color==cross[i][j]&&j>=0;j--)
count++;
for(i=x,j=y+1;color==cross[i][j]&&jcount++;
if(count==5)
return 1;
count = 1;
for(i=x-1,j=y;color==cross[i][j]&&i>=0;i--)
count++;
for(i=x+1,j=y;color==cross[i][j]&&icount++;
if(count==5)
return 1;
count = 1;
for(i=x-1,j=y-1;color==cross[i][j]&&i>=0;i--,j--)
count++;
for(i=x+1,j=y+1;color==cross[i][j]&&icount++;
if(count==5)
return 1;
count = 1;
for(i=x-1,j=y+1;color==cross[i][j]&&i>=0;i--,j++)
count++;
for(i=x+1,j=y-1;color==cross[i][j]&&icount++;
if(count==5)
return 1;
return 0;
intmain(){
init_draw();
while(1){
who_can_start(1);
if(who_can_win(white,x,y)){
printf("白方獲取勝利!\n");
return 0;
who_can_start(2);
if(who_can_win(black,x,y)){
printf("黑方獲取勝利!\n");
return 0;
return 0;
五子棋(C語言)
問題描述 在乙個10 10的棋盤中進行人機對戰 在這之前寫了一篇三子棋的 五子棋與其原理相似,主要區別在於判斷輸贏上,10 10的棋盤,贏的條件是每行,每列,或正反對角線上有五個連續相同的棋子。標頭檔案 fivechess.h ifndef fivechess h define fivechess ...
C語言五子棋
include 呼叫圖形庫函式 include getchar 標頭檔案 include 標準輸入輸出標頭檔案 void game void play int judge int a,int b int flag 0 用於記錄和區分棋手1或2 int board 20 20 用於表示棋盤上落子點的座...
五子棋 C語言
五子棋遊戲程式 較高難度 有加分 設計分值 20 30分 應用c語言編寫程式,可以在計算機上實現二人對弈五子棋功能。功能要求 1 歡迎介面生成 遊戲介面生成 2 游標移動和落子顯示 3 判斷勝負 悔棋功能,提供音效 4 綜合應用結構體 陣列 按鍵處理和圖形程式設計等程式設計方法。10.2演算法設計 ...