Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d62c849
Josh
JoshLapierre45 Oct 1, 2025
0d34043
Merge pull request #2 from JoshLapierre45/main
JoshLapierre45 Oct 1, 2025
d0ebecc
Making a change on README.md - BF
bfcortesss Oct 1, 2025
998b951
Update README.md
hchagerman Oct 1, 2025
34cf9bd
Merge pull request #3 from hchagerman/main
CamCranda11 Oct 1, 2025
879e103
added name
CamCranda11 Oct 1, 2025
3d705cf
Merge branch 'main' of https://github.com/CODEScs3250/ConsoleGameHub
bfcortesss Oct 1, 2025
da7e85d
Merge pull request #4 from CamCranda11/main
CamCranda11 Oct 1, 2025
601a087
added my name
ahmedbacaad Oct 1, 2025
7f53469
Merge pull request #6 from ahmedbacaad/main
CamCranda11 Oct 1, 2025
720cc0e
Update GameHistoryTracker.java
hchagerman Oct 8, 2025
849e003
Merge pull request #7 from hchagerman/main
CamCranda11 Oct 8, 2025
aff990c
Delete README.md
CamCranda11 Oct 8, 2025
6d1a78a
Create README.md
CamCranda11 Oct 8, 2025
c74c435
Merge branch 'MetroCS:main' into main
ahmedbacaad Oct 12, 2025
bdc24a5
jotto with a remainder
hchagerman Oct 13, 2025
a254d59
Merge branch 'MetroCS:main' into Hunter
hchagerman Oct 20, 2025
0fdc580
Update GameHistoryTracker.java
hchagerman Oct 20, 2025
d53d3ff
new
hchagerman Oct 22, 2025
df68c6a
Update WordGuessGame.java fixes
hchagerman Oct 22, 2025
7b23d26
Update WordGuessGame.java more fixes
hchagerman Oct 22, 2025
d71b4e8
Update WordGuessGame.java
hchagerman Oct 22, 2025
5b478a1
Update WordGuessGame.java
hchagerman Oct 22, 2025
a15af0d
Update WordGuessGame.java
hchagerman Oct 22, 2025
804a873
Update WordGuessGame.java
hchagerman Oct 22, 2025
397bc13
Update WordGuessGame.java
hchagerman Oct 22, 2025
ff9d621
Update WordGuessGame.java
hchagerman Oct 22, 2025
535af72
Update WordGuessGame.java
hchagerman Oct 22, 2025
ed048be
Merge branch 'MetroCS:main' into Hunter
hchagerman Oct 27, 2025
828a1ee
Update JottoGame.java
hchagerman Oct 27, 2025
832236a
Update JottoGame.java
hchagerman Oct 27, 2025
173188a
Update WordGuessGameTest.java
hchagerman Oct 27, 2025
2eb983b
Update WordGuessGameTest.java
hchagerman Oct 27, 2025
f52bffd
Update WordGuessGameTest.java
hchagerman Oct 27, 2025
a7dec0d
Update WordGuessGame.java
hchagerman Oct 27, 2025
f1ae98c
Update WordGuessGame.java
hchagerman Oct 27, 2025
3e2b9e2
Update WordGuessGame.java
hchagerman Oct 27, 2025
c9b4083
Update JottoGame.java
hchagerman Oct 27, 2025
77933fd
Update JottoGame.java
hchagerman Oct 27, 2025
7b3abd5
Update JottoGame.java
hchagerman Oct 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions JottoGame.java
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does input validation to WordGuessGame involve changes to JottoGame.java?

Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ public Optional<Integer> play() {
+ "letters: \"B\" and \"I\". ");
int attemptsLeft = MAX_GUESSES;

while (attemptsLeft > 0) {
System.out.print("Enter guess: ");
String guess = scanner.nextLine().trim().toUpperCase();
while (attemptsLeft > 0) {
System.out.println("Remaining number of guesses: " + attemptsLeft);
System.out.print("Enter guess: ");
String guess = scanner.nextLine().trim().toUpperCase();

if (guess.length() != WORD_LENGTH || !guess.matches("[A-Z]+")) {
System.out.println("Invalid input. "
Expand Down
29 changes: 27 additions & 2 deletions WordGuessGame.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import java.util.Optional;
import java.util.Scanner;


/**
* A word guessing game similar to Wordle.
Expand All @@ -11,7 +13,10 @@
* @version 1
*/
class WordGuessGame implements Game {

int NumberOfGuesses = 6;
Scanner input = new Scanner(System.in);
String secretWord = "APPLE";

@Override
public String getName() {
return "Word Guess";
Expand All @@ -31,6 +36,26 @@ public Optional<Integer> play() {
"Your score is determined by the number of attempts remaining"
+ " after you guessed the word correctly!"
);
return Optional.empty();

String guess = EnterGuess();
guess = GuessData(guess);
NumberOfGuesses--;
return Optional.of(NumberOfGuesses);
}
public String EnterGuess(){
System.out.println("enter your 5 letter guess");
return input.nextLine();
}

public String GuessData(String guess){
int guessLength = guess.length();
if (guessLength != 5 || !guess.matches("[a-zA-Z0-9]{5}")){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are numerals included in input validation? The Acceptance Criteria for #25 indicates that only "alphabetic" inputs are accepted and more specifically: "reject inputs that contain numbers".

System.out.println("your guess needs to be 5 letters long");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the guess is length 5 but contains non-letters, this is a misleading error message.

guess = EnterGuess();
guess = GuessData(guess);
return guess;
}else {
return guess;
}
}
}
15 changes: 15 additions & 0 deletions WordGuessGameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@ public void testCorrectGuessOnFirstTry() {
System.setIn(originalIn);
}

@Test
public void testIfAllowNumberInput() {
String simulatedInput = "MANG0\n";
InputStream originalIn = System.in;
System.setIn(new ByteArrayInputStream(simulatedInput.getBytes()));

WordGuessGame game = new WordGuessGame();
Optional<Integer> result = game.play();

assertTrue(result.isPresent());
assertEquals(5, result.get());
Comment on lines +39 to +40
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this test whether input is valid or not?


System.setIn(originalIn);
}

@Test
public void testIncorrectThenCorrectGuess() {
String simulatedInput = "MANGO\nAPPLE\n";
Expand Down