You are on page 1of 10

PROYECTO FINAL “TABLERO DE DARDOS” PRIMERA PARTE

Brahyan Aguirre Díaz

Mateo Betancurt Vélez

Profesor:

Julián Esteban Gutiérrez Posada

Universidad del Quindío

Programa Ingeniería de Sistemas y Computación

Paradigma Orientado a Objetos

Armenia, Quindío

Octubre del 2016

realizando lanzamientos a un tablero de dardos * a través de la función Math. final static int PUNTAJE = 301.parseInt(JOptionPane.ImageIcon. new ImageIcon("src/imagen/Error. /** * Programa para contabilizar los puntos realizados por un jugador. TABLERO DE DARDOS CÓDIGO FUENTE: //Estudiantes: Mateo Betancurt Vélez. * * @author Mateo Betancurt Velez * @author Brahyan Aguirre Díaz */ public class Dardos { final static int DIANA_SIMPLE = 25."Por favor digite un número".png")).swing. import javax.JOptionPane.ERROR_MESSAGE. "¡ERROR!". } catch(Exception e) { JOptionPane. Brahyan Aguirre Díaz //Profesor: Julián Esteban Gutiérrez Posada //Materia: Paradigma Orientado a Objetos //Proyecto: Dardos package Dardos. import javax. } } } 2 .swing.random() e imprime el puntaje de cada lanzamiento y el puntaje final del jugador. final static int DIANA = 50.showMessageDialog(null.showInputDialog(m)). /** * Método para leer un entero * * @param m Mensaje de la pregunta (Dato que se va a solicitar) * @return Número entero dado por usuario */ public static int leerEntero(String m) { while (true) { try { return Integer. JOptionPane.

INFORMATION_MESSAGE. } return tipo.png")). } else { JOptionPane.showMessageDialog(null. /** * Método para imprimir un mensaje * * @param t Texto a imprimir * @param tipoPartida Texto del tipo de partida */ public static void imprimir(String t."Resultados". t.INFORMATION_MESSAGE. new ImageIcon("src/imagen/PartidaBuena. JOptionPane.INFORMATION_MESSAGE. } if(puntaje >=201 && puntaje <= 301) { tipo = "PARTIDA MALA". } if(puntaje >= 101 && puntaje <= 200) { tipo = "PARTIDA NORMAL". t. } 3 . JOptionPane. if(puntaje >= 0 && puntaje <= 100) { tipo = "PARTIDA BUENA". new ImageIcon("src/imagen/PartidaMala.String tipoPartida) { if (tipoPartida == "PARTIDA BUENA") { JOptionPane. } } } /** * Método para calculaar tipo de partida * * @param puntaje Puntaje del jugador para determinar el tipo de partida * @return Tipo de partida (PARTIDA BUENA."Resultados". t.png")). new ImageIcon("src/imagen/PartidaNormal. PARTIDA NORMAL."Resultados". } else { if (tipoPartida == "PARTIDA NORMAL") { JOptionPane. PARTIDA MALA) */ public static String tipoPartida(int puntaje) { String tipo = null.showMessageDialog(null.showMessageDialog(null. JOptionPane.png")).

