Java五子棋单机版源码分享五子棋单机版源码分享
主要为大家分享了Java五子棋单机版源码,JavaGUI编写单机版五子棋,具有一定的参考价值,感兴趣的小伙
伴们可以参考一下
初学JavaGUI编程,就写了一个小游戏–五子棋。
目前只实现了单机版,任何事情都是从简制作的,有问题请大牛们不吝指教啊。
此处的棋盘和棋子都未用图片,全部都是使用Java中的Graphics画出来的。
源码已提交至GitHub,点击此处GitHub源码
以下列出其中的五子棋类:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class FiveInARow extends JFrame implements MouseListener {
Vector v = new Vector(); //所有的每步走棋信息
Vector white = new Vector(); //白方走棋信息
Vector black = new Vector(); //黑方走棋信息
boolean b; //用来判断白旗还是黑棋
int whiteCount, blackCount; //计算悔棋步数
int w = 25; //间距大小
int px = 100, py = 100; //棋盘的大小
int pxw = px + w, pyw = py + w;
int width = w * 16, height = w * 16;
int vline = width + px; //垂直线的长度
int hline = height + py; //水平线的长度
/**
* 构造方法
*/
public FiveInARow() {
super("单机版五子棋");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭按钮
Container con = this.getContentPane();
con.setLayout(new BorderLayout());
this.addMouseListener(this);//添加监听
this.setSize(600, 600);//设置窗体大小
this.setBackground(Color.orange);
this.setVisible(true);
}
/**
* 画棋盘和棋子
* @param e
*/
public void paint(Graphics g) {
g.clearRect(0, 0, this.getWidth(), this.getHeight());//清除画板
g.setColor(Color.BLACK);//绘制网格颜色
g.drawRect(px, py, width, height);//网格大小
g.drawString("单机版五子棋小游戏,右击可以悔棋,欢迎使用", 180, 70);
for (int i=0; i<15; i++) {
g.drawLine(pxw+i*w, py, pxw+i*w, hline);//每条横线和竖线
g.drawLine(px, pyw+i*w, vline, pyw+i*w);
}
for (int x=0; x<v.size(); x++) {
String str = (String)v.get(x);
String tmp[] = str.split("-");
int a = Integer.parseInt(tmp[0]);
int b = Integer.parseInt(tmp[1]);
a = a * w + px;
b = b * w + py;
if (x%2 == 0) {
g.setColor(Color.WHITE);
} else {
g.setColor(Color.BLACK);