C語言 day05 五子棋專案開發

2021-08-21 17:59:27 字數 4008 閱讀 5259

五子棋

開發工具:vs2012 標頭檔案:

第一步:畫出棋盤。

第二步:黑白雙方落子

第三步:判斷是不是已經五子連線
#include#include#include#includevoid initboard();//棋盤的初始化 void printboard();//棋盤的列印 void startgame();//開始遊戲

void whiteplayer();//白色 void blackplayer();//黑色

int checkwin(int x, int y);//檢測遊戲勝負 //判斷水平方向-----左邊

while (temp == board[x][y - i] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷水平方向---右邊

i = 1;

while (temp == board[x][y + i] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷垂直方向----上方

i = 1;

count = 1;

while (temp == board[x - i][y] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷垂直方向----下方

i = 1;

while (temp == board[x + i][y] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷斜著的左上方----上方 i = 1;

j = 1;

count = 1;

while (temp == board[x - i][y - j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷斜著的左上方----下方

i = 1;

j = 1;

while (temp == board[x + i][y + j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷斜著的右上方----上方 i = 1;

j = 1;

count = 1;

while (temp == board[x - i][y + j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

//判斷斜著的----右下方

i = 1;

j = 1;

while (temp == board[x + i][y - j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

第四步:優化

int displaywhowin();//顯示誰贏了 第五步:由乙個轉變為多檔案程式設計---extern

#include #include #include #include ///全域性變數///

char board[20][20];

int x, y;//代表是棋盤的行x和列y乙個交點

///函式的宣告/// void initboard();//棋盤的初始化

void printboard();//棋盤的列印

void pos(int x, int y);//設定游標的位置

void printnum();//設定列印的棋盤數字 void whiteplayer();//白色

void blackplayer();//黑色

int displaywhowin();//顯示誰贏了

void startgame();//開始遊戲

int checkwin(int x, int y);//檢測遊戲勝負

///函式的使用/// //設定游標的位置-----了解

void pos(int x, int y)

//設定列印的棋盤數字 void printnum()

for (i = 0; i < 20; i++)

}//棋盤的初始化 void initboard() }

}//棋盤的列印

void printboard() }

board[i][j]

= '*';

i++)

//printf("\n");

pos(2, 1+i);

for(j=0;j <20;j++)

int displaywhowin()

if (rev == 2)

return overrev; }

//白色

void whiteplayer() else

}printboard(); }

//黑色

void blackplayer() else

scanf_s("%d%d", &x, &y); }

printboard(); }

//檢測遊戲勝負

int checkwin(int x, int y) else }

}} }

}whowin = 2;

// //printf("黑色贏了");

//判斷水平方向---右邊

i = 1;

while (temp == board[x][y + i] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5) else else }

}//判斷垂直方向----下方

i = 1;

while (temp == board[x + i][y] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5)

else }

}whowin = 2;

// //printf("黑色贏了");

//判斷斜著的左上----上方 i = 1;

j = 1;

count = 1;

while (temp == board[x - i][y - j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5) else }

}//判斷斜著的左上的----下方

i = 1;

j = 1;

while (temp == board[x + i][y + j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5) else }

}//判斷斜著的右上----右上方

i = 1;

j = 1;

count = 1;

while (temp == board[x - i][y + j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5) else }

}//判斷斜著的----右下方

i = 1;

j = 1;

while (temp == board[x + i][y - j] && x >= 0 && x <= 20 && y >= 0 && y <= 20 && count < 5) else }

}whowin = 2;

// //printf("黑色贏了");

return whowin; }

void startgame()

system("cls");//不重複

blackplayer();

if (displaywhowin() == 1)

system("cls"); printboard(); /*

int temp;//1 2

temp = checkwin(x, y); //printf("temp = %d", temp); if (temp == 1)

*/ }

}int main()

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 用於表示棋盤上落子點的座...