資源簡介
壓縮包內(nèi)含代碼與可執(zhí)行jar包,直接idea打開就可以運(yùn)行;
1.在jdk1.8環(huán)境下工作,用IDEA開發(fā)的JPanel窗口程序
2.功能主要為人機(jī)對(duì)戰(zhàn),支持悔棋,支持電腦先行(電腦先行一般很難贏它),支持重新開始
3.該五子棋AI使用了五元組的五子棋算法,以五個(gè)一組將棋盤分為一個(gè)個(gè)橫豎斜的數(shù)組,計(jì)算各個(gè)組的權(quán)重,并不是用的極大極小值剪枝算法,算是一種新的思路,但是這個(gè)AI很強(qiáng)!大家都知道黑棋先手必勝,所以黑棋先手的情況下只要認(rèn)真還是能贏的,但是讓AI先行,就不好贏了,我水平很低,下了幾把目前沒贏過。
1.在jdk1.8環(huán)境下工作,用IDEA開發(fā)的JPanel窗口程序
2.功能主要為人機(jī)對(duì)戰(zhàn),支持悔棋,支持電腦先行(電腦先行一般很難贏它),支持重新開始
3.該五子棋AI使用了五元組的五子棋算法,以五個(gè)一組將棋盤分為一個(gè)個(gè)橫豎斜的數(shù)組,計(jì)算各個(gè)組的權(quán)重,并不是用的極大極小值剪枝算法,算是一種新的思路,但是這個(gè)AI很強(qiáng)!大家都知道黑棋先手必勝,所以黑棋先手的情況下只要認(rèn)真還是能贏的,但是讓AI先行,就不好贏了,我水平很低,下了幾把目前沒贏過。

