java课程设计拼图游戏代码Word格式.docx
《java课程设计拼图游戏代码Word格式.docx》由会员分享,可在线阅读,更多相关《java课程设计拼图游戏代码Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
publicGames(){
super("
拼图游戏"
);
//设置标题
layout=newGridLayout(3,3);
//3行3列
container=getContentPane();
//该容器的布局方式,及其重要,否则产生空引用异常
container.setLayout(layout);
//将该布局方式作用于容器
buttons=newJButton[3][3];
//给按键数组分配储存空间
intlocate1,locate2;
//locate1用来指示当前产生的元素locate2用来指示locate1之前的元素
for(locate1=0;
locate1<
8;
locate1++){//该方法作用是产生1到8这8个数,随机分配给数组,即无序排列
intg=newRandom().nextInt
(8)+1;
//随机产生一个空白按键,即不显示的那个is[locate1]=g;
for(locate2=locate1-1;
0<
=locate2;
locate2--){
if(is[locate1]==is[locate2])
break;
}if(locate2!
=-1)
locate1--;
}inttemp=0;
intr=newRandom().nextInt
(3);
//随机产生一个0到3的数,代表空白按键的行intl=newRandom().nextInt
//随机产生一个0到3的数,代表空白按键的列for(inti=0;
i<
3;
i++){
for(intj=0;
j<
j++){
if(r==i&
&
l==j){//空白按键设置为9,不显示
buttons[i][j]=newJButton("
9"
container.add(buttons[i][j]);
buttons[i][j].setVisible(false);
}else{
"
+is[temp++]);
//将数组的值作为显示的8个按键的名字
}buttons[i][j].addActionListener(this);
//注册监听事件}}
setSize(300,300);
//设置显示容器区域大小
setVisible(true);
}publicvoidactionPerformed(ActionEventevent){//事件处理,由于计算量小该处将所有按键单独分析
JButtonb=(JButton)event.getSource();
if(b==buttons[0][0]){
if(buttons[0][1].getText().equals("
)){
buttons[0][1].setText("
+buttons[0][0].getText());
buttons[0][1].setVisible(true);
buttons[0][0].setText("
buttons[0][0].setVisible(false);
count++;
}elseif(buttons[1][0].getText().equals("
buttons[1][0].setText("
buttons[1][0].setVisible(true);
}}
elseif(b==buttons[0][1]){
if(buttons[0][0].getText().equals("
+buttons[0][1].getText());
buttons[0][0].setVisible(true);
buttons[0][1].setVisible(false);
}elseif(buttons[0][2].getText().equals("
buttons[0][2].setText("
buttons[0][2].setVisible(true);
}elseif(buttons[1][1].getText().equals("
buttons[1][1].setText("
buttons[1][1].setVisible(true);
}}elseif(b==buttons[0][2]){
+buttons[0][2].getText());
buttons[0][2].setVisible(false);
}elseif(buttons[1][2].getText().equals("
buttons[1][2].setText("
buttons[1][2].setVisible(true);
}}elseif(b==buttons[1][0]){
+buttons[1][0].getText());
buttons[1][0].setVisible(false);
}elseif(buttons[2][0].getText().equals("
buttons[2][0].setText("
buttons[2][0].setVisible(true);
}}elseif(b==buttons[1][1]){
+buttons[1][1].getText());
buttons[1][1].setVisible(false);
}elseif(buttons[2][1].getText().equals("
buttons[2][1].setText("
buttons[2][1].setVisible(true);
}}elseif(b==buttons[1][2]){
if(buttons[0][2].getText().equals("
+buttons[1][2].getText());
buttons[1][2].setVisible(false);
}elseif(buttons[2][2].getText().equals("
buttons[2][2].setText("
buttons[2][2].setVisible(true);
}}elseif(b==buttons[2][0]){
if(buttons[1][0].getText().equals("
+buttons[2][0].getText());
buttons[2][0].setVisible(false);
elseif(b==buttons[2][1]){
if(buttons[2][0].getText().equals("
+buttons[2][1].getText());
buttons[2][1].setVisible(false);
}}elseif(b==buttons[2][2]){
if(buttons[2][1].getText().equals("
+buttons[2][2].getText());
buttons[2][2].setVisible(false);
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"
JOptionPane.showMessageDialog(null,"
您一共花费了"
+count+"
步完成了游戏!
//弹出对话框,显示共移动步数
System.exit
(0);
//退出程序}}
publicstaticvoidmain(String[]args){
Gamesgame=newGames();
game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);