网页五子棋游戏源代码

我有java,你可以看看:一个拼图。

导入Java . lang . math . *;

导入Java . awt . event . *;

导入Java . awt . *;

导入javax . swing . *;

类mainframe扩展jframe实现action listener {//定义整个框架。

私有JButton[]JB = new JButton[8];

private JButton jbs = new JButton(" opening ");

Private JButton jbres = new JButton("重新开始");

private JPanel jp 1 = new JPanel();

private JPanel jp2 = new JPanel();

private int[]n = new int[9];

private int[]n 1 = new int[9];

private int position = 8,p,q;

私有布尔bl,startbl = false

private JLabel JL = new JLabel();

private int count = 0;

private JLabel JL 1 = new JLabel("+integer . tostring(0));

公共主机(){ // frame的构造方法

int I;

for(int j = 0;j & ltn .长度;j++){

n[j]= j;

n 1[j]= n[j];

}

for(I = 0;我& ltjb.lengthI++){ //为每个按钮分配一个对应的值,并记录侦听器。

JB[I]= new JButton(integer . tostring(I+1));

Jb[i]。setFont(新字体(“号”,字体。粗体,48));

jp2 . add(JB[I]);

jb[i]。addActionListener(this);

}

for(I = 0;我& ltn .长度;i++){

if(n[i] ==位置)

jp2 . add(JL);

其他

jp2 . add(JB[n[I]]);

}

jp2.setLayout(new GridLayout(3,3));//注册侦听器

jbs . addactionlistener(this);

jbres . addactionlistener(this);

jp 1 . add(jbs);

jp 1 . add(jbres);

jp 1 . add(JL 1);

jp 1 . set layout(new FlowLayout());//将jp1设置为流布局。

set layout(new BorderLayout());//整体布局是边界布局。

this.add("North ",jp 1);

this.add("Center ",jp2);

This.setTitle(“拼图”);

this.setBounds(100,100,300,350);

this . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);//实现关闭按钮

this . setresizable(false);

this . set visible(true);

}

public void action performed(action event e){//实现按钮的事件。

If(e.getSource()==jbres){ //重启按钮事件。

for(int j = 0;j & ltn .长度;j++)

n[j]= n 1[j];

reShow();

startbl = true

count = 0;

JL 1 . settext("+integer . tostring(0));

}

Else if(e.getSource()==jbs) //开始按钮事件

这个。init();

else if(startbl){//Button 1-8移动事件

for(int I = 0;我& ltjb.lengthi++)

if(e.getSource() == jb[i]){

//system . out . println(I+1);

for(int a = 0;a & ltn .长度;a++){

if(n[a]==i)

p = a;

if(n[a]= =位置)

q = a;

}

}

如果(p!= 0 & amp& ampp!= 1。& ampp!= 2)

如果((p-3) == q)

互换(p,q);

如果(p!= 0 & amp& ampp!= 3 & amp& ampp!= 6)

如果((p-1) == q)

互换(p,q);

如果(p!= 2 & amp& ampp!= 5 & amp& ampp!= 8)

if((p+1) == q)

互换(p,q);

如果(p!= 6 & amp& ampp!= 7 & amp& ampp!= 8)

如果((p+3) == q)

互换(p,q);

}

}

Public void swap (int x,int y) {//button 1-8与空白图片交换。

int z;

z = n[x];

n[x]= n[y];

n[y]= z;

JL 1 . settext("+integer . tostring(++count));

reShow();

win();

}

Public void Init(){ //随机生成游戏界面。

int i=0,j,x;

布尔bl;

while(我& lt9){

bl =真;

x =(int)(math . random()* 9);

for(j = 0;j & lt我;j++)

if(n[j] == x)

bl =假;

如果(bl){

n[i++]= x;

n 1[I-1]= x;

}

}

reShow();

startbl = true

count = 0;

JL 1 . settext("+integer . tostring(0));

}

public void show(){//重写游戏界面。

for(int I = 0;我& ltn .长度;i++){

if(n[i] ==位置)

jp2 . add(JL);

其他

jp2 . add(JB[n[I]]);

}

jp2 . revidate();

}

Public void win(){ //判断是否成功。

boolean winbl = true

for(int I = 0;我& ltn .长度;i++)

if(n[i]!=i)

winbl = false

if(winbl){

Joption窗格。显示消息对话框(这个,“恭喜你,你成功了!”+"您使用了"+Integer.toString(count)+ "step "、""、jooptionpane。信息_消息);

startbl = false

}

}

}

公共类拼贴{//主函数类

公共静态void main(String[] args){

新大型机();

}

}

我之前编的。不是很好。请参考。