public static void tournamentMode(Player[] players, int rounds) {
		
		HashMap<Player, Integer> ranking = new HashMap<Player, Integer>();
		for(Player p : players) {
			ranking.put(p, 0);
		}
		
		/*
		 * Start Tournament:
		 */
		
		System.out.println("***********************************************");
		System.out.println("* Tournament started ...");
		System.out.println("***********************************************\n");
		
		for(int i = 0; i < players.length; i++) {
			for(int j = 0; j < players.length; j++) {
	
				if(i != j) {
					// Let Player i play Player j
					Tournament tournament = new Tournament(ROWS, COLUMNS, players[i], players[j]);
					tournament.play(rounds);
					
					// Add number of wins of player 1
					int v1 = ranking.get(players[i]) + tournament.getWinsOfPlayer1();
					ranking.put(players[i], v1);
					
					// Add number of wins of player 2
					int v2 = ranking.get(players[j]) + tournament.getWinsOfPlayer2();
					ranking.put(players[j], v2);				
					
					System.out.println(players[i].getName()+" vs. "+players[j].getName()+": "
							+tournament.getWinsOfPlayer1()+" - "
							+tournament.getWinsOfPlayer2()+" (draws: "+tournament.getDraws()+")");
										
				}
			}
		}
		
		System.out.println();
		System.out.println("***********************************************");
		System.out.println("* Final Ranking ...");
		System.out.println("***********************************************\n");
		
		/*
		 * Produce Ranking:
		 */
		
		TreeSet<Integer> points = new TreeSet<Integer>(ranking.values()); 
		Iterator<Integer> iter = points.descendingIterator();
		
		int rank = 1;
		
		while(iter.hasNext()) {
			
			int p = iter.next();
			
			System.out.println("Rank "+rank+" with "+p+" points:");
			for(Player player : ranking.keySet()) {
				if(ranking.get(player) == p) {
					System.out.println("\t- "+player.getName());
				}
			}
			
			System.out.println();
			
			rank++;
		}
		
	}