diff --git a/src/main/java/com/hangman/players/YourPlayer.java b/src/main/java/com/hangman/players/YourPlayer.java index df4a96a..2973bcf 100644 --- a/src/main/java/com/hangman/players/YourPlayer.java +++ b/src/main/java/com/hangman/players/YourPlayer.java @@ -2,11 +2,26 @@ import com.hangman.Player; +import java.util.ArrayList; import java.util.List; +import static java.util.stream.Collectors.toList; + public class YourPlayer implements Player { + private String chars = "etaoinshrdlcubmwfgypvkjxqz"; + private int nextIndex = 0; + @Override public char getGuess(List currentClue) { - return 'a'; + List toExclude = currentClue.stream() + .filter(c -> c != null) + .collect(toList()); + + return getNextChar(toExclude); + } + + public char getNextChar(List excludes) { + char c = chars.charAt(nextIndex++); + return excludes.contains(c) ? getNextChar(excludes) : c; } } diff --git a/src/test/java/com/hangman/players/YourPlayerTest.java b/src/test/java/com/hangman/players/YourPlayerTest.java index b1e80e5..78331fd 100644 --- a/src/test/java/com/hangman/players/YourPlayerTest.java +++ b/src/test/java/com/hangman/players/YourPlayerTest.java @@ -1,34 +1,30 @@ package com.hangman.players; import org.junit.Test; + import java.util.Arrays; -import static org.junit.Assert.assertEquals; +import java.util.List; + +import static org.junit.Assert.assertTrue; public class YourPlayerTest { @Test - public void guessesAWhenThereAreNoSuccessfulCharactersGuessedYet() { + public void makesSuccessfulGuess() { YourPlayer player = new YourPlayer(); char guess = player.getGuess(Arrays.asList(null, null, null)); - assertEquals('a', guess); + assertTrue(Character.valueOf(guess) != null); } @Test - public void guessesAWhenThereAreSuccessfulCharactersGuessedThatAreNotA() { + public void guessesRandomLetterWhenAIsThereAreAsInTheClueAsWell() { YourPlayer player = new YourPlayer(); + List clues = Arrays.asList('x', 'b', 'g', 'f', 'i'); - char guess = player.getGuess(Arrays.asList('m', null, 'n')); - - assertEquals('a', guess); - } - - @Test - public void guessesAWhenAIsThereAreAsInTheClueAsWell() { - YourPlayer player = new YourPlayer(); - - char guess = player.getGuess(Arrays.asList(null, 'a', null)); - - assertEquals('a', guess); + clues.stream().forEach(c -> { + char guess = player.getGuess(Arrays.asList(null, null, c)); + assertTrue(guess != c); + }); } }