jeudi 19 juillet 2018

Design Pattern in Java for Getting Input and Acting on it

I'm trying to make a tic-tac-toe game and I'm encountering a lot of copy-paste work for inputs. I'm trying to figure out what design pattern and implementation works for prompting the user, collecting their input, comparing it and then acting by assigning a value. Right now my code looks like this.

public void promptPlayerCount(BufferedReader in) throws IOException {
    String  input;

    // initial prompt
    System.out.println("How many players?");
    input = "try again";
    while (input.equals("try again")) {
        input = in.readLine();
        // extract data and check it
        switch (Integer.parseInt(input)) {
            case 1:
                // assignment
                playerCount = 1;
                break;
            case 2:
                playerCount = 2;
                break;
            default:
                input = "try again";
                // clarified instructions
                System.out.println("please enter 1 or 2");
        }
    }
}

There's a part of me that thinks I could make a function (maybe a factory?) that allows me to generate a function by passing the constructing function the details of the initial prompt, the extraction method, the assignment action and the clarification message.

Would this be best done with lambda functions?

Aucun commentaire:

Enregistrer un commentaire