public ArrayList<MainMenuHeroSlot> fight(){			// normal attack , 1-1 push 1 out of stack
		int turn = 1;							// special attack 1-3 push 3 monster out of stack , 1 hero out of stack
		while(checkEndFightMonster() == false && checkEndFightHero() == false){
			
			System.out.println("***************************************************************************");
			System.out.println("[TURN "+turn+" ]");
			System.out.println("***************************************************************************");
			
			// for each turn , remove hero and monster from queue
			BattleHeroSlots hero =null;
			MonsterSlots monster = null;
			
			
			// monster attack
			if(monsterTurn.peek() != null){
					
				monster = monsterTurn.remove();
				
				//hero attack
				if(heroTurn.peek()!=null){
					
					hero= heroTurn.remove();
					System.out.println("monster attack with "+ monster.attack() +" damages");
					hero.loseHealth(monster.attack());  
					
					System.out.println(" hero " + hero.toString() );
					
				}
				
					if(hero.checkDefeated() == true){
						//monsterTurn.add(monster);
						numHero--;
						
					}else{
						
						Random randomGenerator = new Random();
					    
						
						int number = randomGenerator.nextInt(100);
						
					    if(number >90){
					    	int specialdamage = hero.specialAttack();
					    	System.out.println("hero special attack with " + specialdamage + " damages");
							monster.loseHealth(specialdamage);				// monster attack if alive , ask users here
							System.out.println(" monster " + monster.toString());
							heroTurn.add(hero);
					    }else{
							System.out.println("hero attack with " + hero.normalAttack() + " damages");
							monster.loseHealth(hero.normalAttack());				// monster attack if alive , ask users here
							System.out.println(" monster " + monster.toString());
							heroTurn.add(hero);
					    }
					}
				
				if(monster.checkDefeated() == true){
					//monsterTurn.add(monster);
					numMonster--;
				}else
					monsterTurn.add(monster);
			}
			turn++;
			
		}// while
		
		
		return reloadHero();
		
	}