- 浏览: 44972 次
- 性别:
- 来自: 北京
文章分类
最新评论
配置JDK,附件 game.jar可双击运行
package javaapplication1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.*;
public class Games extends JFrame implements ActionListener {
private JButton buttons[][];// 存储按键的数组
private Container container;// 一个容器
private GridLayout layout;// 布局方式为GridLayout
private int count = 0, is[] = new int[8];// count的作用是计算按键移动的次数,is[]储存一个随机产生的1到8数字数组
public Games() {
super("Numeric Sliding Puzzle");// 设置标题
}
public void initGraph(int intX,int intY){
layout = new GridLayout(intX, intY);// 3行3列
container = getContentPane();// 该容器的布局方式,及其重要,否则产生空引用异常
container.setBackground(Color.WHITE);
container.setLayout(layout);// 将该布局方式作用于容器
buttons = new JButton[intX][intY];// 给按键数组分配储存空间
int locate1, locate2;// locate1用来指示当前产生的元素 locate2用来指示locate1之前的元素
for (locate1 = 0; locate1 < intX*intY-1; locate1++) {// 该方法作用是产生1到8这8个数,随机分配给数组,即无序排列
int g = new Random().nextInt(intX*intY-1) + 1;// 随机产生一个空白按键,即不显示的那个
is[locate1] = g;
for (locate2 = locate1 - 1; 0 <= locate2; locate2--) {
if (is[locate1] == is[locate2])
break;
}
if (locate2 != -1)
locate1--;
}
int temp = 0;
int r = new Random().nextInt(intX);// 随机产生一个0到3的数,代表空白按键的行
int l = new Random().nextInt(intY);// 随机产生一个0到3的数,代表空白按键的列
for (int i = 0; i < intX; i++) {
for (int j = 0; j < intY; j++) {
if (r == i && l == j) {// 空白按键设置为9,不显示
buttons[i][j] = new JButton(String.valueOf(intX*intY));
container.add(buttons[i][j]);
buttons[i][j].setVisible(false);
} else {
buttons[i][j] = new JButton("" + is[temp++]);// 将数组数组的值作为显示的8个按键的名字
container.add(buttons[i][j]);
}
buttons[i][j].setBackground(Color.black);
buttons[i][j].setForeground(Color.WHITE);
buttons[i][j].setFont(getFont());
buttons[i][j].addActionListener(this);// 注册监听事件
}
}
setSize(300, 300);// 设置显示容器区域大小
setVisible(true);
}
public Font getFont(){
Font fnB = new Font ("Arial",Font.BOLD,30);
return fnB;
}
public void actionPerformed(ActionEvent event) {// 事件处理,由于计算量小该处将所有按键单独分析
JButton b = (JButton) event.getSource();
if (b == buttons[0][0]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[0][0].getText());
buttons[0][1].setVisible(true);
buttons[0][0].setText("9");
// buttons[0][0].setFont()
buttons[0][0].setVisible(false);
count++;
} else if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[0][0].getText());
buttons[1][0].setVisible(true);
buttons[0][0].setText("9");
buttons[0][0].setVisible(false);
count++;
}
}
else if (b == buttons[0][1]) {
if (buttons[0][0].getText().equals("9")) {
buttons[0][0].setText("" + buttons[0][1].getText());
buttons[0][0].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
} else if (buttons[0][2].getText().equals("9")) {
buttons[0][2].setText("" + buttons[0][1].getText());
buttons[0][2].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[0][1].getText());
buttons[1][1].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
}
} else if (b == buttons[0][2]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[0][2].getText());
buttons[0][1].setVisible(true);
buttons[0][2].setText("9");
buttons[0][2].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[0][2].getText());
buttons[1][2].setVisible(true);
buttons[0][2].setText("9");
buttons[0][2].setVisible(false);
count++;
}
} else if (b == buttons[1][0]) {
if (buttons[0][0].getText().equals("9")) {
buttons[0][0].setText("" + buttons[1][0].getText());
buttons[0][0].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[1][0].getText());
buttons[1][1].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
} else if (buttons[2][0].getText().equals("9")) {
buttons[2][0].setText("" + buttons[1][0].getText());
buttons[2][0].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
}
} else if (b == buttons[1][1]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[1][1].getText());
buttons[0][1].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[1][1].getText());
buttons[1][0].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[1][1].getText());
buttons[1][2].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[1][1].getText());
buttons[2][1].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
}
} else if (b == buttons[1][2]) {
if (buttons[0][2].getText().equals("9")) {
buttons[0][2].setText("" + buttons[1][2].getText());
buttons[0][2].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
} else if (buttons[2][2].getText().equals("9")) {
buttons[2][2].setText("" + buttons[1][2].getText());
buttons[2][2].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[1][2].getText());
buttons[1][1].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
}
} else if (b == buttons[2][0]) {
if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[2][0].getText());
buttons[1][0].setVisible(true);
buttons[2][0].setText("9");
buttons[2][0].setVisible(false);
count++;
} else if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[2][0].getText());
buttons[2][1].setVisible(true);
buttons[2][0].setText("9");
buttons[2][0].setVisible(false);
count++;
}
}
else if (b == buttons[2][1]) {
if (buttons[2][0].getText().equals("9")) {
buttons[2][0].setText("" + buttons[2][1].getText());
buttons[2][0].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
} else if (buttons[2][2].getText().equals("9")) {
buttons[2][2].setText("" + buttons[2][1].getText());
buttons[2][2].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[2][1].getText());
buttons[1][1].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
}
} else if (b == buttons[2][2]) {
if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[2][2].getText());
buttons[2][1].setVisible(true);
buttons[2][2].setText("9");
buttons[2][2].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[2][2].getText());
buttons[1][2].setVisible(true);
buttons[2][2].setText("9");
buttons[2][2].setVisible(false);
count++;
}
}
if (buttons[0][0].getText().equals("1")// 假如1到8已经排列完成,则执行该语句
&& buttons[0][1].getText().equals("2")
&& buttons[0][2].getText().equals("3")
&& buttons[1][0].getText().equals("4")
&& buttons[1][1].getText().equals("5")
&& buttons[1][2].getText().equals("6")
&& buttons[2][0].getText().equals("7")
&& buttons[2][1].getText().equals("8")) {
int option= JOptionPane.showConfirmDialog(Games.this, "would you like to play again ? ", "提示 ",JOptionPane.YES_NO_CANCEL_OPTION);
if(option==JOptionPane.NO_OPTION) {
System.exit(0);
}else if(option==JOptionPane.YES_OPTION){
this.dispose();
new Games().initGraph(3, 3);
}else if(option==JOptionPane.CANCEL_OPTION){
return ;
}
}
}
/*public void inputParam(){
JFrame jframe = new JFrame("请输入行数和列数");
jframe.setSize(300, 300);
jframe.setLayout(new FlowLayout());
jframe.setBackground(Color.blue);
jframe.setResizable(false);
jframe.setVisible(true);
JPanel jpanel=new JPanel();
jpanel.setLayout(new FlowLayout());
jpanel.setVisible(true);
jframe.add(jpanel);
JTextField jt = new JTextField();
jt.setBackground(Color.WHITE);
jt.setSize(600, 20);
jt.setVisible(true);
jpanel.add(jt);
}
*/
public static void main(String[] args) {
Games game = new Games();
game.initGraph(3,3);
}
}
package javaapplication1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.*;
public class Games extends JFrame implements ActionListener {
private JButton buttons[][];// 存储按键的数组
private Container container;// 一个容器
private GridLayout layout;// 布局方式为GridLayout
private int count = 0, is[] = new int[8];// count的作用是计算按键移动的次数,is[]储存一个随机产生的1到8数字数组
public Games() {
super("Numeric Sliding Puzzle");// 设置标题
}
public void initGraph(int intX,int intY){
layout = new GridLayout(intX, intY);// 3行3列
container = getContentPane();// 该容器的布局方式,及其重要,否则产生空引用异常
container.setBackground(Color.WHITE);
container.setLayout(layout);// 将该布局方式作用于容器
buttons = new JButton[intX][intY];// 给按键数组分配储存空间
int locate1, locate2;// locate1用来指示当前产生的元素 locate2用来指示locate1之前的元素
for (locate1 = 0; locate1 < intX*intY-1; locate1++) {// 该方法作用是产生1到8这8个数,随机分配给数组,即无序排列
int g = new Random().nextInt(intX*intY-1) + 1;// 随机产生一个空白按键,即不显示的那个
is[locate1] = g;
for (locate2 = locate1 - 1; 0 <= locate2; locate2--) {
if (is[locate1] == is[locate2])
break;
}
if (locate2 != -1)
locate1--;
}
int temp = 0;
int r = new Random().nextInt(intX);// 随机产生一个0到3的数,代表空白按键的行
int l = new Random().nextInt(intY);// 随机产生一个0到3的数,代表空白按键的列
for (int i = 0; i < intX; i++) {
for (int j = 0; j < intY; j++) {
if (r == i && l == j) {// 空白按键设置为9,不显示
buttons[i][j] = new JButton(String.valueOf(intX*intY));
container.add(buttons[i][j]);
buttons[i][j].setVisible(false);
} else {
buttons[i][j] = new JButton("" + is[temp++]);// 将数组数组的值作为显示的8个按键的名字
container.add(buttons[i][j]);
}
buttons[i][j].setBackground(Color.black);
buttons[i][j].setForeground(Color.WHITE);
buttons[i][j].setFont(getFont());
buttons[i][j].addActionListener(this);// 注册监听事件
}
}
setSize(300, 300);// 设置显示容器区域大小
setVisible(true);
}
public Font getFont(){
Font fnB = new Font ("Arial",Font.BOLD,30);
return fnB;
}
public void actionPerformed(ActionEvent event) {// 事件处理,由于计算量小该处将所有按键单独分析
JButton b = (JButton) event.getSource();
if (b == buttons[0][0]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[0][0].getText());
buttons[0][1].setVisible(true);
buttons[0][0].setText("9");
// buttons[0][0].setFont()
buttons[0][0].setVisible(false);
count++;
} else if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[0][0].getText());
buttons[1][0].setVisible(true);
buttons[0][0].setText("9");
buttons[0][0].setVisible(false);
count++;
}
}
else if (b == buttons[0][1]) {
if (buttons[0][0].getText().equals("9")) {
buttons[0][0].setText("" + buttons[0][1].getText());
buttons[0][0].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
} else if (buttons[0][2].getText().equals("9")) {
buttons[0][2].setText("" + buttons[0][1].getText());
buttons[0][2].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[0][1].getText());
buttons[1][1].setVisible(true);
buttons[0][1].setText("9");
buttons[0][1].setVisible(false);
count++;
}
} else if (b == buttons[0][2]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[0][2].getText());
buttons[0][1].setVisible(true);
buttons[0][2].setText("9");
buttons[0][2].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[0][2].getText());
buttons[1][2].setVisible(true);
buttons[0][2].setText("9");
buttons[0][2].setVisible(false);
count++;
}
} else if (b == buttons[1][0]) {
if (buttons[0][0].getText().equals("9")) {
buttons[0][0].setText("" + buttons[1][0].getText());
buttons[0][0].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[1][0].getText());
buttons[1][1].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
} else if (buttons[2][0].getText().equals("9")) {
buttons[2][0].setText("" + buttons[1][0].getText());
buttons[2][0].setVisible(true);
buttons[1][0].setText("9");
buttons[1][0].setVisible(false);
count++;
}
} else if (b == buttons[1][1]) {
if (buttons[0][1].getText().equals("9")) {
buttons[0][1].setText("" + buttons[1][1].getText());
buttons[0][1].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[1][1].getText());
buttons[1][0].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[1][1].getText());
buttons[1][2].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
} else if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[1][1].getText());
buttons[2][1].setVisible(true);
buttons[1][1].setText("9");
buttons[1][1].setVisible(false);
count++;
}
} else if (b == buttons[1][2]) {
if (buttons[0][2].getText().equals("9")) {
buttons[0][2].setText("" + buttons[1][2].getText());
buttons[0][2].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
} else if (buttons[2][2].getText().equals("9")) {
buttons[2][2].setText("" + buttons[1][2].getText());
buttons[2][2].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[1][2].getText());
buttons[1][1].setVisible(true);
buttons[1][2].setText("9");
buttons[1][2].setVisible(false);
count++;
}
} else if (b == buttons[2][0]) {
if (buttons[1][0].getText().equals("9")) {
buttons[1][0].setText("" + buttons[2][0].getText());
buttons[1][0].setVisible(true);
buttons[2][0].setText("9");
buttons[2][0].setVisible(false);
count++;
} else if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[2][0].getText());
buttons[2][1].setVisible(true);
buttons[2][0].setText("9");
buttons[2][0].setVisible(false);
count++;
}
}
else if (b == buttons[2][1]) {
if (buttons[2][0].getText().equals("9")) {
buttons[2][0].setText("" + buttons[2][1].getText());
buttons[2][0].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
} else if (buttons[2][2].getText().equals("9")) {
buttons[2][2].setText("" + buttons[2][1].getText());
buttons[2][2].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
} else if (buttons[1][1].getText().equals("9")) {
buttons[1][1].setText("" + buttons[2][1].getText());
buttons[1][1].setVisible(true);
buttons[2][1].setText("9");
buttons[2][1].setVisible(false);
count++;
}
} else if (b == buttons[2][2]) {
if (buttons[2][1].getText().equals("9")) {
buttons[2][1].setText("" + buttons[2][2].getText());
buttons[2][1].setVisible(true);
buttons[2][2].setText("9");
buttons[2][2].setVisible(false);
count++;
} else if (buttons[1][2].getText().equals("9")) {
buttons[1][2].setText("" + buttons[2][2].getText());
buttons[1][2].setVisible(true);
buttons[2][2].setText("9");
buttons[2][2].setVisible(false);
count++;
}
}
if (buttons[0][0].getText().equals("1")// 假如1到8已经排列完成,则执行该语句
&& buttons[0][1].getText().equals("2")
&& buttons[0][2].getText().equals("3")
&& buttons[1][0].getText().equals("4")
&& buttons[1][1].getText().equals("5")
&& buttons[1][2].getText().equals("6")
&& buttons[2][0].getText().equals("7")
&& buttons[2][1].getText().equals("8")) {
int option= JOptionPane.showConfirmDialog(Games.this, "would you like to play again ? ", "提示 ",JOptionPane.YES_NO_CANCEL_OPTION);
if(option==JOptionPane.NO_OPTION) {
System.exit(0);
}else if(option==JOptionPane.YES_OPTION){
this.dispose();
new Games().initGraph(3, 3);
}else if(option==JOptionPane.CANCEL_OPTION){
return ;
}
}
}
/*public void inputParam(){
JFrame jframe = new JFrame("请输入行数和列数");
jframe.setSize(300, 300);
jframe.setLayout(new FlowLayout());
jframe.setBackground(Color.blue);
jframe.setResizable(false);
jframe.setVisible(true);
JPanel jpanel=new JPanel();
jpanel.setLayout(new FlowLayout());
jpanel.setVisible(true);
jframe.add(jpanel);
JTextField jt = new JTextField();
jt.setBackground(Color.WHITE);
jt.setSize(600, 20);
jt.setVisible(true);
jpanel.add(jt);
}
*/
public static void main(String[] args) {
Games game = new Games();
game.initGraph(3,3);
}
}
- game.jar (3.4 KB)
- 下载次数: 3
发表评论
-
JSOAP XML解析框架简介
2014-05-08 09:29 707引自: http://www.ibm.com/develo ... -
一直不明白为什么String s=new String("abc")创建两个对象
2013-06-08 21:04 553String str=new String("ab ... -
Java常见异常(Runtime Exception )小结
2012-11-29 14:31 819本文重在Java中异常机制的一些概念。写本文的目的在于方便我很 ... -
使用Xming+Putty进行远程JVM监控
2012-11-28 21:46 10671、本地安装Xming,并启动 Xming- ...
相关推荐
python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码...
canvas拼图小游戏
【博主推荐】html好看的拼图小游戏(附源码) 拼图资源来自,最近比较火得电视剧《且试天下》,觉得挺不错得一部剧,喜欢里面得角色,所以拿来当资源了,拼出来得成就感还是不错的。 拼图分为四个等级,分别是九宫格、...
拼图小游戏原代码拼图小游戏原代码拼图小游戏原代码拼图小游戏原代码拼图小游戏原代码
Python写简单的拼图小游戏Pycharm项目,包括游戏图片和代码等,可直接用Pycharm打开。有问题请私信。
android 拼图 小游戏 源码android 拼图 源码 小游戏android 拼图 源码 小游戏android 拼图 源码 小游戏android 拼图 小游戏android 拼图 小游戏
用vb做的拼图小游戏,对于学习vb的朋友可以下去看看的,
java 拼图小游戏 4*4的 完整源代码 对于java拼图小游戏感兴趣的小伙伴可以参考哟
c++编写的拼图小游戏,含有背景音乐、记录步数、重新开局等功能 并附有程序及详细的注释
用java写的3*3拼图小游戏,附有注释,
一个简单的拼图小游戏,可以拱新手练习学习用的
此程序为用JAVA编写的拼图小游戏,可通过简单的图片移动实现拼图,并实现音乐播放功能。
一个拼图小游戏C#源码,非常简单的实现。提供容易、中等、难、极难等模式,完成拼图。使用BUTTON来作为每个拼图块实现。对初学者很有帮助。
python实现拼图小游戏--附源码
html5拼图小游戏.zip 好玩的小游戏html5拼图小游戏.zip 好玩的小游戏html5拼图小游戏.zip 好玩的小游戏html5拼图小游戏.zip 好玩的小游戏html5拼图小游戏.zip 好玩的小游戏html5拼图小游戏.zip 好玩的小游戏html5...
一款很有意思的HTML5 3D魔方旋转拼图小游戏代码,支持键盘上下左右方向键与鼠标进行操作。
可以正常玩耍的九宫格拼图小游戏
课程实验用的Java写的九宫格拼图小游戏,实现一些最基本的单机小游戏功能,希望有一点参考价值。可直接运行。
简单的拼图小游戏,简单易学,可以较快的学习和了解java基础应用。 也是个挺有趣的小游戏