public Vue(Joueur[] joueurs, org.polytech.nantes.monopoly.manager.Case[] cases) throws Exception {
		
		// controle des paramètres
		if(!(joueurs.length == 2 || joueurs.length == 4)) {
			throw new Exception("nombre de joueurs renseigné incorrect");
		}
		
		this.setTitle("Monopoly");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		zoneDesJoueurs = new JoueurArea[joueurs.length];
		
		if(joueurs.length == 4) {
			this.setSize(1300,700);
		} else {
			this.setSize(930,700);
		}
		this.setLocationRelativeTo(null);
		this.setResizable(false);

		// container principal
		Container main = this.getContentPane();
		main.setLayout(new BorderLayout());
		
		// zone haut et bas
		zoneDesJoueurs[0] = new JoueurArea(new GridLayout(1,6), joueurs[0]);
		main.add(zoneDesJoueurs[0],BorderLayout.SOUTH);
		
		
		if(joueurs.length == 2) {
			zoneDesJoueurs[1] = new JoueurArea(new GridLayout(1,6), joueurs[1]);
			main.add(zoneDesJoueurs[1],BorderLayout.NORTH);
		}
		
		// zone gauche et droite
		if(joueurs.length == 4) {
			zoneDesJoueurs[1] = new JoueurArea(new GridLayout(6,1), joueurs[1]);
			main.add(zoneDesJoueurs[1],BorderLayout.WEST);
			zoneDesJoueurs[2] = new JoueurArea(new GridLayout(1,6), joueurs[2]);
			main.add(zoneDesJoueurs[2],BorderLayout.NORTH);
			zoneDesJoueurs[3] = new JoueurArea(new GridLayout(6,1), joueurs[3]);
			main.add(zoneDesJoueurs[3],BorderLayout.EAST);
		}
		
		// clignotement du joueur actif
		clignotementJoueur = new Timer(500,zoneDesJoueurs[0].getActionClignotement());
		clignotementJoueur.start();
		
		// ajout du plateau
		plateau = new Plateau(joueurs,cases);
		main.add(plateau, BorderLayout.CENTER);
		
		this.setFocusable(true);
		
		
		this.setVisible(true);
	}