public static void main(String args[]) throws Exception {

		/* Equipando os personagens */

		Archer ch0;
		ch0 = new Archer("Tyler Durden", 40);
		// Ativando o poder de ch0
		ch0.Blessing(true);

		Thief ch1;
		ch1 = new Thief("Storyteller", 10);

		Wizard ch2;
		ch2 = new Wizard("Marla Singer", 10);

		Thief ch3;
		ch3 = new Thief("The Boss", 10);
		// ativando o poder de ch3
		ch3.Dark(true);

		Wizard ch4;
		ch4 = new Wizard("Chloe", 10);

		Knight ch5;
		ch5 = new Knight("Ricky", 10);

		// Criando o time Fight
		Team team1;
		team1 = new Team("Fight", Color.black);
		// Criando o time Club
		Team team2;
		team2 = new Team("Club", Color.white);

		// Criação de todas Armor

		Armor armor1, armor2, armor3, armor4, armor5, armor6;

		armor1 = new Armor("Shirt", 18.8, 10, 5);
		armor2 = new Armor("TShirt", 20.0, 1, 7);
		armor3 = new Armor("Jacket", 200.0, 20, 10);
		armor4 = new Armor("Dress", 100.0, 15, 7);
		armor5 = new Armor("Leather", 300.0, 20, 15);
		armor6 = new Armor("Suit", 400, 17, 20);

		// Criação de todos Shield

		Shield s1, s2, s3, s4;

		s1 = new Shield("Dark Shield", 20.0, 15, 20.0);
		s2 = new Shield("White Shield", 20.0, 11, 10.0);
		s3 = new Shield("Blue Shield", 20.0, 14, 15.0);
		s4 = new Shield("Red Shield", 20.0, 12, 10.0);

		// Criação de todos os Helmet

		Helmet h1, h2;

		h1 = new Helmet("Dark Helmet", 20.0, 5, 10.0);
		h2 = new Helmet("White Helmet", 20.0, 6, 10.0);

		// Criação de Todas Legs

		Legs l1, l2;

		l1 = new Legs("Dark Legs", 10.0, 8, 15.0);
		l2 = new Legs("White Legs", 10.0, 7, 13.0);

		// Criação de Todos Boots

		Boots b1, b2;
		b1 = new Boots("Dark Boots", 30.0, 2, 40.0);
		b2 = new Boots("White Boots", 30.0, 3, 45.0);

		// Criação de todas Weapon

		Axe a1, a2, a3;
		Mace m1, m2, m3;
		Sword sw1, sw2;

		a1 = new Axe("Knife", 10.0, 5, 3);
		a2 = new Axe("Dagger", 8.0, 4, 2);
		a3 = new Axe("Brass Knuckles", 10.0, 3, 1);
		m1 = new Mace("Pistol", 80.0, 9, 100);
		m2 = new Mace("Rifle", 100.0, 10, 100);
		m3 = new Mace("Grenade", 10.0, 8, 10);
		sw1 = new Sword("Machine Gun", 1000.0, 10, 100);
		sw2 = new Sword("Nunchaku", 50.0, 3, 10);

		// Criação dos Health Potion

		HealthPotion hp1, hp2, hp3, hp4, hp5;

		hp1 = new HealthPotion("Water", 100.0, 15);
		hp2 = new HealthPotion("Blood", 110.0, 30);
		hp3 = new HealthPotion("Juice", 50.0, 25);
		hp4 = new HealthPotion("Coke", 20.0, 20);
		hp5 = new HealthPotion("Coffe", 140.0, 100);

		// Criação dos ManaPotion

		ManaPotion mp1, mp2, mp3;

		mp1 = new ManaPotion("Fat", 50.0, 40);
		mp2 = new ManaPotion("Soup", 60.0, 50);
		mp3 = new ManaPotion("Cigarette", 50.0, 40);

		// Criando espaço na BackPack dos lutadores
		ch0.showMyItems().setSpaces(20);
		ch1.showMyItems().setSpaces(20);
		ch2.showMyItems().setSpaces(20);
		ch3.showMyItems().setSpaces(20);
		ch4.showMyItems().setSpaces(20);
		ch5.showMyItems().setSpaces(20);

		// Inserindo armor no inventario dos lutadores
		ch0.showMyItems().insertItem(armor1);
		ch1.showMyItems().insertItem(armor2);
		ch2.showMyItems().insertItem(armor3);
		ch3.showMyItems().insertItem(armor4);
		ch4.showMyItems().insertItem(armor5);
		ch5.showMyItems().insertItem(armor6);

		// Inserindo weapon no inventario dos lutadores
		ch0.showMyItems().insertItem(a1);
		ch1.showMyItems().insertItem(a2);
		ch2.showMyItems().insertItem(a3);
		ch3.showMyItems().insertItem(m1);
		ch4.showMyItems().insertItem(m2);
		ch5.showMyItems().insertItem(sw1);

		// Inserindo Shield no inventario dos lutadores
		ch0.showMyItems().insertItem(s1);
		ch1.showMyItems().insertItem(s2);
		ch2.showMyItems().insertItem(s3);
		ch3.showMyItems().insertItem(s4);

		// Inserindo Helmet no inventario dos Lutadores
		ch0.showMyItems().insertItem(h1);
		ch1.showMyItems().insertItem(h2);

		// Inserindo Legs no inventario dos Lutadores
		ch0.showMyItems().insertItem(l1);
		ch1.showMyItems().insertItem(l2);

		// Inserindo Boots no inventario dos Lutadores
		ch0.showMyItems().insertItem(b1);
		ch1.showMyItems().insertItem(b2);

		// Equipando os Items Armor nos lutadores
		ch0.showMyItems().searchItem("Shirt").setUsing(true);
		ch1.showMyItems().searchItem("TShirt").setUsing(true);
		ch2.showMyItems().searchItem("Jacket").setUsing(true);
		ch3.showMyItems().searchItem("Dress").setUsing(true);
		ch4.showMyItems().searchItem("Leather").setUsing(true);
		ch5.showMyItems().searchItem("Suit").setUsing(true);

		// Equipando os Items Weapon nos lutadores
		ch0.showMyItems().searchItem("Knife").setUsing(true);
		ch1.showMyItems().searchItem("Dagger").setUsing(true);
		ch2.showMyItems().searchItem("Brass Knuckles").setUsing(true);
		ch3.showMyItems().searchItem("Pistol").setUsing(true);
		ch4.showMyItems().searchItem("Rifle").setUsing(true);
		ch5.showMyItems().searchItem("Machine Gun").setUsing(true);

		// Colocando encantamento em algumas weapon
		sw2.Enchantment(true);
		a1.Enchantment(true);
		m1.Enhance(true);

		// Equipando os Items Shield nos lutadores
		ch0.showMyItems().searchItem("Dark Shield").setUsing(true);
		ch1.showMyItems().searchItem("White Shield").setUsing(true);
		ch2.showMyItems().searchItem("Blue Shield").setUsing(true);
		ch3.showMyItems().searchItem("Red Shield").setUsing(true);

		// Equipando os Items Helmet nos lutadores
		ch0.showMyItems().searchItem("Dark Helmet").setUsing(true);
		ch1.showMyItems().searchItem("White Helmet").setUsing(true);

		// Equipando os Items Legs nos lutadores
		ch0.showMyItems().searchItem("Dark Legs").setUsing(true);
		ch1.showMyItems().searchItem("White Legs").setUsing(true);

		// Equipando os Items Boots nos lutadores
		ch0.showMyItems().searchItem("Dark Boots").setUsing(true);
		ch1.showMyItems().searchItem("White Boots").setUsing(true);

		// Inserindo HealthPotion no inventario dos lutadores
		ch0.showMyItems().insertItem(hp1);
		ch1.showMyItems().insertItem(hp2);
		ch2.showMyItems().insertItem(hp3);
		ch3.showMyItems().insertItem(hp4);
		ch4.showMyItems().insertItem(hp5);

		// Inserindo ManaPotion no inventario dos lutadores
		ch5.showMyItems().insertItem(mp1);

		/* JOGO CRIADO PELO USUÁRIO */

		System.out.println("\nWelcome to Fight Club! ");
		System.out
				.println("\nVocê possui os seguintes personagens, escolha 3 para cada time:\n");

		ArrayList<Character> allchar;
		allchar = new ArrayList<Character>();

		allchar.add(ch0);
		allchar.add(ch1);
		allchar.add(ch2);
		allchar.add(ch3);
		allchar.add(ch4);
		allchar.add(ch5);

		for (int i = 0; i < allchar.size(); i++) {
			System.out.println("\n[" + i + "]" + allchar.get(i).getName());
		}

		System.out.println("\nTimes Disponíveis:\nTime 1: " + team1.getName()
				+ "\nTime 2: " + team2.getName());

		System.out.println("\nDigite o numero de 3 jogadores para o time 1:\n");
		Scanner t1 = new Scanner(System.in);
		int c1 = t1.nextInt();
		int c2 = t1.nextInt();
		int c3 = t1.nextInt();

		team1.addChar(allchar.get(c1));
		team1.addChar(allchar.get(c2));
		team1.addChar(allchar.get(c3));

		for (int i = 0; i < 6; i++) {
			if (c1 != i && c2 != i && c3 != i) {
				team2.addChar(allchar.get(i));
			}
		}

		System.out.println("\nIntegrantes do Time 1:\n"
				+ team1.searchChar(0).getName());
		System.out.println("\n" + team1.searchChar(1).getName());
		System.out.println("\n" + team1.searchChar(2).getName());

		System.out.println("\nIntegrantes do Time 2:\n"
				+ team2.searchChar(0).getName());
		System.out.println("\n" + team2.searchChar(1).getName());
		System.out.println("\n" + team2.searchChar(2).getName());

		System.out
				.println("\nEscolha o numero do primeiro time a atacar [1] ou [2]:\n");
		Scanner ft = new Scanner(System.in);
		int pt = ft.nextInt();

		System.out.println("\nA Batalha Começou!");

		Random generator = new Random();
		int probs = generator.nextInt(100);
		int teamfight = 0, teamclub = 0;
		Random gen = new Random();

		System.out.println("\n\n\nComeça uma nova rodada ");

		List<Integer> lista = new ArrayList<Integer>();
		lista.add(new Integer(0));
		lista.add(new Integer(1));
		lista.add(new Integer(2));

		List<Integer> lista2 = new ArrayList<Integer>();
		lista2.add(new Integer(0));
		lista2.add(new Integer(1));
		lista2.add(new Integer(2));

		if (pt == 1) {

			System.out.println("\n\n\nComeça uma nova rodada ");
			teamfight = 1;

			if (teamfight == 1) {
				for (int j = 0; j < 3; j++) {
					Collections.shuffle(lista);
					Collections.shuffle(lista2);
					System.out.println("\nÉ a vez do Time " + team1.getName()
							+ " Atacar!");
					team1.searchChar(((Integer) lista.get(0)).intValue())
							.attack(team2.searchChar(((Integer) lista2.get(0))
									.intValue()));
					System.out.println("\nÉ a vez do Time " + team2.getName()
							+ " Atacar!");
					team2.searchChar(((Integer) lista2.remove(0)).intValue())
							.attack(team1.searchChar(((Integer) lista.remove(0))
									.intValue()));

				}
			}
		} else {
			for (int j = 0; j < 3; j++) {
				Collections.shuffle(lista);
				Collections.shuffle(lista2);
				System.out.println("\nÉ a vez do Time " + team2.getName()
						+ " Atacar!");
				team2.searchChar(((Integer) lista2.get(0)).intValue()).attack(
						team1.searchChar(((Integer) lista.get(0)).intValue()));
				System.out.println("\nÉ a vez do Time " + team1.getName()
						+ " Atacar!");
				team1.searchChar(((Integer) lista.remove(0)).intValue())
						.attack(team2.searchChar(((Integer) lista2.remove(0))
								.intValue()));
			}
		}

		team1.resolveBattle(team2);
		team2.resolveBattle(team1);

		int j = 0;
		while (j == 0) {
			System.out
					.println("\nDigite [0] para acabar a batalha ou escolha o próximo time a começar a proxima rodada [1] ou [2]\n");
			Scanner n = new Scanner(System.in);
			int rod = n.nextInt();

			List<Integer> lista3 = new ArrayList<Integer>();
			lista3.add(new Integer(0));
			lista3.add(new Integer(1));
			lista3.add(new Integer(2));

			List<Integer> lista4 = new ArrayList<Integer>();
			lista4.add(new Integer(0));
			lista4.add(new Integer(1));
			lista4.add(new Integer(2));

			if (rod == 0) {

				break;

			} else if (rod == 1) {

				System.out.println("\n\n\nComeça uma nova rodada ");
				teamfight = 1;

				if (teamfight == 1) {
					for (int k = 0; k < 3; k++) {
						Collections.shuffle(lista3);
						Collections.shuffle(lista4);
						System.out.println("\nÉ a vez do Time "
								+ team1.getName() + " Atacar!");
						team1.searchChar(((Integer) lista3.get(0)).intValue())
								.attack(team2.searchChar(((Integer) lista4
										.get(0)).intValue()));
						System.out.println("\nÉ a vez do Time "
								+ team2.getName() + " Atacar!");
						team2.searchChar(
								((Integer) lista4.remove(0)).intValue())
								.attack(team1.searchChar(((Integer) lista3
										.remove(0)).intValue()));

					}
				}
			} else {
				for (int k = 0; k < 3; k++) {
					Collections.shuffle(lista3);
					Collections.shuffle(lista4);
					System.out.println("\nÉ a vez do Time " + team2.getName()
							+ " Atacar!");
					team2.searchChar(((Integer) lista4.get(0)).intValue())
							.attack(team1.searchChar(((Integer) lista3.get(0))
									.intValue()));
					System.out.println("\nÉ a vez do Time " + team1.getName()
							+ " Atacar!");
					team1.searchChar(((Integer) lista3.remove(0)).intValue())
							.attack(team2.searchChar(((Integer) lista4
									.remove(0)).intValue()));
				}
			}

			team1.resolveBattle(team2);
			team2.resolveBattle(team1);
		}

		System.out.println("\nResultado do Time Fight: " + team1.getResults());
		System.out.println("\nResultado do Time Club: " + team2.getResults());

	}