All pastes #430403 Raw Edit

Stuff

public java v1 · immutable
·published 2007-04-08 23:24 UTC
rendered paste body
import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;public class Main {	static int primerValor(String lineaLeida)	{		int contador = 0;		int resultado = 0;		boolean termine = false;		while (contador < lineaLeida.length() && ! termine) 		{			if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9')			{				resultado = resultado*10 + lineaLeida.charAt(contador) - 48;			}			else if (resultado != 0) 			{				//significa que lei un espacio, y que tengo que terminar				termine = true;			}			contador++;		}		return resultado;	}		static int segundoValor(String lineaLeida)	{		int contador = 0;		int resultado = 0;		boolean llegueHastaElEspacio = false;		boolean yaPasePorElPrimerNumero = false;						//primero leo hasta leer el primer numero		while (contador < lineaLeida.length() && ! yaPasePorElPrimerNumero)		{			if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9')			{				yaPasePorElPrimerNumero = true;			}			contador++;		}		//ahora leo hasta encontrar espacios		while (contador < lineaLeida.length() && !llegueHastaElEspacio)		{			if (!(lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9'))			{				llegueHastaElEspacio = true;			}			contador++;		}		//ahora leo el segundo numero		while (contador < lineaLeida.length())		{			if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9')			{				resultado = resultado*10 + lineaLeida.charAt(contador) - 48;			}			contador++;		}				return resultado;	}		static void enemySort(Tipito[] todasLasPersonas)	{		int maximosEnemigos = 0;		int contador = 0;		while (contador < todasLasPersonas.length)		{			maximosEnemigos = maximo(todasLasPersonas, contador);			if (maximosEnemigos != 0)			{				arraySwap(todasLasPersonas, maximosEnemigos, contador);			}			contador++;		}	}			static int maximo(Tipito[] todasLasPersonas, int desde)	{		int resultado = 0;		int contador = desde;		while (contador < todasLasPersonas.length)		{			if (todasLasPersonas[contador].cantEnemigos > resultado)			{				resultado = contador;			}			contador++;		}		return resultado;	}		static void arraySwap(Tipito[] todasLasPersonas, int maximo, int actual)	{		Tipito temporal = new Tipito();		temporal = todasLasPersonas[maximo];		todasLasPersonas[maximo] = todasLasPersonas[actual];		todasLasPersonas[actual] = temporal;	}		static int resolverEjercicio2(Tipito[] todasLasPersonas)	{		int personaActual = 0;		int resultado = 0;		while (personaActual < todasLasPersonas.length )		{			if (todasLasPersonas[personaActual].cantEnemigos == 0) 			{				resultado++;			}			else			{				int contador = personaActual;				while (contador < todasLasPersonas.length) 				{					todasLasPersonas[contador].setPelea(personaActual, false);					contador++;				}				System.out.println("*************************************************");				System.out.println("En la pasada: " + personaActual + " tengo la matriz:");				mostrarMatriz(todasLasPersonas);			}			personaActual++;		}		return resultado;	}		static void mostrarMatriz(Tipito[] todasLasPersonas) 	{		//muetro la matriz por pantalla		int contador = 0;		int quePersona = 0;		while (quePersona < todasLasPersonas.length)		{			while (contador < todasLasPersonas.length)			{				System.out.print(todasLasPersonas[quePersona].peleados[contador] + "  ");				contador++;			}			System.out.println("");			contador = 0;			quePersona++;					}		System.out.println("IMPRIMO LA CANTIDAD DE ENEMIGOS DE CADA LINEA");		contador = 0;		while (contador < todasLasPersonas.length)		{			System.out.println(todasLasPersonas[contador].cantEnemigos);			contador++;		}	}	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub				int contador = 0;		int cantPersonas = 0;		int cantPeleados = 0;		int peleado1 = 0;		int peleado2 = 0;				String lineaLeida = new String();				FileReader fr;		try 		{			fr = new FileReader("Ej1In.txt");			BufferedReader in = new BufferedReader(fr);			lineaLeida = in.readLine();			cantPersonas = primerValor(lineaLeida);			cantPeleados = segundoValor(lineaLeida);						//inicializo la "matriz"			Tipito[] todasLasPersonas = new Tipito[cantPersonas];			while (contador < cantPersonas)			{				todasLasPersonas[contador] = new Tipito(contador, cantPersonas);				contador++;			}						contador = 0;			while (contador < cantPeleados)			{				lineaLeida = in.readLine();				peleado1 = primerValor(lineaLeida);				peleado2 = segundoValor(lineaLeida);				todasLasPersonas[peleado1-1].setPelea(peleado2-1, true);				todasLasPersonas[peleado2-1].setPelea(peleado1-1,true);				contador++;			}						System.out.println("Muestro la pantalla leida en el archivo");			mostrarMatriz(todasLasPersonas);						//la ordeno por cantidad de enemigos			enemySort(todasLasPersonas);			System.out.println("Como maximo se pueden invitar a: " + resolverEjercicio2(todasLasPersonas) + " personas");					} 				catch (Exception e) 		{			// TODO Auto-generated catch block			System.out.println("Salio por la exceptio e: " +e);			e.printStackTrace();		}				System.out.println("Termine el programa");	}		}