//玩家對戰
void
person()
//是否棋局已滿
else
if(count==row*col)
//交替到對手回合
exchangeturn();}}
computer.h
//局面價值
intgetsum
(char map[
][col]
)else
if(map[i]
[j]==
'x')}}
return sumx-sumo;
}//思考
void
think
(char map[
][col]
)//不能獲勝,落子在分數最多的地方
else
map[i]
[j]=
'x';
sum=
getsum
(map);if
(sum>maxsum)
}
map[i]
[j]=m;}}
} map[x]
[y]=
'x';
}void
computer()
//玩家落子
else
//清屏
system
("cls");
//列印棋局
displaymap
(map)
;//玩家落子後判斷是否已經分出勝負if(
iswin
(map)==1
)//是否棋局已滿
else
if(count==row*col)
//交替到對手回合
exchangeturn();}}
main.c
#include
#include
//棋局
char map[3]
[3];
//行列
int row=
3,col=3;
//棋子型別
char o=
'o',x=
'x',m=
' ';
//當前棋子型別
char nowtype=
'o';
//已落子數量
int count=0;
//初始化棋局
void
initmap
(char map[
][col])}
}//列印當前棋局
void
displaymap
(char map[
][col]
)printf
("\n ");
for(i=
0;i<
2*col+
1;i++
)printf
("\n");
for(i=
0;i)printf
("\n ");
for(j=
0;j<
2*col+
1;j++
)printf
("\n");
}}//獲取使用者輸入
void
getxy
(int
*i,int
*j)else}}
//交替下子
void
exchangeturn()
else
}//下子
void
setpiece
(char map[
][col]
,int i,
int j)
//判斷是否分出勝負,分別從橫豎斜三個方向數數
intiswin
(char map[
][col]
)else
if(map[i]
[j]==x)
if(map[j]
[i]==o)
else
if(map[j]
[i]==x)}if
(flagr==col||flagc==col||flagr==
(-col)
||flagc==
(-col))}
flagr=
0,flagc=0;
for(i=
0,j=
0;i,j++
)else
if(map[i]
[j]==x)
if(map[i]
[col-j-1]
==o)
else
if(map[i]
[col-j-1]
==x)}if
(flagr==col||flagc==col||flagr==
(-col)
||flagc==
(-col)
)else
}//輸出勝方
void
displaywinner()
//給局面打分的基礎表(站位分)
int score[3]
[3]=
,,};
//引入自定義標頭檔案
#include
"person.h"
#include
"computer.h"
intmain()
else
return0;
}
1、 其實棋類遊戲設計最重要的就是模擬下棋的過程。
2、 我們知道井字棋是雙方交替下子,一方執o,一方執x。
3、 比如o先下,玩家下完子後,我們判斷一下此時他是否已經獲勝(即是否出現橫或豎或兩斜線出現三子連珠的情況),沒有獲勝則判斷是否已經將棋局下滿子了,還是沒有的話,輪到x的回合。再次執行此步驟。
4、 了解了過程就自然好設計了。因為棋局比較簡單,我們用乙個二維字元陣列即可儲存。落子位置用座標(x,y),通過玩家輸入即可進行模擬。
C語言簡單遊戲程式設計學習入門之fluppybird
include include include include 遊戲地圖資訊,行 列 地圖 define row 15 define col 19 int map row col 玩家結構,橫座標 縱座標 下落速度 typedef struct player player player p 障礙物結...
C語言簡單遊戲程式設計學習入門之2048
include include include include include 過關數字 define win number 2048 定義地圖行 列 以及本身 define row 4 define col 4 int map row col 初始化地圖 void initializemap 列印...
C語言井字棋
include include include include 主要邏輯 使用者資料 棋盤 儲存使用者資料 正好對應3 3的乙個棋盤的九個資料點 每個裡面乙個x,y對應棋盤中的乙個填棋子的位置 struct point char map 14 14 struct point data 4 4 代表九...