Roller.java
package chanceapps;

import chance.Die;

public class Roller {
    public static void main(String[] args) {
        createAndRollStandardDieFiveTimes();
        createAndRollTwentySidedDieFiveTimes();
        createAndRollStandardDie(20);
        createAndRollStandardDie(30);
        createAndRollNineSidedDie(20);
        createAndRollNineSidedDie(30);
        System.out.println("Ten times, roll a standard die for 1.");
        for (int i = 1; i <= 10; i++) {
            createAndRollStandardDieFor1();
        }
        System.out.println("Ten times, create a twelve sided die and roll until you get a 1.");
        for (int i = 1; i <= 10; i++) {
            createAndRollTwelveSidedDieFor1();
        }
    }

    private static void createAndRollStandardDieFiveTimes() {
        System.out.println("Roll a standard die 5 times . . . ");
        Die die = new Die();
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        System.out.println();
    }

    private static void createAndRollTwentySidedDieFiveTimes() {
        System.out.println("Roll a twenty sided die 5 times . . . ");
        Die die = new Die(20);
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        die.roll();
        System.out.print(die.top() + " ");
        System.out.println();
    }

    private static void createAndRollStandardDie(int nrOfTimes) {
        System.out.println("Roll a standard die " + nrOfTimes + " times . . . ");
        Die lucky = new Die();
        int i = 1;
        while (i <= nrOfTimes) {
            lucky.roll();
            System.out.print(lucky.top() + " ");
            i = i + 1;
        }
        System.out.println();
    }

    private static void createAndRollStandardDieFor1() {
        Die lucky = new Die();
        System.out.print(lucky.top() + " ");
        while (lucky.top() != 1) {
            lucky.roll();
            System.out.print(lucky.top() + " ");
        }
        System.out.println();
    }

    private static void createAndRollTwelveSidedDieFor1() {
        Die lucky = new Die(12);
        System.out.print(lucky.top() + " ");
        while (lucky.top() != 1) {
            lucky.roll();
            System.out.print(lucky.top() + " ");
        }
        System.out.println();
    }

    private static void createAndRollNineSidedDie(int nrOfTimes) {
        System.out.println("Roll a 9 sided die " + nrOfTimes + " times ...");
        Die lucky = new Die(9);
        for (int i = 1; i <= nrOfTimes; i= i+1) {
            lucky.roll();
            System.out.print(lucky.top() + " ");
        }
        System.out.println();
    }
}