三子棋(五子棋)---c語言
用c語言來實現三子棋和五子棋
//寫出整個程式的大概個構造
//建立一個二維陣列來表示棋盤
//因為棋盤是一個全域性變數,所以我們在其前面加上g_,表示這個變數是全域性變數
//因為此處建立陣列的時候建立了一個3*3的二維陣列,在之後進行修改時會比較麻煩
//所以我們用巨集定義兩個常量來表示陣列的大小
//之後進行修改時對巨集進行修改即可
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//注意此處巨集表示時,後面是不加冒號的
#define ROW 3
#define COL 3
} void CompMove() { //5.電腦進行落子 //這個電腦的難度不是一般的底,能不能贏完全隨緣 //我們產生一個隨機數,然後判定一下能否放入 printf(“電腦要開始落子了!!!\n”); int row = 0; int col = 0; while (1) { //用rand()函式來產生隨機數 //用ROW和COL來給它取餘,則它的範圍為[0,2] row = rand() % ROW; col = rand() % COL; if (g_chess_board[row][col] == ’ ‘) { //判斷是否空格,當為空格時賦值為’o’ g_chess_board[row][col] = ‘o’; break; } else { continue; } } } int main()
{ char winner = ’ '; //此處呼叫一個init()函式對棋盤進行一次初始化 Init(); //3.先列印一個棋盤 while (1) { Print(); //呼叫一下PlayerMove()函式,來讓玩家進行下棋 PlayMove(); //呼叫一下WhoWin函式,來判斷玩家是否獲勝 winner = WhoWin(); if (winner != ’ ') { //有三種情況,遊戲是結束的,和棋.玩家勝利,或者電腦勝利 //當不滿足這三種情況時,遊戲是繼續的 break; } //5.計算機再進行落子,判斷計算機是否獲勝
winner = WhoWin();
if (winner != ' ')
{
//有三種情況,遊戲是結束的,和棋.玩家勝利,或者電腦勝利
//當不滿足這三種情況時,遊戲是繼續的
break;
}
}
if (winner == 'x')
{
printf("玩家獲勝!!\n");
}
else if (winner == 'o')
{
printf("電腦獲勝\n");
}
else if (winner == 'q')
{
printf("和棋\n");
}
//若無法判定兩者誰取勝,就回到第三步,再次列印棋盤
system("pause");
return 0;
}