diff --git a/src/main/java/io/takima/Yatzy.java b/src/main/java/io/takima/Yatzy.java index a9cf0934178ad71dc3bc45024743b1d35c04f57a..c8a684ffdd3818525cf52b8923416c2a5aa6bcd0 100644 --- a/src/main/java/io/takima/Yatzy.java +++ b/src/main/java/io/takima/Yatzy.java @@ -11,15 +11,10 @@ public final class Yatzy { return roll.toStream().sum(); } - public static int yatzy(int... dice) { - int[] counts = new int[6]; - for (int die : dice) { - counts[die - 1]++; - } - for (int i = 0; i != 6; i++) { - if (counts[i] == 5) { - return 50; - } + public static int yatzy(Roll roll) { + long numberOfDistinctElements = roll.toStream().distinct().count(); + if (numberOfDistinctElements == 1) { + return 50; } return 0; } diff --git a/src/test/java/io/takima/YatzyTest.java b/src/test/java/io/takima/YatzyTest.java index d9d59209e01a1c3f915c2e813f2395be7c6286ec..689ffbbf4674e7f0da186e62934bee9fd7417880 100644 --- a/src/test/java/io/takima/YatzyTest.java +++ b/src/test/java/io/takima/YatzyTest.java @@ -18,14 +18,14 @@ class YatzyTest { @Test void yatzyShouldScoreFiftyIfAllDicesHaveTheSameValue() { assertAll( - () -> assertEquals(50, Yatzy.yatzy(4, 4, 4, 4, 4)), - () -> assertEquals(50, Yatzy.yatzy(6, 6, 6, 6, 6)) + () -> assertEquals(50, Yatzy.yatzy(roll(4, 4, 4, 4, 4))), + () -> assertEquals(50, Yatzy.yatzy(roll(6, 6, 6, 6, 6))) ); } @Test void yatzyShouldScoreZeroIfAllDicesHaveNotTheSameValue() { - assertEquals(0, Yatzy.yatzy(6, 6, 6, 6, 3)); + assertEquals(0, Yatzy.yatzy(roll(6, 6, 6, 6, 3))); } @Test