Skip to content
110 changes: 104 additions & 6 deletions java/src/main/java/com/github/zipcodewilmington/WordGuess.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,106 @@
package com.github.zipcodewilmington;

/**
* @author xt0fer
* @version 1.0.0
* @date 5/27/21 11:02 AM
*/
public class WordGuess {}
import java.util.Scanner;

public class WordGuess {
static String[] wordList = { "magical", "dainty", "maerl", "signal"};
static char[] solution;
static char[] playerGuesses;
static int triesLeft;

static Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {
String playAgain = "yes";

while (playAgain.equals("yes")) {
setupGame();
playGame();
System.out.print("Play again? (yes/no) ");
playAgain = scanner.nextLine().toLowerCase();
}
System.out.println("Game Over!");
scanner.close();

}
public static void setupGame() {
String word = pickRandomWord();
solution = word.toCharArray();
playerGuesses = buildEmptyGuesses(solution.length);
triesLeft = solution.length;
System.out.println("Let's Play Wordguess game");
}

public static String pickRandomWord() {
int index = (int) (Math.random() * wordList.length);
return wordList[index];
}

public static char[] buildEmptyGuesses(int length) {
char[] guesses = new char[length];
for (int i = 0; i < length; i++) {
guesses[i] = '_';
}
return guesses;
}

public static void playGame(){
while (triesLeft > 0 && !new String(playerGuesses).equals(new String(solution))) {
printPlayerGuesses();
System.out.println("You have " + triesLeft + " tries left.");
System.out.println("Enter your next guess: ");

String input = scanner.nextLine().trim();

if (input.equals("-"))
break;
if (input.isEmpty())
continue;

char letter = input.charAt(0);
processLetter(letter);
}

printResult();

}

public static void processLetter(char letter) {
boolean found = false;
for (int i = 0; i < solution.length; i++) {
if (solution[i] == letter) {
playerGuesses[i] = letter;
found = true;
}
}

if (!found) {
triesLeft--;
}
}

public static boolean isWordGuessed() {
for (char c : playerGuesses) {
if (c == '_')
return false;
}
return true;
}
public static void printCurrentGuesses() {
System.out.println("Current Guesses: ");
for (char c : playerGuesses) {
System.out.print(c + " ");
}
System.out.println();
}

public static void printResult() {
if (isWordGuessed()) {
printCurrentGuesses();
System.out.println("Congratulations, You Won!");
} else {
printCurrentGuesses();
System.out.println("Sorry, out of guesses. You Lost!");
}
}
}
16 changes: 16 additions & 0 deletions java/src/main/java/com/github/zipcodewilmington/sample/Person.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
package com.github.zipcodewilmington.sample;

public class Person {

private String name;
private int score;
private int gamesPlayed;
private int gamesWon;

public Person(String name) {
this.name = name;
this.score = 0;
}

public void updateScore(int points) {
this.score += points;
}


}
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
package com.github.zipcodewilmington.sample;

public interface PersonInterface {
// Interface definition

/**
* Return the person's name
*/

String getName();

String getFirstName();

void setFirstName(String firstName);
Expand All @@ -9,10 +17,19 @@ public interface PersonInterface {

void setLastName(String lastName);

/**
* Return the person's current score
*/

int getScore();

Integer getAge();

void setAge(Integer age);

@Override
String toString();
}



Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
* @date 2/5/2026
*/
public class WordGuessTest {}


Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,5 @@ public void testSetAge(Integer age) {
Assertions.assertEquals(expected, actual);
}
}