📄 monplan.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.lang.*;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class MonPlan extends JFrame implements KeyListener{
int taille=10;
JPanel [][] tableau;
Element jr, mtr;
Poursuvrir ref;
Echiquier echiquier;
Chemin chemin;
Poursuvrir suvr;
ArrayList<Etat> array;
MonPlan(int[][] tab){
super("Jeu");
setLayout(new GridLayout(taille,taille));
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(200,10,670,670);
addKeyListener(this);
ref=null;
echiquier=new Echiquier(tab);
for(int i=0;i<tab.length;i++){
for(int j=0;j<tab.length;j++){
getContentPane().add(echiquier.getJPanel(i,j));
}
}
jr=echiquier.getJoueur();
mtr=echiquier.getMonsteur();
array=new ArrayList<Etat>();
chemin=new Chemin(array,echiquier,this);
}
//pack();
public static void main(String args[]){
int[][] tab=new int[][]{
{4,0,1,3,0,1,1,1,1,3},
{0,0,1,1,0,0,0,1,0,0},
{0,0,0,0,0,0,0,1,0,0},
{0,1,0,0,0,1,0,1,0,0},
{0,1,1,1,0,1,0,0,0,0},
{0,1,3,0,0,1,0,1,1,0},
{3,1,0,1,1,1,0,0,1,0},
{0,1,0,0,0,0,0,3,1,0},
{0,0,0,1,1,1,1,0,0,0},
{0,0,0,0,0,0,1,0,0,2}
};
MonPlan m=new MonPlan(tab);
//m.terminer();
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
int x=jr.getX();
int y=jr.getY();
if(arg0.getKeyCode() == arg0.VK_UP){
if (((x-1)>=0) && (!echiquier.estMur((x-1),y) )){
echiquier.setJoueur(x-1, y);
echiquier.deleteJoueur(x, y);
jr.setX(x-1);
jr.setY(y);
controle();
}
}
if(arg0.getKeyCode() == arg0.VK_DOWN){
if (((x+1)<taille) && (!echiquier.estMur((x+1),y))){
echiquier.setJoueur(x+1, y);
echiquier.deleteJoueur(x, y);
jr.setX(x+1);
jr.setY(y);
controle();
}
}
if(arg0.getKeyCode() == arg0.VK_LEFT){
if (((y-1)>=0) && (!echiquier.estMur(x,(y-1)))){
echiquier.setJoueur(x, y-1);
echiquier.deleteJoueur(x, y);
jr.setX(x);
jr.setY(y-1);
controle();
}
}
if(arg0.getKeyCode() == arg0.VK_RIGHT){
if (((y+1)<taille) && (!echiquier.estMur(x,(y+1)))){
echiquier.setJoueur(x, y+1);
echiquier.deleteJoueur(x, y);
jr.setX(x);
jr.setY(y+1);
controle();
}
}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
boolean detecteur(Element j1){
for(int i=((j1.getX()>3)?(j1.getX()-3):0);
i<(((j1.getX()+3)>=taille) ?(taille-1):(j1.getX()+3));
i++)
for(int j=((j1.getY()>3)?(j1.getY()-3):0);
j<(((j1.getY()+3)>=taille) ? (taille-1) :(j1.getY()+3));
j++)
{
if (echiquier.estMonsteur(i,j))
return true;
}
return false;
}
Element getJoueur(){return echiquier.getJoueur();}
Element getMonsteur(){return echiquier.getMonsteur();}
boolean encoreOr(){
int compteur=0;
for(int i=0;i<taille;i++){
for(int j=0;j<taille;j++){
if(echiquier.estOr(i,j)) {
compteur++;
}
}
}
if (compteur==0) return false;
return true;
}
void setEchiquier(int[][] tab){
echiquier.setTableau(tab);
}
void controle(){
if(!encoreOr()){
JOptionPane.showMessageDialog(getContentPane(),"YOU WIN!");
int[][] tab=new int[][]{
{4,0,1,3,0,1,1,1,1,3},
{0,0,1,1,0,0,0,1,0,0},
{0,0,0,0,0,0,0,1,0,0},
{0,1,0,0,0,1,0,1,0,0},
{0,1,1,1,0,1,0,0,0,0},
{0,1,3,0,0,1,0,1,1,0},
{3,1,0,1,1,1,0,0,1,0},
{0,1,0,0,0,0,0,3,1,0},
{0,0,0,1,1,1,1,0,0,0},
{0,0,0,0,0,0,1,0,0,2}
};
setEchiquier(tab);
if(chemin.isAlive()){
chemin.stop();
echiquier.getMonsteur();
echiquier.getJoueur();
echiquier.setCle(false);
}
//return;
}
else{
if(detecteur(jr)|| echiquier.getCle()==true) {
echiquier.setCle(true);
suvr=new Poursuvrir(echiquier);
array=suvr.Methode();
if(chemin.isAlive()){
chemin.stop();
echiquier.getMonsteur();
}
chemin=new Chemin(array,echiquier,this);
chemin.start();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -