private boolean sort()
	{
		// Obter pontuações
		String contents = toString();

		if(contents == null)
			return false;

		String[] scoresArr = contents.split( Util.EOL ); // Array de pontuações
		int[] scoresVals = new int[ scoresArr.length ]; // Array com valores
		String[][] scoresNomes = new String[ scoresArr.length ][2]; // Array com valores e nomes

		// Preencher scoreVals e scoreNomes
		for(int i=0; i<scoresArr.length; i++)
		{
			String[] scoresTemp = scoresArr[i].trim().split("\t");

			if( !scoresTemp[1].isEmpty() ) // Nome
			{
				scoresVals[i] = Util.parseInt( scoresTemp[0] ); // Valor
				scoresNomes[i][0] = scoresTemp[0]; // Valor
				scoresNomes[i][1] = scoresTemp[1]; // Nome
			}
		}

		// Ordenar scoreVals
		Arrays.sort( scoresVals );

		// Preparar para escrita
		PrintStream out;
		try
		{
			out = new PrintStream( new File(Engine.TOP_SCORES_FILE) );
		}
		catch (FileNotFoundException e)
		{
			return false;
		}

		// Escrever no ficheiro
		for(int i=0; i<scoresArr.length; i++)
		{
			// Para só escrever até ao máximo de pontuações
			if( i>=Engine.MAX_TOP_SCORES )
				break;

			int pos = scoresArr.length-1-i; // Posição do valor
			int valor = scoresVals[pos]; // Valor

			// Encontrar o nome
			String nome = new String("");
			for(int j=0; j<scoresArr.length; j++)
			{
				if( scoresNomes[j][0].equals( ""+scoresVals[pos] ) )
				{
					nome = scoresNomes[j][1]; // Nome
					break;
				}
			}

			if( !nome.isEmpty() )
			{
				out.println(valor+"\t"+nome); // Escrever
			}
		}

		// Fechar o ficheiro
		out.close();

		return true;
	}