From 01132f33b12e8123bf99fb4b914ef6e62edab22a Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 10 Jun 2016 15:50:02 -0500 Subject: [PATCH 1/3] Guess e first instead of a --- src/main/java/com/hangman/players/YourPlayer.java | 2 +- .../java/com/hangman/players/YourPlayerTest.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hangman/players/YourPlayer.java b/src/main/java/com/hangman/players/YourPlayer.java index df4a96a..8b76c9d 100644 --- a/src/main/java/com/hangman/players/YourPlayer.java +++ b/src/main/java/com/hangman/players/YourPlayer.java @@ -7,6 +7,6 @@ public class YourPlayer implements Player { @Override public char getGuess(List currentClue) { - return 'a'; + return 'e'; } } diff --git a/src/test/java/com/hangman/players/YourPlayerTest.java b/src/test/java/com/hangman/players/YourPlayerTest.java index b1e80e5..b850a0b 100644 --- a/src/test/java/com/hangman/players/YourPlayerTest.java +++ b/src/test/java/com/hangman/players/YourPlayerTest.java @@ -6,29 +6,29 @@ public class YourPlayerTest { @Test - public void guessesAWhenThereAreNoSuccessfulCharactersGuessedYet() { + public void guessesEWhenThereAreNoSuccessfulCharactersGuessedYet() { YourPlayer player = new YourPlayer(); char guess = player.getGuess(Arrays.asList(null, null, null)); - assertEquals('a', guess); + assertEquals('e', guess); } @Test - public void guessesAWhenThereAreSuccessfulCharactersGuessedThatAreNotA() { + public void guessesEWhenThereAreSuccessfulCharactersGuessedThatAreNotE() { YourPlayer player = new YourPlayer(); char guess = player.getGuess(Arrays.asList('m', null, 'n')); - assertEquals('a', guess); + assertEquals('e', guess); } @Test - public void guessesAWhenAIsThereAreAsInTheClueAsWell() { + public void guessesEWhenEIsInTheClue() { YourPlayer player = new YourPlayer(); - char guess = player.getGuess(Arrays.asList(null, 'a', null)); + char guess = player.getGuess(Arrays.asList(null, 'e', null)); - assertEquals('a', guess); + assertEquals('e', guess); } } From 6a474b3b6da52a721d66d3b5a81e146484a79ae3 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 10 Jun 2016 16:10:35 -0500 Subject: [PATCH 2/3] Use a Before --- .../java/com/hangman/players/YourPlayer.java | 2 ++ .../com/hangman/players/YourPlayerTest.java | 20 ++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hangman/players/YourPlayer.java b/src/main/java/com/hangman/players/YourPlayer.java index 8b76c9d..93edba9 100644 --- a/src/main/java/com/hangman/players/YourPlayer.java +++ b/src/main/java/com/hangman/players/YourPlayer.java @@ -7,6 +7,8 @@ public class YourPlayer implements Player { @Override public char getGuess(List currentClue) { + if(currentClue.contains('e')) + return 'a'; return 'e'; } } diff --git a/src/test/java/com/hangman/players/YourPlayerTest.java b/src/test/java/com/hangman/players/YourPlayerTest.java index b850a0b..25d0dcb 100644 --- a/src/test/java/com/hangman/players/YourPlayerTest.java +++ b/src/test/java/com/hangman/players/YourPlayerTest.java @@ -1,14 +1,20 @@ package com.hangman.players; import org.junit.Test; +import org.junit.Before; import java.util.Arrays; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.*; public class YourPlayerTest { + private YourPlayer player; + + @Before + public void setUp() { + player = new YourPlayer(); + } + @Test public void guessesEWhenThereAreNoSuccessfulCharactersGuessedYet() { - YourPlayer player = new YourPlayer(); - char guess = player.getGuess(Arrays.asList(null, null, null)); assertEquals('e', guess); @@ -16,19 +22,15 @@ public void guessesEWhenThereAreNoSuccessfulCharactersGuessedYet() { @Test public void guessesEWhenThereAreSuccessfulCharactersGuessedThatAreNotE() { - YourPlayer player = new YourPlayer(); - char guess = player.getGuess(Arrays.asList('m', null, 'n')); assertEquals('e', guess); } @Test - public void guessesEWhenEIsInTheClue() { - YourPlayer player = new YourPlayer(); - + public void guessesAWhenEIsInTheClue() { char guess = player.getGuess(Arrays.asList(null, 'e', null)); - assertEquals('e', guess); + assertEquals('a', guess); } } From 3c839724e322a4d4034791594afd0955c755c44b Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 10 Jun 2016 16:59:50 -0500 Subject: [PATCH 3/3] Add guess i and start of random guessing --- .../java/com/hangman/players/YourPlayer.java | 21 +++++++++-- .../com/hangman/players/YourPlayerTest.java | 36 +++++++++++++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hangman/players/YourPlayer.java b/src/main/java/com/hangman/players/YourPlayer.java index 93edba9..4bde427 100644 --- a/src/main/java/com/hangman/players/YourPlayer.java +++ b/src/main/java/com/hangman/players/YourPlayer.java @@ -2,13 +2,30 @@ import com.hangman.Player; +import java.util.ArrayList; import java.util.List; public class YourPlayer implements Player { + private List guesses; + + public YourPlayer() { + guesses = new ArrayList<>(); + } + @Override public char getGuess(List currentClue) { - if(currentClue.contains('e')) + if(!currentClue.contains(('e'))) + return 'e'; + if(!currentClue.contains(('a'))) return 'a'; - return 'e'; + if(!currentClue.contains('i')) + return 'i'; + + if(!guesses.contains('b')) { + guesses.add('b'); + return 'b'; + } + + return 'c'; } } diff --git a/src/test/java/com/hangman/players/YourPlayerTest.java b/src/test/java/com/hangman/players/YourPlayerTest.java index 25d0dcb..f77f41f 100644 --- a/src/test/java/com/hangman/players/YourPlayerTest.java +++ b/src/test/java/com/hangman/players/YourPlayerTest.java @@ -2,10 +2,21 @@ import org.junit.Test; import org.junit.Before; + +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.List; + import static org.junit.Assert.*; public class YourPlayerTest { + public static final List ALL_CHARACTERS = Collections.unmodifiableList(Arrays.asList( + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z' + )); + private YourPlayer player; @Before @@ -33,4 +44,29 @@ public void guessesAWhenEIsInTheClue() { assertEquals('a', guess); } + + @Test + public void guessesIWhenEAndAAreInTheClue() { + char guess = player.getGuess(Arrays.asList('e', 'a', null)); + + assertEquals('i', guess); + } + + @Test + public void guessesARandomCharacterWhenTheClueContainsEAI() { + List chars = new ArrayList<>(ALL_CHARACTERS); + chars.removeAll(Arrays.asList('a', 'e', 'i')); + char guess = player.getGuess(Arrays.asList('e', 'a', 'i', null)); + + assertTrue(chars.contains(guess)); + } + + @Test + public void doesNotGuessTheSameRandomCharacterTwice() { + char guess1 = player.getGuess(Arrays.asList('e', 'a', 'i', null)); + char guess2 = player.getGuess(Arrays.asList('e', 'a', 'i', null)); + + assertNotEquals(guess1, guess2); + } + }