Java版版AI五子棋游戏五子棋游戏
主要为大家详细介绍了Java版AI五子棋游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了java五子棋游戏的具体代码,供大家参考,具体内容如下
AI思路:通过判断棋盘上每个空位的分数,去分数最高的几个点,随机下棋
分数计算思路:能成5个说明能赢了,给最高分
不能成5个,对方能成5个,说明对方要赢了,给第二高分
能成活4,给第三高分
能成活3,给第四高分
能成冲4,给第五高分
能成冲3,给第六高分
能成活2,给第七高分
能成冲2,给第八高分
其他,给最低分
分数设定可自己定义。
因为是去年写的了,思路记得大概就是这样。最近根据书上写了个棋类游戏的设计框架,待完善后再发上来,应该会更新AI思
路
下面是去年写的AI五子棋的代码:
package FivechessClient;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
/**
*
* @ClassName: Game
* @Description: AI五子棋
* @author xiaoxiong
* @date 2015年7月3日 下午8:59:02
*
*/
public class Game {
BufferedImage table;
BufferedImage black;
BufferedImage white;
BufferedImage selected;
/**
* 棋子个数
*/
private static int BOARD_SIZE = 15;
/**
* 棋盘宽高
*/
private final int TABLE_WIDTH = 535;
private final int TABLE_HEIGHT = 536;
/**
* 棋盘15等分
*/
private final int RATE = TABLE_WIDTH / BOARD_SIZE;
/**
* 棋盘外边距
*/
private final int X_OFFSET = 5;
private final int Y_OFFSET = 6;
/**
* 棋盘
*/
private int[][] board = new int[BOARD_SIZE][BOARD_SIZE];