Anda di halaman 1dari 9

/*

DriverJuego.java
Autores: Claudia Grajeda 10118
Juan Carlos Rosito 10043
Diego Yon 10070
Fecha: 20 de agosto de 2010
Descripcion: Driver (main)
*/
import java.util.*;
public class DriverJuego {
public static void main(String[] args) {
//Objetos
Scanner ingreso= new Scanner(System.in);
Juego juego;
Scores[] lista;
//Variables
String nombre;
int i=0, opcion=0,fil=-1,col=-1,cordenadaf1=-1,cordenadac1=-1,co
rdenadaf2=-1,cordenadac2=-1;
int acFila1,acColu1,acFila2,acColu2,puntosTot=0,turnos=0;
//Lista para los high scores
lista = new Scores[10];
for (int r= 0; r<lista.length;r++)
lista[r]=new Scores("------",0);
do{
menu();
opcion = (int)obtenerNumero ("Ingrese su opcion:
", false);
switch(opcion){
case 1:
System.out.println(Juego.getInst
rucciones());
break;
case 2:
//El usuario escoge la cantidad
de filas
do{
System.out.print
("\nIngrese la cantidad de filas: ");
try{
fil = in
greso.nextInt();
ingreso.
nextLine();
if (fil<
4 || fil > 9){
System.out.println("ERROR: Es recomendable que sea mayor que 3 y menor que 10.")
;
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMisma
tchException exception){
System.o
ut.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.
nextLine();
}
}while(fil<4 || fil > 9)
;
//El usuario escoge la c
antidad de columnas
do{
System.out.print
("\nIngrese la cantidad de columnas: ");
try{
col = in
greso.nextInt();
ingreso.
nextLine();
if (col<
5|| col > 9){
System.out.println("ERROR: Es recomendable que sea mayor que 4 y menor que 10.")
;
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMisma
tchException exception){
System.o
ut.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.
nextLine();
}
}while(col<5 || col > 9)
;
//Se crea el juego segun
la cantidad de filas y columnas
juego= new Juego(fil,col
);

//asignacion de cero
turnos=0;
puntosTot=0;
while(turnos<5){
//contador de tu
rnos
turnos++;
//imprime inicia
lmente el juego
System.out.print
ln(juego);
do{//Verificar s
i una esta a la par de la otra
do{//Ver
ificar si seleccionó la misma casilla
//Ingreso de la primera coordenada a cambiar
System.out.println("\nIngrese la primera coordenada del simbolo que desea cambia
r:");
do{
cordenadaf1=-1;
System.out.print("Fila: ");
try{
cordenadaf1 = ingreso.nextInt()-1;
ingreso.nextLine();
if (cordenadaf1<0 || cordenadaf1 > fil-1){
System.out.println("ERROR: No esta dentro de los parametros de la matriz.");
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMismatchException exception){
System.out.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.nextLine();
}
}while(cordenadaf1<0 || cordenadaf1> fil-1);

do{
cordenadac1=-1;
System.out.print("Columna: ");
try{
cordenadac1 = ingreso.nextInt()-1;
ingreso.nextLine();
if (cordenadac1<0 || cordenadac1 > col-1){
System.out.println("ERROR: No esta dentro de los parametros de la matriz.");
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMismatchException exception){
System.out.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.nextLine();
}
}while(cordenadac1<0 || cordenadac1> col-1);

//Ingreso de la segunda coordenada a cambiar


System.out.println("\nIngrese la segunda coordenada a cambiar: ");
do{
cordenadaf2=-1;
System.out.print("Fila: ");
try{
cordenadaf2 = ingreso.nextInt()-1;
ingreso.nextLine();
if (cordenadaf2<0 || cordenadaf2 > fil){
System.out.println("ERROR: No esta dentro de los parametros de la matriz.");
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMismatchException exception){
System.out.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.nextLine();
}
}while(cordenadaf2<0 || cordenadaf2> fil);

do{
cordenadac2=-1;
System.out.print("Columna: ");
try{
cordenadac2 = ingreso.nextInt()-1;
ingreso.nextLine();
if (cordenadac2<0 || cordenadac2 > col){
System.out.println("ERROR: No esta dentro de los parametros de la matriz.");
System.out.println("Intente de nuevo.\n");
}
}
catch(InputMismatchException exception){
System.out.println("ERROR: Ingreso invalido. Intente de nuevo.\n");
ingreso.nextLine();
}
}while(cordenadac2<0 || cordenadac2> col);

if (cordenadac1==cordenadac2 && cordenadaf1 == cordenadaf2 )


System.out.println("ERROR: Es la misma pieza. Intente de nuevo.\n");
if (cordenadac1 != cordenadac2 && cordenadaf1 != cordenadaf2){
System.out.println ("ERROR: Es necesario que estan a la par o una arriba de la o
tra.");
System.out.println ("Intente de nuevo.\n");
}
}while((
cordenadac1==cordenadac2 && cordenadaf1 == cordenadaf2) ||
(cordenadaf1 != cordenadaf2 && cordenadac1 != cordenadac2));
if ( cor
denadac1 == cordenadac2){
if (cordenadaf1 > cordenadaf2){
if ((cordenadaf1-1) != cordenadaf2){
System.out.println("ERROR: Deben de estar una arriba de la otra " +
"ya que estan en la misma columna.");
System.out.println("Intente de nuevo.\n");
}
}
if (cordenadaf1 < cordenadaf2){
if ((cordenadaf1+1)!= cordenadaf2){
System.out.println("ERROR: Deben de estar una arriba de la otra " +
"ya que estan en la misma columna");
System.out.println("Intente de nuevo.\n");
}
}
}
if (cord
enadaf1 == cordenadaf2){
if (cordenadac1 > cordenadac2){
if ((cordenadac1-1) != cordenadac2){
System.out.println("ERROR: Deben de estar una a la par de la otra " +
"ya que estan en la misma fila.");
System.out.println("Intente de nuevo.\n");
}
}
if (cordenadac1 < cordenadac2){
if ((cordenadac1+1) != cordenadac2){
System.out.println("ERROR: Deben de estar una a la par de la otra " +
"ya que estan en la misma fila.");
System.out.println("Intente de nuevo.\n");
}
}
}
}while ((cordena
dac1 > cordenadac2 & ((cordenadac1-1) != cordenadac2)) ||
(cordenadac1 < cordenadac2 & ((cordenadac1+1) != cordenadac2)) ||
(cordenadaf1 > cordenadaf2 & ((cordenadaf1-1) != cordenadaf2)) ||
(cordenadaf1 < cordenadaf2 & ((cordenadaf1+1)!= cordenadaf2)));
//Se efectua el
remplazo de los dos simbolos
juego.remplazo(c
ordenadaf1,cordenadaf2,cordenadac1,cordenadac2);
System.out.print
ln(juego);
//Cada "ac" (acu
mulador) devuelve cuantos simbolos estan juntos en la matriz
//Cantidad de si
mbolos juntos en la fila 1
acFila1=juego.bu
squedaFila1(cordenadaf1,cordenadac1);
//Cantidad de si
mbolos juntos en la columna 2
acColu1=juego.bu
squedaColumna1(cordenadaf1,cordenadac1);
//Cantidad de si
mbolos juntos en la columna 2
acFila2=juego.bu
squedaFila2(cordenadaf2,cordenadac2);
//Cantidad de si
mbolos juntos en la fila 2
acColu2=juego.bu
squedaColumna2(cordenadaf2,cordenadac2);
//Se asignan otr
os valores random a los simbolos que les dieron puntos
juego.relleno(co
rdenadaf1,cordenadaf2,cordenadac1,cordenadac2);
//Imprime y suma
el total de puntos segun el metodo puntos
puntosTot+=juego
.puntos(acFila1)+juego.puntos(acFila2)+juego.puntos(acColu1)+juego.puntos(acColu
2);
System.out.print
ln(puntosTot);
}//Fin del while
if (puntosTot>=200){
System.out.print
ln("\nGanooo!!!! Con un puntaje de: "+puntosTot+" y en "+turnos+" turnos.");
//Se ingresa el
nombre del jugador
System.out.print
("\nIngrese su nombre: ");
nombre = ingreso
.nextLine();
//inicializando
la posicion i
lista[i] = new S
cores(nombre, puntosTot);
i++;
}
else{
System.out.print
ln("\nLo sentimos, perdio con un puntaje de: "+puntosTot+
" ya que se le acabaron los 5 turnos y no alcanzo los 200 puntos.");
}
break;
case 3:
//Imprime los puntajes de las pe
rsonas que han ganado
System.out.println("\n\tHIGH SCO
RES\n");
System.out.println("Nombre"+"\t"
+ "Score");
for(int cont = 0; cont<lista.len
gth; cont++)
System.out.println(lista
[cont]);
System.out.println();
break;
case 4:
//Se sale del programa
System.out.println("\nGracias po
r jugar. :D");
break;
default:{
System.out.println("ERROR: Ingre
so invalido. Intente de nuevo.");
}
}//fin del switch
}while(opcion!=4);//fin del while
}//fin del main

public static void menu(){


//Titulo
System.out.println("\t+----------------------------+");
System.out.println("\t|-------F I S H D O M--------|");
System.out.println("\t+----------------------------+");
//Menu
System.out.println("");
System.out.println("\t+------MENU DE OPCIONES------+");
System.out.println("\t| 1. Instrucciones |");
System.out.println("\t| 2. Jugar |");
System.out.println("\t| 3. High scores |");
System.out.println("\t| 4. Salir del juego |");
System.out.println("\t+----------------------------+");
System.out.println("");
}
//obtenerNumero
public static double obtenerNumero (String mensaje, boolean mostrar){
Scanner ingreso = new Scanner(System.in);
double num = -1;
System.out.print(mensaje);
try{
num = ingreso.nextDouble();
}
catch (InputMismatchException exception){
if(mostrar)
System.out.println ("\nERROR: Opcion invalida. I
ntente de nuevo.");
}
finally{
ingreso.nextLine();
}
return num;
}
}//fin de la clase

Anda mungkin juga menyukai