62,612
社区成员
发帖
与我相关
我的任务
分享
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Image;
public class MyPanel extends JPanel
{
private final static int PANEL_SIZE=420;
private final static int ELEMENT_SIZE=28;
private final static int ROW_NUM=15;
private final static int COL_NUM=15;
private Image background;
private Image black;
private Image white;
private Image site;
private int alignment_x=0;
private int alignment_y=0;
private int state[][]=
{
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},
};
public MyPanel()
{
this.setPreferredSize(new Dimension(420,420));
}
public void paint(Graphics g)
{
loadImage(g);
judgeState(g);
g.drawImage(site,this.getX()*MyPanel.ELEMENT_SIZE,this.getY()*MyPanel.ELEMENT_SIZE,22,22,this);
}
public void loadImage(Graphics g)
{
ImageIcon icon=new ImageIcon("resource\\background.jpg");
background=icon.getImage();
icon=new ImageIcon("resource\\black.png");
black=icon.getImage();
icon=new ImageIcon("resource\\white.png");
white=icon.getImage();
icon=new ImageIcon("resource\\site.jpg");
site=icon.getImage();
g.drawImage(background,0,0,420,420,this);
}
public void judgeState(Graphics g)
{
int i=0;
int j=0;
while(i<=14)
{
while(j<=14)
{
if(state[i][j]==1)
{
g.drawImage(black,i*MyPanel.ELEMENT_SIZE,j*MyPanel.ELEMENT_SIZE,22,22,this);
}
if(state[i][j]==2)
{
g.drawImage(white,i*MyPanel.ELEMENT_SIZE,j*MyPanel.ELEMENT_SIZE,22,22,this);
}
j++;
}
i++;
j=0;
}
}
public int getX()
{
return alignment_x;
}
public int getY()
{
return alignment_y;
}
public void setAlignment(int x,int y)
{
alignment_x=x;
alignment_y=y;
}
public int getState(int x,int y)
{
return state[x][y];
}
public void setState(int x,int y,int value)
{
state[x][y]=value;
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Chess extends JFrame implements KeyListener
{
private MyPanel p=new MyPanel();
public Chess()
{
this.setLayout(new BorderLayout());
this.add(p,BorderLayout.CENTER);
this.setTitle("五子棋");
this.addKeyListener(this);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[])
{
new Chess();
}
public void keyTyped(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case 38:
if(p.getY()>0)
{
p.setAlignment(p.getX(),(p.getY()-1));
p.repaint();
}
break;
case 40:
if(p.getY()<14)
{
p.setAlignment(p.getX(),(p.getY()+1));
p.repaint();
}
break;
case 39:
if(p.getX()<14)
{
p.setAlignment((p.getX()+1),p.getY());
p.repaint();
}
break;
case 37:
if(p.getX()>0)
{
p.setAlignment((p.getX()-1),p.getY());
p.repaint();
}
break;
case 10:
if((p.getState(p.getX(),p.getY())==1)||(p.getState(p.getX(),p.getY())==2))
{
;
}
else
{
p.setState(p.getX(),p.getY(),1);
p.repaint();
if(win())
{
JOptionPane.showMessageDialog(this,"胜利","赢了",JOptionPane.INFORMATION_MESSAGE,null);
initState();
}
else
{
pcGo();
}
}
break;
}
}
public void keyReleased(KeyEvent e)
{
}
public void pcGo()
{
int i,j;
i=(int)(Math.random()*14);
j=(int)(Math.random()*14);
while(p.getState(i,j)!=0)
{
i=(int)(Math.random()*14);
j=(int)(Math.random()*14);
}
p.setState(i,j,2);
p.repaint();
if(win())
{
JOptionPane.showMessageDialog(this,"输了","输了",JOptionPane.INFORMATION_MESSAGE,null);
initState();
}
}
public boolean win()
{
return false;
}
public void initState()
{
int i=0;
int j=0;
while(i<=14)
{
while(j<=14)
{
p.setState(i,j,0);
j++;
}
i++;
j=0;
}
}
}