break.tipoPartida). menu += "1. break. Ver puntaje\n". puntaje = jugar(puntaje). switch (opcion) { case 1: nombre = JOptionPane. JOptionPane. case 2: if(nombre != null && tipoPartida != null) { JOptionPane. Salir". int puntaje) { String menu. String tipoPartida. Jugar\n". new ImageIcon("src/imagen/NoPuntaje. menu = "JUEGO DE DARDOS\n\n". } 4 . do { opcion = leerEntero(menu). JOptionPane. imprimir("Nombre: " + nombre + "\nPuntaje: " + puntaje + "\n"+ tipoPartida. } else { JOptionPane. int opcion.INFORMATION_MESSAGE."No hay datos aún". \n"+"Aún no se encuentran partidas realizadas".png")).showMessageDialog(null."Nombre: " + nombre+ "\nPuntaje: " + puntaje + "\n" + tipoPartida.showMessageDialog(null.INFORMATION_MESSAGE."Puntaje". new ImageIcon("src/imagen/MejorPuntaje. puntaje =PUNTAJE. menu += "3. break."Lo sentimos. /** * Método para procesar el menú * * @param nombre Nombre del jugador ingresado * @param tipoPartida Tipo de partida (PARTIDA BUENA.showInputDialog("Por favor ingrese el nombre del jugador"). menu += "2. PARTIDA MALA) * @param puntaje Puntaje inicial de la partida */ public static void procesarMenu(String nombre. PARTIDA NORMAL.png")). tipoPartida = tipoPartida(puntaje).

new ImageIcon("src/imagen/Advertencia.png")). case 3: JOptionPane.i<11. } else { return 0."Advertencia"."LANZAMIENTO: " + i + "\n\n" + "Cayó en zona: " + zona + "\n" + "Puntos: " + puntos + "\n" + "Puntaje: " + puntaje. new ImageIcon("src/imagen/Lanzamientos.i++) { int puntos.showMessageDialog(null.random()* 62 + 1).png")).JOptionPane.showMessageDialog(null."Salir". } }while (opcion != 3). JOptionPane. zonaLanzamiento = (int) (Math. if(puntaje . } /** * Método para generar 10 lanzamientos de números aleatorios * * @param puntaje Puntaje inicial de la partida * @return Puntaje total al final de los 10 lanzamientos */ public static int jugar(int puntaje) { int i. } } if(zonaLanzamiento >=21 && zonaLanzamiento <=40) { 5 .JOptionPane. break."Fin del juego". zona = (int) (Math. if(puntaje >0) { if(zonaLanzamiento >=1 && zonaLanzamiento <=20) { puntos = zona.INFORMATION_MESSAGE.png")).showMessageDialog(null. new ImageIcon("src/imagen/Fin."Número no válido".INFORMATION_MESSAGE. zonaLanzamiento.puntos >= 0) { puntaje -= puntos. break. zona.random()* 20 + 1). JOptionPane.INFORMATION_MESSAGE. for(i=1. default: JOptionPane. "Lanzamientos".

puntos >=0) { puntaje -= puntos.showMessageDialog(null. } else { return 0. JOptionPane.showMessageDialog(null.INFORMATION_MESSAGE.png") ). } } if(zonaLanzamiento >= 41 && zonaLanzamiento <=60) { puntos = (zona * 3). } } if(zonaLanzamiento == 61) { puntos = DIANA_SIMPLE.png") ).INFORMATION_MESSAGE. new ImageIcon("src/imagen/Lanzamientos.puntos >=0) { puntaje -= puntos. "Lanzamientos". 6 . JOptionPane."LANZAMIENTO: " + i + "\n\n" +"Cayó en zona externa: "+ zona + " *2" + "\n" + "Puntos: " + puntos + "\n" + "Puntaje: " + puntaje. "Lanzamientos".INFORMATION_MESSAGE. JOptionPane. } else { return 0. puntos = (zona * 2).puntos >=0) { puntaje -= puntos. JOptionPane."LANZAMIENTO: " + i + "\n\n" + "Cayó en Diana simle \n" + "Puntos: " + puntos + "\n" + "puntaje: " + puntaje. if(puntaje . if(puntaje . } else { return 0. if(puntaje ."LANZAMIENTO: " + i + "\n\n" + "Cayó en zona interna: " + zona + " *3" + "\n" + "Puntos: " + puntos + "\n" + "Puntaje: " + puntaje. "Lanzamientos". JOptionPane. new ImageIcon("src/imagen/Lanzamientos. new ImageIcon("src/imagen/Lanzamientos.showMessageDialog(null. JOptionPane.png") ).

puntos >=0) { puntaje -= puntos. } } if(zonaLanzamiento == 62) { puntos = DIANA. tipoPartida = null.showMessageDialog(null.png") ). procesarMenu(nombre. } /** * @param args argumentos de linea de comandos */ public static void main(String[] args) { int puntaje. puntaje = PUNTAJE. JOptionPane. } else { return 0. } } } } return puntaje. "Lanzamientos".INFORMATION_MESSAGE. String nombre = null. } } 7 . if(puntaje . new ImageIcon("src/imagen/Lanzamientos. puntaje)."LANZAMIENTO: " + i + "\n\n" + "Cayó en la Diana \n" + "Puntos: " + puntos + "\n" + "Puntaje: " + puntaje. tipoPartida. JOptionPane.

EJECUCIÓN:  Menú  Jugar 8 .

 Ver Puntaje  Salir  Tipos de partida 9 .

 Validaciones  Ingreso de letras y/o símbolos  Números no incluidos en el menú  Ver puntaje sin haber jugado anteriormente 10 .