📄 buttongame.java
字号:
/*计科S0241 陈新 按钮游戏*/
package mywork.window;
import java.awt.*;
import java.awt.event.*;
public class ButtonGame extends Frame{
Button [][] bt=new Button[4][4];
Panel gridlayoutpanel1=new Panel();
Label la;
Panel p1,
p2,
p3,
p4,
p5;
ButtonGame(){
int rand,length=1;
int []t=new int[16];
for(int col=0;col<4;col++)
{
for(int row=0;row<4;row++)
{
rand= (int)(Math.random()*15+1);
if(col==0&&row==0){
t[length]=rand;
length++;
bt[col][row]=new Button(String.valueOf(rand));
gridlayoutpanel1.add(bt[col][row]);
}
else if(length==16) {
bt[col][row]=new Button("");
gridlayoutpanel1.add(bt[col][row]);
break;
}
else {
int j=1;
while(j<length)
{
if(rand!=t[j]){
j++;
}
else break;
}
if(j==length){
t[length]=rand;
length++;
bt[col][row]=new Button(String.valueOf(rand));
gridlayoutpanel1.add(bt[col][row]);
}
/* else if(j!=length&&row==0){
row=3;
col--;&&row!=0
}*/
else if(j!=length){
row--;
}
}
}
}
gridlayoutpanel1.setLayout(new GridLayout(5,4));
la=new Label("Clever!");
la.setVisible(false);
gridlayoutpanel1.add(la);
add(gridlayoutpanel1);
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
bt[i][j].addActionListener(l);
}
}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
}
ActionListener l=new ActionListener(){
public void actionPerformed(ActionEvent e){
int newc=0,newr=0,k=1,oldc=0,oldr=0;
String replace=new String("");
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(bt[i][j].getLabel().equals(String.valueOf(k))){k++; System.out.println(bt[i][j].getLabel());}
if(e.getSource()==bt[i][j]){ newc=i; newr=j;}
if(bt[i][j].getLabel()==""){ replace=bt[i][j].getLabel(); oldc=i; oldr=j;}
}
} System.out.println(k);
if(k==16) {
la.setVisible(true);
bt[oldc][oldr].setLabel(bt[newc][newr].getLabel());
bt[newc][newr].setLabel("End");
}
else
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(newc+1<4&&bt[newc+1][newr].getLabel()=="") {
bt[newc+1][newr].setLabel(bt[newc][newr].getLabel());
bt[newc][newr].setLabel(replace);
}
else if(newc-1>=0&&bt[newc-1][newr].getLabel()=="") {
bt[newc-1][newr].setLabel(bt[newc][newr].getLabel());
bt[newc][newr].setLabel(replace);
}
else if(newr+1<4&&bt[newc][newr+1].getLabel()=="") {
bt[newc][newr+1].setLabel(bt[newc][newr].getLabel());
bt[newc][newr].setLabel(replace);
}
else if(newr-1>=0&&bt[newc][newr-1].getLabel()=="") {
bt[newc][newr-1].setLabel(bt[newc][newr].getLabel());
bt[newc][newr].setLabel(replace);
}
}
}
}
}
};
/* public stop()
{int i,j;
int [] at={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[i][j]=
}*/
public static void main(String args[]){
Frame f=new ButtonGame();
f.setSize(100,100);
f.setVisible(true);
f.pack();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -