資源簡介
五子棋的人機對弈的實現,其編程語言是 java,帶gui界面,這適合AI的初學者下載學習

代碼片段和文件信息
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Container;
import?java.awt.Graphics;
import?java.awt.Graphics2D;
import?java.awt.RadialGradientPaint;
import?java.awt.RenderingHints;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseListener;
import?java.awt.geom.Ellipse2D;
import?java.awt.image.BufferedImage;
import?java.io.File;
import?java.io.IOException;
import?java.util.Vector;
import?java.util.regex.Matcher;
import?java.util.regex.Pattern;
import?javax.imageio.ImageIO;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
public?class?fivechess?extends?Jframe?implements?ActionListener{
JButton?back=new?JButton(“悔棋“);
????JButton?start=new?JButton(“開始“);
????JButton?game=new?JButton(“中級難度“);
????JButton?game2=new?JButton(“高級難度“);
????GameBoard?gb=new?GameBoard();
????JPanel?pb=new?JPanel();
????JPanel?pg=new?JPanel();
public?fivechess(){
pb.add(start);
pb.add(back);
pb.add(game);
pb.add(game2);
setLayout(new?BorderLayout());
add(pbBorderLayout.NORTH);
add(pg);
????gb.setOpaque(true);
????add(gb);
????back.addActionListener(this);
????start.addActionListener(this);
????game.addActionListener(this);
????game2.addActionListener(this);
????setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
????setSize(526549);
????setLocation(400100);
}
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
fivechess?f=new?fivechess();
f.settitle(“五子棋“);
f.setVisible(true);
}
public?class?GameBoard?extends?JPanel?implements?MouseListener{
public?BufferedImage?bgImage=null;//背景圖片
public?int?row=14;//棋盤行數
public?int?col=14;//棋盤列數
public?int?length=30;//每個格子的大小
public?int?edgedis=30;//邊距
public?int[][]?ChessBoard=new?int[row+1][col+1];//棋子代表的二維數組,其中0代表沒有落子1代表黑子2代表白子
//棋局判斷,其中為有可能出現五子連線的類型,并判分,分數d額合理不合理影響了智能程度*代表了有想相同顏色的棋子,O為空#代表被堵住了
//一共32種棋型
public?String[]?type={“UUUUU“//勝利
???????“OUUUUO““UOUUUU“//活四
???????“OUUUUC““CUUUUO““CUOUUU““CUUUOU““CUUOUU““UUOUUC““UUOUUC““UUUOUC“//眠四
???????“OOUUUOO““OUUUO“
???????“COUUUOO““COOUUUO““COUUUOO““OUUUOOC““OOUUUOC““OUUUOOC“//活三和上一個評分差別不大
???????“OUOUUO““OUUOUO“//活三
???????“CUUUOO““OOUUUC“
???????“OUOUUC““CUUOUO““OUUOUC“//眠三
???????“OOOUUOOO““OOUUOO““OUUO““OOUOUOO““OUOOUO“//活二
???????“OOOUUC““CUUOOO““OOUOUC““CUOUOO“//眠二
???????“OOOOUOOOO““OOUOO““OUO“//都為空白
???????};
public?int[]?score={10000000???//勝利
?????900000850000//活四
?????80008000800080008000800080008000//眠四
?????7500?7500?//活三
?????720072007200720072007200//活三
?????50005000
?????30003000//眠三
?????250025002500//眠三
?????100010001000800800
?????500500500500
?????805020
?????};
?in
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-08?09:06??chess\
?????文件?????????301??2017-11-19?19:05??chess\.classpath
?????文件?????????381??2017-11-19?19:05??chess\.project
?????目錄???????????0??2017-12-08?09:06??chess\.settings\
?????文件?????????598??2017-11-19?19:05??chess\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2017-12-08?09:06??chess\bin\
?????文件???????13197??2017-12-08?00:23??chess\bin\fivechess$GameBoard.class
?????文件????????2148??2017-12-08?00:23??chess\bin\fivechess.class
?????文件???????44985??2017-11-20?11:57??chess\bin\wuziqi.jpg
?????目錄???????????0??2017-12-08?09:06??chess\src\
?????文件???????18340??2017-12-08?00:23??chess\src\fivechess.java
?????文件???????44985??2017-11-20?11:57??chess\src\wuziqi.jpg
評論
共有 條評論