本程序适用于java初学者巩固类与对象、事件响应、awt包中各种工具的相关概念以及对逻辑能力的锻炼需要注意的有:①要加入java界面的重绘(基本原则)②由于玩家需要通过鼠标点击,计算机响应出棋子的位置,但却不能保证每次点击都正中棋盘点位,所以要有一定的误差范围③要保存更新棋盘上的棋子信息,因为棋盘格数是固定的故本例中采取最简单的数组
直接上代码:
分为三个类,同一包下,相信大家都能明白package Study0326;
public interface WZQConfig {
/*
* 起始位置X
*/
public static final int START_X = 60;
/*
* 起始位置Y
*/
public static final int START_Y = 60;
/*
* 五子棋盘线条数
*/
public static final int H_LINE = 15;
/*
* 五子棋盘竖线条数
*/
public static final int V_LINE = 15;
/*
* 五子棋盘格子大小
*/
public static final int SIZE = 60;
/*
* 储存棋子的x位置信息
*/
public static final int[][] bx = new int[17][17];
}package Study0326;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class LoginListener implements MouseListener, WZQConfig, ActionListener {
private int x, y;// 鼠标点击的位置
private int x1, y1, xx, yy;// 鼠标点击附近格子交点的坐标
private Graphics g;
private int a = 0, i = 0, j = 0, count1 = 0;// count统计当前下的棋子数
private String Str;// 定义全局变量获取按钮上的字符串
private JButton jbu1, jbu2;
private int GetX[] = new int[256];
private int GetY[] = new int[256];
WZQFrame ui;
public void setG(Graphics g) {
this.g = g;
}
public void setT(JButton b) {
jbu1 = b;
}
public void setU(WZQFrame u) {
ui = u;
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
x = e.getX();
y = e.getY();
x1 = Math.abs(x - START_X);