⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monplan.java

📁 IA 算法问题
💻 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 + -