Cats vs Dogs

[aux_code language=»javascript» theme=»tomorrow» title=»Cats vs Dogs» extra_classes=»»]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    private static int cats;
    private static int dogs;

    public static void main(String[] args) {
        cats = 0;
        dogs = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int e;

        do {
            try {
                System.out.println("Cats vs. Dogs\n" +
                        "=============\n" +
                        "1. Votar\n" +
                        "2. Resultados\n" +
                        "3. Salir\n" +
                        "Opción:");

                e = Integer.parseInt(br.readLine());

                switch (e) {
                    case 1:
                        String v;
                        do {
                            System.out.println("Elección (C|D):");
                            // sin charAt para controlar que realmente se ha escrito C o D y no CD.
                            v = br.readLine().toLowerCase();
                            switch (v) {
                                case "c":
                                    cats = votar(cats, br);
                                    break;
                                case "d":
                                    dogs = votar(dogs, br);
                                    break;
                                default:
                                    System.out.println("Opción no válida...");
                                    break;
                            }
                        } while (!v.equalsIgnoreCase("c") && !v.equalsIgnoreCase("d"));
                        break;

                    case 2:
                        resultado();
                        break;

                    case 3:
                        System.out.println("Me despido...");
                        break;

                    default:
                        System.out.println("Opción no válida...");
                        break;

                }
            } catch (IOException | NumberFormatException ex) {
                System.out.println("Sólo valores numéricos");
                e = -1;
            }
        } while (e != 3);
    }

    // me ha parecido mucho más corto en sentido de no repetir sout y funciones....
    private static int votar(int animal, BufferedReader br) throws IOException {
        System.out.println("Voto (+|-):");
        String v = br.readLine();
        if (v.equalsIgnoreCase("+")) {
            animal++;
        } else if (v.equalsIgnoreCase("-")) {
            animal--;
        } else {
            System.out.println("No es válido ese voto");
        }
        return animal;
    }

    private static void resultado() {
        int total = Math.abs(cats) + Math.abs(dogs);
        System.out.println("Cats: " + ((100 * cats) / total) + "%");
        System.out.println("Dogs: " + ((100 * dogs) / total) + "%");
    }
}
[/aux_code]
Etiquetas: Sin etiquetas

Añadir un comentario

Debes estar conectado para publicar un comentario