五子棋遊戲程式(較高難度+有加分)(設計分值:20-30分)
應用c語言編寫程式,可以在計算機上實現二人對弈五子棋功能。
功能要求:
(1)歡迎介面生成、遊戲介面生成;
(2)游標移動和落子顯示;
(3)判斷勝負、悔棋功能,提供音效;
(4)綜合應用結構體、陣列、按鍵處理和圖形程式設計等程式設計方法。
§10.2演算法設計
§10.4程式分析
#include#include#includeint qipan[21][21];
int color=0;//0表示黑棋(圓圈),1表示白棋
int itemp = 0,jtemp = 0,counttemp = 0;
int colorflag = 0;
void print()
//第20列
if(qipan[i-1][j-1]==1)
printf("●");
if(qipan[i-1][j-1]==0)
printf("○");
if(qipan[i-1][j-1]==2)
printf("┐ ");
printf("\n");
}//第2-19行
if(i<=19 && i>=2)
//第20列
if(qipan[i-1][j-1]==1)
printf("●");
if(qipan[i-1][j-1]==0)
printf("○");
if(qipan[i-1][j-1]==2)
printf("┤ ");
printf("\n");
}//第20行
if(i==20)
if(qipan[i-1][j-1]==1)
printf("●");
if(qipan[i-1][j-1]==0)
printf("○");
if(qipan[i-1][j-1]==2)
printf("┘ ");
printf("\n");}}
}void gotoxy(handle hout,int x,int y)
void win()
else if(colorflag==1)
exit(0);}}
else
}//縱向可以贏
itemp = i;
jtemp = j;
counttemp = 1;
while((++itemp<20 )&&(counttemp!=5))
else if(colorflag==1)
exit(0);}}
else
}//斜向,從左上到右下方向檢查
itemp = i;
jtemp = j;
counttemp = 1;
while((++itemp<20 )&&(++jtemp<20 )&&(counttemp!=5))
else if(colorflag ==1)
exit(0);}}
else
}//斜向,從右上到左下方向檢查
itemp = i;
jtemp = j;
counttemp = 1;
while((++itemp>=0 )&&(--jtemp>=0)&&(counttemp!=5))
else if(colorflag==1)
exit(0);}}
else}}
}}}void getxy(handle hout,int*i,int*j)
switch(ch)
if (*i<0) *i=20+*i;
if (*i>19) *i=20-*i;
if (*j<0) *j=20+*j;
if (*j>19) *j=20-*j;
m=*j;n=*i;
gotoxy(hout,m*2,n);
}while (ch!=13);
}int main()
else
gotoxy(hout,41,2);
i=0;
j=0;
getxy(hout,&i,&j);
i++;
j++;
if((2 != qipan[i-1][j-1]))
qipan[i-1][j-1]=color;//將該位置棋子屬性給棋盤
color=(color+1)%2;//獲取棋盤棋子屬性
//根據棋盤對應位置屬性,繪製最新狀態的棋盤
gotoxy(hout,0,0);
print();
win();
system("cls");
}return 0;
}
§10.5效果截圖1.開始
2.勝利
3.已有子
C語言五子棋
實戰五子棋 思路 1.棋盤由邊緣數字和橫豎線及棋子構成 2.先init初始化,畫出棋盤的數字邊緣,為了第一次下棋的時候能看見棋盤樣子,其實可以封裝起來用 3.落子之後呼叫draw cross畫出整個棋盤,依舊是先畫邊緣數字,再畫棋子,一行一行畫 4.判斷輸贏。include include defi...
五子棋(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 用於表示棋盤上落子點的座...