問題描述:
3*3的棋盤中,只要一條線上出現三個一樣的棋子就獲勝(玩家或電腦);如果棋盤已經放滿還未出現三個棋子一條線則打成平手。
具體細節:
初始化棋盤(用空格初始化)
//初始化棋盤
void
initchess
(char chessbox[row]
[col])}
}
列印棋盤
//列印棋盤
void
printchess
(char chessbox[row]
[col]
)}
電腦落子(用o表示電腦落子)
//電腦落子(用o表示)
void
computermove
(char chessbox[row]
[col])}
}
玩家落子
//玩家落子(用x表示)
void
playermove
(char chessbox[row]
[col])if
(chessbox[row]
[col]
==' '
)printf
("該位置已有棋子,請重新輸入:");
}}
三個棋子一條線
//行
for(
int row =
0; row < row; row++)}
//列for
(int col =
0; col < col; col++
)}
if
(chessbox[0]
[0]!=
' '&&chessbox[0]
[0]== chessbox[1]
[1]&& chessbox[0]
[0]== chessbox[2]
[2])
if(chessbox[2]
[0]!=
' '&&chessbox[2]
[0]== chessbox[1]
[1]&& chessbox[2]
[0]== chessbox[0]
[2])
和棋
在這裡插入**片
//和棋 if(
isfull
(checkbox)
)
輸贏約定:
if
(iswinner
(chessbox)
=='x'
)
if
(iswinner
(chessbox)
=='o'
)
if
(iswinner
(chessbox)
=='a'
)
判斷棋盤是否放滿:
//判斷棋盤是否擺滿
//1表示滿;0表示不滿。
intisfullchess
(char chessbox[row]
[col])}
}return1;
}
源**:
#define _crt_secure_no_warnings
#include
#include
#include
#define row 3
#define col 3
//玩家落子(用x表示)
void
playermove
(char chessbox[row]
[col])if
(chessbox[row]
[col]
==' '
)printf
("該位置已有棋子,請重新輸入:");
}}//電腦落子(用o表示)
void
computermove
(char chessbox[row]
[col])}
}//初始化棋盤
void
initchess
(char chessbox[row]
[col])}
}//列印棋盤
void
printchess
(char chessbox[row]
[col])}
//判斷棋盤是否擺滿,擺滿返回1;未滿返回0
intisfullchess
(char chessbox[row]
[col])}
}return1;
}//約定:返回x代表玩家贏了;返回o代表電腦贏了;返回a代表和棋
char
iswinner
(char chessbox[row]
[col])}
//列for
(int col =
0; col < col; col++)}
//對角線
if(chessbox[0]
[0]!=
' '&&chessbox[0]
[0]== chessbox[1]
[1]&& chessbox[0]
[0]== chessbox[2]
[2])
if(chessbox[2]
[0]!=
' '&&chessbox[2]
[0]== chessbox[1]
[1]&& chessbox[2]
[0]== chessbox[0]
[2])
//和棋if(
isfullchess
(chessbox)
)return0;
}//開始一局遊戲
void
game()
;initchess
(chessbox)
;printf
("遊戲開始啦!\n");
printchess
(chessbox)
;while(1
)if(iswinner
(chessbox)
=='a'
)//電腦落子
computermove
(chessbox)
;//列印棋牌
printchess
(chessbox)
;//判斷勝負if(
iswinner
(chessbox)
=='o')if
(iswinner
(chessbox)
=='a')}
}int
menu()
intmain()
else
if(choice ==0)
else
}system
("pause");
return0;
}
執行結果:
C語言 三子棋遊戲
用c語言第一次完成三子棋遊戲,感觸特別深刻。在寫 中我明白了,思路還有 風格的重要性,在這次 中發現,我們整理好邏輯想法 對寫 就不會有太多問題了 如下,若有改進的地方,還希望大家可以多多指點。include include include include define row 3 define c...
C語言三子棋遊戲
三子棋是一種只需要行 列 斜中任意一種情況三個相同棋子相連便勝利的遊戲。本程式中,要求玩家與電腦pk,棋盤座標用乙個二維陣列儲存起來,玩家通過鍵盤輸入座標落子,電腦通過srand和rand函式隨機產生座標落子。每次落子都需要判斷遊戲是否結束。1.遊戲選單,供使用者進入遊戲 2.建立初始化棋盤 3.列...
C語言 三子棋遊戲
今天,我們用c語言來寫乙個三子棋遊戲。在整個工程裡建立了三個檔案,分別為main.c game.c game.h,其中 main.c 用於放整個遊戲的框架 game.c與game.h組成玩遊戲的模組。如下 game.h define crt secure no warnings 1 include ...