diff --git a/src/main/java/com/hangman/players/YourPlayer.java b/src/main/java/com/hangman/players/YourPlayer.java index ddcfbd3..bc764b4 100644 --- a/src/main/java/com/hangman/players/YourPlayer.java +++ b/src/main/java/com/hangman/players/YourPlayer.java @@ -4,10 +4,42 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Random; public class YourPlayer implements Player { + + private Character getRandomCharacter(){ + Random r = new Random(); + char c = (char)(r.nextInt(26) + 'a'); + return c; + } + + private Character getRandomCharacterUsingClue(List currentClue){ + Character randomChar = getRandomCharacter(); + if (currentClue.contains(randomChar)){ + System.out.println("'"+randomChar + "' is already guessed -> guess a new one"); + getRandomCharacterUsingClue(currentClue); + } + return randomChar; + } + + private boolean isAllCharactersAsked(List currentClue){ + for (int i = 0; i < 26; i++){ + char c = (char) (i+ 'a'); + if (!currentClue.contains(c)){ + return false; + } + } + return true; + } + + @Override public char GetGuess(List currentClue) { - return 'a'; + if (isAllCharactersAsked(currentClue)){ + return 'a'; + }; + + return getRandomCharacterUsingClue(currentClue); } } diff --git a/src/test/java/com/hangman/players/YourPlayerTest.java b/src/test/java/com/hangman/players/YourPlayerTest.java index d613f6b..3591f09 100644 --- a/src/test/java/com/hangman/players/YourPlayerTest.java +++ b/src/test/java/com/hangman/players/YourPlayerTest.java @@ -1,17 +1,27 @@ package com.hangman.players; import org.junit.Test; + +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class YourPlayerTest { @Test public void GuessesAWhenThereAreNoSuccessfulCharactersGuessedYet() { YourPlayer player = new YourPlayer(); + List allChars = new ArrayList<>(); char guess = player.GetGuess(Arrays.asList('_', '_', '_')); + for (int i = 0; i < 26; i++){ + char c = (char) (i+ 'a'); + allChars.add(c); + } - assertEquals('a', guess); + assertTrue(allChars.contains(guess)); } @Test