C語言簡單遊戲程式設計入門之井字棋

2021-10-02 23:56:20 字數 3185 閱讀 8867

//玩家對戰 

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 代表九...