五子棋 C語言

2021-10-12 04:50:18 字數 2828 閱讀 9494

五子棋遊戲程式(較高難度+有加分)(設計分值: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 用於表示棋盤上落子點的座...