代碼片段和文件信息
package?fiveBord;
public?class?Chessman?extends?DrawChessBoard{
????private?int?color;??????//1-white,0-black
????private?boolean?placed?=?false;
????private?int?stepNum?=?0;
????private?int?computerPieceX?=?0;
????private?int?computerPieceY?=?0;
????private?int?score;??????????//對(duì)該位置的打的分?jǐn)?shù)
????public?Chessman(int?colorboolean?placedint?stepNumint?computerPieceXint?computerPieceY?int?score){
????????this.color=color;
????????this.placed=placed;
????????this.stepNum=stepNum;
????????this.computerPieceX=computerPieceX;
????????this.computerPieceY=computerPieceY;
????????this.score=score;
????}
????public?boolean?getPlaced()?{
????????return?placed;
????}
????public?void?setPlaced(boolean?placed)?{
????????this.placed?=?placed;
????}
????public?int?getColor()?{
????????return?color;
????}
????public?void?setColor(int?color)?{
????????this.color?=?color;
????}
????public?int?getStepNum()?{
????????return?stepNum;
????}
????public?void?setStepNum(int?stepNum)?{
????????this.stepNum?=?stepNum;
????}
????public?int?getComputerPieceX()?{
????????return?computerPieceX;
????}
????public?void?setComputerPieceX(int?computerPieceX)?{
????????this.computerPieceX?=?computerPieceX;
????}
????public?int?getComputerPieceY()?{
????????return?computerPieceY;
????}
????public?void?setComputerPieceY(int?computerPieceY)?{
????????this.computerPieceY?=?computerPieceY;
????}
????public?int?getScore()?{
????????return?score;
????}
????public?void?setScore(int?score)?{
????????this.score?=?score;
????}
????//電腦落子
????public?Chessman?computerPiece(int?computerColorChessman[][]?cm){
????????//每次都初始化下score評(píng)分?jǐn)?shù)組
????????int[][]?chessboard?=?new?int[ROWS][ROWS];???//與界面棋盤對(duì)應(yīng),0代表空,-1代表機(jī)器,1代表人類
????????int[][]?score?=?new?int[ROWS][ROWS];????????//每個(gè)位置得分
????????for(int?i?=?0;?i??????????????for(int?j?=?0;?j?????????????????chessboard[i][j]?=?0;
????????????????if(cm[i][j]!=null?&&?cm[i][j].getColor()==BLACK){
????????????????????chessboard[i][j]?=?1;
????????????????}
????????????????if(cm[i][j]!=null?&&?cm[i][j].getColor()==WHITE){
????????????????????chessboard[i][j]?=?-1;
????????????????}
????????????????score[i][j]?=?0;
????????????}
????????}
????????//每次機(jī)器找尋落子位置,評(píng)分都重新算一遍(雖然算了很多多余的,因?yàn)樯洗温渥訒r(shí)候算的大多都沒變)
????????//先定義一些變量
????????int?humanChessmanNum?=?0;???//五元組中的黑棋數(shù)量
????????int?machineChessmanNum?=?0;?//五元組中的白棋數(shù)量
????????int?tupleScoreTmp?=?0;??????//五元組得分臨時(shí)變量
????????int?goalX?=?-1;?????//目標(biāo)位置x坐標(biāo)
????????int?goalY?=?-1;?????//目標(biāo)位置y坐標(biāo)
????????int?maxScore?=?-1;??//最大分?jǐn)?shù)
????????//1.掃描橫向的15個(gè)行
????????for(int?i?=?0;?i?15;?i++){
????????????for(int?j?=?0;?j?11;?j++){
????????????????int?k?=?j;
????????????????while(k?
????????????????????if(chessboard[i][k]?==?-1)?machineChessmanNum++;
????????????????????else?if(chessboard[i][k]?==?1)humanChessmanNum++;
????????????????????k++;
????????????????}
??????????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-02-19?19:06??FiveBord\
?????目錄???????????0??2019-02-19?19:06??FiveBord\.idea\
?????文件?????????433??2019-02-19?16:53??FiveBord\.idea\FiveBord.iml
?????目錄???????????0??2019-02-19?19:02??FiveBord\.idea\artifacts\
?????文件?????????437??2019-02-19?19:02??FiveBord\.idea\artifacts\FiveBord_jar.xm
?????文件?????????384??2019-02-19?16:52??FiveBord\.idea\misc.xm
?????文件?????????275??2019-02-19?16:52??FiveBord\.idea\modules.xm
?????文件????????8915??2019-02-14?14:23??FiveBord\.idea\uiDesigner.xm
?????文件???????22056??2019-02-19?19:06??FiveBord\.idea\workspace.xm
?????文件?????????433??2019-02-14?14:09??FiveBord\FiveBord.iml
?????目錄???????????0??2019-02-19?19:06??FiveBord\out\
?????目錄???????????0??2019-02-19?19:06??FiveBord\out\artifacts\
?????目錄???????????0??2019-02-19?19:06??FiveBord\out\artifacts\FiveBord_jar\
?????文件??????199062??2019-02-19?19:06??FiveBord\out\artifacts\FiveBord_jar\FiveBord.jar
?????目錄???????????0??2019-02-19?18:28??FiveBord\out\production\
?????目錄???????????0??2019-02-19?18:29??FiveBord\out\production\FiveBord\
?????目錄???????????0??2019-02-19?18:29??FiveBord\out\production\FiveBord\me
?????文件??????????52??2019-02-19?18:29??FiveBord\out\production\FiveBord\me
?????目錄???????????0??2019-02-19?19:05??FiveBord\out\production\FiveBord\fiveBord\
?????文件????????4854??2019-02-19?18:29??FiveBord\out\production\FiveBord\fiveBord\Chessman.class
?????文件????????1248??2019-02-19?18:59??FiveBord\out\production\FiveBord\fiveBord\DrawChessBoard$1.class
?????文件????????1404??2019-02-19?18:59??FiveBord\out\production\FiveBord\fiveBord\DrawChessBoard$2.class
?????文件????????1268??2019-02-19?18:59??FiveBord\out\production\FiveBord\fiveBord\DrawChessBoard$3.class
?????文件????????9143??2019-02-19?18:59??FiveBord\out\production\FiveBord\fiveBord\DrawChessBoard.class
?????文件?????????898??2019-02-19?19:05??FiveBord\out\production\FiveBord\fiveBord\Main.class
?????目錄???????????0??2019-02-19?18:29??FiveBord\out\production\FiveBord\image\
?????文件??????204549??2019-02-19?18:29??FiveBord\out\production\FiveBord\image\chessboard.jpg
?????目錄???????????0??2019-02-19?18:28??FiveBord\src\
?????目錄???????????0??2019-02-19?18:28??FiveBord\src\me
?????文件??????????52??2019-02-15?10:28??FiveBord\src\me
?????目錄???????????0??2019-02-19?19:05??FiveBord\src\fiveBord\
............此處省略5個(gè)文件信息
- 上一篇:用java編寫的火柴游戲
- 下一篇:Android多級(jí)下拉列表菜單
評(píng)論
共有 條評(píng)論