五子棋
開發工具: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 用於表示棋盤上落子點的座...