有自己的加入也有书本的代码,整合,需要的素材网上找的。
是人机对战,但是没有AI,所以这个五子棋游戏的玩法就有改变了,最短
时间内让电脑也就是白棋获胜就赢了。 (供学习 纪念之用) import javax.swing.*;
import javax.imageio.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.*;
import java.io.*;
import java.util.concurrent.ThreadLocalRandom;
public class Gobang2
{
//下面三个位图分别代表棋盘,黑棋,白棋
BufferedImage table;
BufferedImage black;
BufferedImage white;
//当鼠标移动时的选择框
BufferedImage selected;
//定义棋盘的大小
private static int BOARD_SIZE=15;
//定义棋盘宽,高多少个像素
private final int TABLE_WIDTH=500;
private final int TABLE_HEIGHT=501;
//定义棋盘坐标的像素值和棋盘数组之间的比率
private final int RATE=TABLE_WIDTH/BOARD_SIZE;
//定义棋盘坐标的像素值和棋盘数组之间的偏移距离
private final int X_OFFSET=12;
private final int Y_OFFSET=9;
//定义一个二维数组来当棋盘
private int[][] board=new int[BOARD_SIZE][BOARD_SIZE];
//五子棋游戏窗口
JFrame f=new JFrame("星星*五子棋游戏 玩法:在最短时间内让白棋赢");
//五子棋游戏棋盘对应的Canvas组件
ChessBoard chessBoard=new ChessBoard();
//当前选中点的坐标
private int selectedX=-1;
private int selectedY=-1;
private Font fontGameOver = new Font("宋体", Font.BOLD, 50);
public void init()throws Exception
{
ThreadLocalRandom rand= ThreadLocalRandom.current();
table=ImageIO.read(new File("board.jpg"));
black=ImageIO.read(new File("black.gif"));
white=ImageIO.read(new File("white.gif"));
selected=ImageIO.read(new File("select.gif"));
//把每个元素赋值为0代表没有棋子
for(int i=0;i=1&&board[x][y]==board[--x][--y])
{
count4++;
}
x=a;
y=b;
while(y=1&&board[x][y]==board[--x][--y])
{
count4++;
}
x=a;
y=b;
while(y=0)
{
g.drawImage(selected,selectedX*RATE+X_OFFSET,
selectedY*RATE+Y_OFFSET,null);
}
//遍历数组,绘制棋子
for(int i=0;i |