原文:http://www.jiajiajia.club/blog/artical/146
package fir;
import java.awt.*;
import javax.swing.JPanel;
/**
* 有背景图片的Panel类
* @author tntxia
*/
public class BackgroundPanel extends JPanel {
private static final long serialVersionUID = -6352788025440244338L;
private Image image = null;
public BackgroundPanel(Image image) {
this.image = image;
}
// 固定背景图片,允许这个JPanel可以在图片上添加其他组件
protected void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
}
}
package fir;
/**
* 初始化
* @author Administrator
*/
public class Ready {
private int x;
private int y;
private int count;
public int getCount(){
return this.count;
}
/**
* 计算所有赢法种类
* @return
*/
public Ready(int x,int y){
this.x=x;
this.y=y;
count=initCount();
}
private int initCount(){
int count=0;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y-4; j++) {
count++;
}
}
// 横线上
for (int i = 0; i < x; i++) {
for (int j = 0; j < y-4; j++) {
count++;
}
}
// 斜线上
for (int i = 0; i < x-4; i++) {
for (int j = 0; j < y-4; j++) {
count++;
}
}
// 反斜线上
for (int i = 0; i < x-4; i++) {
for (int j = y-1; j > 3; j--) {
count++;
}
}
return count;
}
/**
* 初始化所有赢法
* @param c
* @return
*/
public boolean[][][] initChess(){
boolean wins[][][]=new boolean[15][15][this.count];
int count=0;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y-4; j++) {
for (int k = 0; k < 5; k++) {
wins[i][j + k][count] = true;
}
count++;
}
}
for (int i = 0; i < x; i++) {
for (int