C語言五子棋

2021-08-18 12:25:08 字數 1634 閱讀 7401

實戰五子棋:

思路: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演算法設計 ...