Hello 大家好!我们今天来尝试用java来编写一个斗兽棋的小游戏
可能有些人对斗兽棋比较陌生,这里简单的介绍一下。
https://baike.baidu.com/item/斗兽棋/896091?fr=aladdin
斗兽棋从写法上就比五子棋要复杂的多了
开始编程
第一步还是一样,import所需要的类库
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
`
斗兽棋还是继承JPanel父类
public class 斗兽棋 extends JPanel{
定义一些变量
private static final long serialVersionUID=1l;
private final int rows=7;
private final int cols=9;
private final int BLOCKWIDTH=50,BLOCKHEIGHT=50;
//这个说明一下,这是一个列表,给每一个动物赋值,后面用来判断吃子
private static HashMap<String,Integer> power;
private int clickcount;
//这个表示你要走的棋子
private MyIcon movingpiece;
//这个表示该哪一方走棋
private static String sidetomove;
//这里用的不是普通的JLabel,而是他的一个子类MyLabel
private static MyLabel[][] labels;
( 呈上MyLabel class
import javax.swing.JLabel;
public class MyLabel extends JLabel{
private static final long serialVersionUID = 1L;
//这里给MyLabel赋予两个参数,一个行数,一个列数。
protected int row;
protected int col;
public MyLabel(String a,int b) {
super(a,b);
}
})
//表示大本营是否被占据
private boolean campoccupied;
//表示movingpiece所在的label
private MyLabel movinglabel;
还有一个变量,因为要知道设计斗兽棋的棋盘是需要外部的一些图片的,所以我们需要知道所有图片的地址,以便于需要的时候可以随时引用。
至于图片,大家可以自己从网上下,也可以引用我的。我会把图片单独传上来。
//这里就是一个装有所有图片地址的array
private static String[] paths= {"C:/Users/Lenovo/eclipse-workspace/xiaoyouxi/src/斗兽棋/dsq_副本.png",
"