diff --git a/java/src/main/java/com/github/zipcodewilmington/WordGuess.java b/java/src/main/java/com/github/zipcodewilmington/WordGuess.java index 6f5485f..1381bf6 100644 --- a/java/src/main/java/com/github/zipcodewilmington/WordGuess.java +++ b/java/src/main/java/com/github/zipcodewilmington/WordGuess.java @@ -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!"); + } + } +} diff --git a/java/src/main/java/com/github/zipcodewilmington/sample/Person.java b/java/src/main/java/com/github/zipcodewilmington/sample/Person.java index 48d7e4b..db79165 100644 --- a/java/src/main/java/com/github/zipcodewilmington/sample/Person.java +++ b/java/src/main/java/com/github/zipcodewilmington/sample/Person.java @@ -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; + } + + } \ No newline at end of file diff --git a/java/src/main/java/com/github/zipcodewilmington/sample/PersonInterface.java b/java/src/main/java/com/github/zipcodewilmington/sample/PersonInterface.java index f0cea51..1ed10e2 100644 --- a/java/src/main/java/com/github/zipcodewilmington/sample/PersonInterface.java +++ b/java/src/main/java/com/github/zipcodewilmington/sample/PersonInterface.java @@ -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); @@ -9,6 +17,12 @@ public interface PersonInterface { void setLastName(String lastName); + /** + * Return the person's current score + */ + + int getScore(); + Integer getAge(); void setAge(Integer age); @@ -16,3 +30,6 @@ public interface PersonInterface { @Override String toString(); } + + + diff --git a/java/src/test/java/com/github/zipcodewilmington/WordGuessTest.java b/java/src/test/java/com/github/zipcodewilmington/WordGuessTest.java index 18ca74d..816ea92 100644 --- a/java/src/test/java/com/github/zipcodewilmington/WordGuessTest.java +++ b/java/src/test/java/com/github/zipcodewilmington/WordGuessTest.java @@ -6,3 +6,5 @@ * @date 2/5/2026 */ public class WordGuessTest {} + + diff --git a/java/src/test/java/com/github/zipcodewilmington/sample/PersonInterface.java b/java/src/test/java/com/github/zipcodewilmington/sample/PersonInterface.java new file mode 100644 index 0000000..e69de29 diff --git a/java/src/test/java/com/github/zipcodewilmington/sample/PersonTest.java b/java/src/test/java/com/github/zipcodewilmington/sample/PersonTest.java index 7a0d781..0c11386 100644 --- a/java/src/test/java/com/github/zipcodewilmington/sample/PersonTest.java +++ b/java/src/test/java/com/github/zipcodewilmington/sample/PersonTest.java @@ -63,3 +63,5 @@ public void testSetAge(Integer age) { Assertions.assertEquals(expected, actual); } } + +