From 516d9e377d0243412fe9e90784359ae5a8f07738 Mon Sep 17 00:00:00 2001 From: Project516 <138796702+Project516@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:34:22 +0000 Subject: [PATCH 1/6] 17 min --- README.md | 2 +- app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eb50ee9..e5b11cd 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Download the `archive.zip` from the [latest release](https://github.com/project5 #### Requirements -- Java 11 or higher +- Java 17 or higher #### How to Run diff --git a/app/build.gradle b/app/build.gradle index a04c555..12f3714 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ tasks.withType(JavaCompile) { // Changed from 8 to 11 to support TeaVM for web deployment. // TeaVM 0.10.2+ requires Java 11 as minimum target. // This change affects the minimum JRE required to run the JAR. - options.release.set(11) + options.release.set(17) } application { From dd71056095785ea53cf097990f5a4563e4d6bf03 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:35:24 +0000 Subject: [PATCH 2/6] Update dependency useJUnitJupiter to v6 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 12f3714..d04c022 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,7 +27,7 @@ testing { // Configure the built-in test suite test { // Use JUnit Jupiter test framework - useJUnitJupiter('5.14.0') + useJUnitJupiter('6.0.0') } } } From 082cf15aff6cd740078ddd3891541f65b6a4cd8e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:36:12 +0000 Subject: [PATCH 3/6] Initial plan From ed3b27dcd310e852b101a00db6c9ec623851c98d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:44:35 +0000 Subject: [PATCH 4/6] Add missing Javadoc and remove obsolete cheerpj files Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com> --- .../NumberGuessingGame/CheckGuess.java | 6 ++++++ .../NumberGuessingGame/NumberGuessingGame.java | 10 ++++++++++ .../NumberGuessingGame/ScannerHelper.java | 4 ++++ cheerpj.sh | 7 ------- cheerpj/app.jar | Bin 14991 -> 0 bytes cheerpj/index.html | 17 ----------------- 6 files changed, 20 insertions(+), 24 deletions(-) delete mode 100755 cheerpj.sh delete mode 100644 cheerpj/app.jar delete mode 100644 cheerpj/index.html diff --git a/app/src/main/java/io/github/project516/NumberGuessingGame/CheckGuess.java b/app/src/main/java/io/github/project516/NumberGuessingGame/CheckGuess.java index 2cbb786..5eb0af9 100644 --- a/app/src/main/java/io/github/project516/NumberGuessingGame/CheckGuess.java +++ b/app/src/main/java/io/github/project516/NumberGuessingGame/CheckGuess.java @@ -17,6 +17,12 @@ void check(int guess) { } } + /** + * Validates the user's response to the "play again" prompt. + * + * @param input the user's input (0 to quit, 1 to continue) + * @throws IllegalArgumentException if the input is not 0 or 1 + */ void quit(int input) { // 0 is quit // 1 is continue diff --git a/app/src/main/java/io/github/project516/NumberGuessingGame/NumberGuessingGame.java b/app/src/main/java/io/github/project516/NumberGuessingGame/NumberGuessingGame.java index e5b5e47..c73eb25 100644 --- a/app/src/main/java/io/github/project516/NumberGuessingGame/NumberGuessingGame.java +++ b/app/src/main/java/io/github/project516/NumberGuessingGame/NumberGuessingGame.java @@ -1,6 +1,16 @@ package io.github.project516.NumberGuessingGame; +/** + * Console-based Number Guessing Game implementation. This class manages the console version of the + * game, handling the game loop, user interaction, and error recovery. It prompts the user to guess + * numbers and allows replaying the game. + */ public class NumberGuessingGame { + /** + * Runs the console version of the Number Guessing Game. Initializes all game components, + * displays debug information, and manages the game loop. The user can play multiple rounds + * until they choose to quit. + */ void run() { ScannerHelper scan = new ScannerHelper(); DebugInfo debugInfo = new DebugInfo(); diff --git a/app/src/main/java/io/github/project516/NumberGuessingGame/ScannerHelper.java b/app/src/main/java/io/github/project516/NumberGuessingGame/ScannerHelper.java index b3c2b68..c5a21b3 100644 --- a/app/src/main/java/io/github/project516/NumberGuessingGame/ScannerHelper.java +++ b/app/src/main/java/io/github/project516/NumberGuessingGame/ScannerHelper.java @@ -29,6 +29,10 @@ String userName() { return scan.nextLine(); } + /** + * Consumes the next token from the input stream. Used primarily for clearing invalid input + * after an exception occurs. + */ void next() { scan.next(); } diff --git a/cheerpj.sh b/cheerpj.sh deleted file mode 100755 index aaadc4b..0000000 --- a/cheerpj.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -./gradlew build -rm -f cheerpj/app.jar -cp app/build/libs/app.jar cheerpj -mkdir -p app/build/docs/javadoc/cheerpj -cp -f cheerpj/* app/build/docs/javadoc/cheerpj/ diff --git a/cheerpj/app.jar b/cheerpj/app.jar deleted file mode 100644 index 2e54ed4687d2313bd72c5bd2fcc2d48a0794f0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14991 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 diff --git a/cheerpj/index.html b/cheerpj/index.html deleted file mode 100644 index 18a650f..0000000 --- a/cheerpj/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - CheerpJ test - - - - - - \ No newline at end of file From 473c211670d1735872cf88a186f974a1cabd3d5e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:47:56 +0000 Subject: [PATCH 5/6] Add beginner-friendly comments to all shell scripts Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com> --- package-deb.sh | 19 +++++++++++++------ package-linux.sh | 20 ++++++++++++-------- package-macos.sh | 21 +++++++++++++-------- package-win.sh | 19 +++++++++++-------- package-zip.bat | 11 +++++++++++ package-zip.sh | 13 +++++++++++++ scripts/run.bat | 3 +++ scripts/run.sh | 3 +++ teavm.sh | 9 +++++++-- test-gui.bat | 4 ++++ test-gui.sh | 5 +++++ test.bat | 4 ++++ test.sh | 5 +++++ 13 files changed, 104 insertions(+), 32 deletions(-) diff --git a/package-deb.sh b/package-deb.sh index 6ed668e..3c1ff9c 100755 --- a/package-deb.sh +++ b/package-deb.sh @@ -1,36 +1,43 @@ #!/bin/sh # Script to create a Debian package (.deb) for Number Guessing Game +# This package can be installed on Debian-based Linux distributions (Ubuntu, Mint, etc.) +# Usage: ./package-deb.sh +# Output: numberguessinggame.deb +# Exit immediately if any command fails set -e echo "Building Number Guessing Game Debian package..." -# Clean up previous builds +# Clean up any previous build artifacts +echo "Cleaning up previous builds..." rm -rf debian-package/usr/share/games/numberguessinggame/* rm -f numberguessinggame.deb -# Build the application +# Build the application using Gradle echo "Building application..." gradle build -# Copy the jar file +# Copy the compiled JAR file to the package directory echo "Copying files to package directory..." cp app/build/libs/app.jar debian-package/usr/share/games/numberguessinggame/game.jar -# Copy documentation +# Copy documentation files cp README.md debian-package/usr/share/games/numberguessinggame/README.md cp LICENSE debian-package/usr/share/games/numberguessinggame/LICENSE -# Set permissions +# Set correct permissions for Debian package +echo "Setting file permissions..." chmod 755 debian-package/DEBIAN chmod 755 debian-package/DEBIAN/postinst chmod 755 debian-package/usr/games/numberguessinggame -# Build the .deb package +# Build the .deb package using dpkg-deb echo "Building .deb package..." dpkg-deb --build debian-package numberguessinggame.deb +# Display success message with installation instructions echo "" echo "✓ Debian package created: numberguessinggame.deb" echo "" diff --git a/package-linux.sh b/package-linux.sh index a4b4b14..e5a848c 100755 --- a/package-linux.sh +++ b/package-linux.sh @@ -1,6 +1,9 @@ #!/bin/sh # Script to create a Linux package with bundled JRE for Number Guessing Game +# This creates a self-contained package that doesn't require Java to be installed +# Output: NumberGuessingGame-linux.tar.gz +# Exit immediately if any command fails set -e echo "Building Number Guessing Game for Linux with bundled JRE..." @@ -10,21 +13,21 @@ PACKAGE_NAME="NumberGuessingGame-linux" JRE_DIR="jre-linux" ADOPTIUM_BASE_URL="https://api.adoptium.net/v3/binary/latest/25/ga" -# Clean up previous builds +# Clean up any previous builds rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} rm -f ${PACKAGE_NAME}.tar.gz -# Build the application +# Build the application using Gradle echo "Building application..." ./gradlew build -# Download JRE for Linux +# Download JRE for Linux from Eclipse Adoptium echo "Downloading JRE for Linux..." mkdir -p ${JRE_DIR} curl -L "${ADOPTIUM_BASE_URL}/linux/x64/jre/hotspot/normal/eclipse?project=jdk" -o ${JRE_DIR}/jre-linux.tar.gz -# Extract JRE +# Extract the downloaded JRE echo "Extracting JRE..." cd ${JRE_DIR} tar -xzf jre-linux.tar.gz @@ -38,11 +41,11 @@ cp app/build/libs/app.jar ${PACKAGE_NAME}/game.jar cp README.md ${PACKAGE_NAME}/README.txt cp LICENSE ${PACKAGE_NAME}/LICENSE -# Copy JRE into package +# Copy the JRE into the package echo "Copying JRE into package..." cp -r ${JRE_DIR}/${JRE_EXTRACTED} ${PACKAGE_NAME}/jre -# Create run.sh that uses bundled JRE +# Create a shell script that uses the bundled JRE cat > ${PACKAGE_NAME}/run.sh << 'EOF' #!/bin/sh @@ -52,13 +55,14 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" "${SCRIPT_DIR}/jre/bin/java" -jar "${SCRIPT_DIR}/game.jar" EOF +# Make the run script executable chmod +x ${PACKAGE_NAME}/run.sh -# Create the tar.gz archive +# Create the final tar.gz archive echo "Creating tar.gz archive..." tar -czf ${PACKAGE_NAME}.tar.gz ${PACKAGE_NAME}/ -# Clean up +# Clean up temporary directories rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} diff --git a/package-macos.sh b/package-macos.sh index 3a42fb2..4c4bd6a 100755 --- a/package-macos.sh +++ b/package-macos.sh @@ -1,6 +1,9 @@ #!/bin/sh # Script to create a macOS package with bundled JRE for Number Guessing Game +# This creates a self-contained package that doesn't require Java to be installed +# Output: NumberGuessingGame-macos.zip +# Exit immediately if any command fails set -e echo "Building Number Guessing Game for macOS with bundled JRE..." @@ -10,21 +13,21 @@ PACKAGE_NAME="NumberGuessingGame-macos" JRE_DIR="jre-macos" ADOPTIUM_BASE_URL="https://api.adoptium.net/v3/binary/latest/25/ga" -# Clean up previous builds +# Clean up any previous builds rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} rm -f ${PACKAGE_NAME}.zip -# Build the application +# Build the application using Gradle echo "Building application..." ./gradlew build -# Download JRE for macOS +# Download JRE for macOS from Eclipse Adoptium echo "Downloading JRE for macOS..." mkdir -p ${JRE_DIR} curl -L "${ADOPTIUM_BASE_URL}/mac/x64/jre/hotspot/normal/eclipse?project=jdk" -o ${JRE_DIR}/jre-macos.tar.gz -# Extract JRE +# Extract the downloaded JRE echo "Extracting JRE..." cd ${JRE_DIR} tar -xzf jre-macos.tar.gz @@ -38,11 +41,12 @@ cp app/build/libs/app.jar ${PACKAGE_NAME}/game.jar cp README.md ${PACKAGE_NAME}/README.txt cp LICENSE ${PACKAGE_NAME}/LICENSE -# Copy JRE into package +# Copy the JRE into the package echo "Copying JRE into package..." cp -r ${JRE_DIR}/${JRE_EXTRACTED} ${PACKAGE_NAME}/jre -# Create run.sh that uses bundled JRE +# Create a shell script that uses the bundled JRE +# Note: macOS JRE has a different directory structure (Contents/Home) cat > ${PACKAGE_NAME}/run.sh << 'EOF' #!/bin/sh @@ -52,13 +56,14 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" "${SCRIPT_DIR}/jre/Contents/Home/bin/java" -jar "${SCRIPT_DIR}/game.jar" EOF +# Make the run script executable chmod +x ${PACKAGE_NAME}/run.sh -# Create the zip archive +# Create the final zip archive echo "Creating zip archive..." zip -r ${PACKAGE_NAME}.zip ${PACKAGE_NAME}/ -# Clean up +# Clean up temporary directories rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} diff --git a/package-win.sh b/package-win.sh index a2a26d5..289ce8c 100755 --- a/package-win.sh +++ b/package-win.sh @@ -1,6 +1,9 @@ #!/bin/sh # Script to create a Windows package with bundled JRE for Number Guessing Game +# This creates a self-contained package that doesn't require Java to be installed +# Output: NumberGuessingGame-windows.zip +# Exit immediately if any command fails set -e echo "Building Number Guessing Game for Windows with bundled JRE..." @@ -10,21 +13,21 @@ PACKAGE_NAME="NumberGuessingGame-windows" JRE_DIR="jre-windows" ADOPTIUM_BASE_URL="https://api.adoptium.net/v3/binary/latest/25/ga" -# Clean up previous builds +# Clean up any previous builds rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} rm -f ${PACKAGE_NAME}.zip -# Build the application +# Build the application using Gradle echo "Building application..." ./gradlew build -# Download JRE for Windows +# Download JRE for Windows from Eclipse Adoptium echo "Downloading JRE for Windows..." mkdir -p ${JRE_DIR} curl -L "${ADOPTIUM_BASE_URL}/windows/x64/jre/hotspot/normal/eclipse?project=jdk" -o ${JRE_DIR}/jre-windows.zip -# Extract JRE +# Extract the downloaded JRE echo "Extracting JRE..." cd ${JRE_DIR} unzip -q jre-windows.zip @@ -38,11 +41,11 @@ cp app/build/libs/app.jar ${PACKAGE_NAME}/game.jar cp README.md ${PACKAGE_NAME}/README.txt cp LICENSE ${PACKAGE_NAME}/LICENSE -# Copy JRE into package +# Copy the JRE into the package echo "Copying JRE into package..." cp -r ${JRE_DIR}/${JRE_EXTRACTED} ${PACKAGE_NAME}/jre -# Create run.bat that uses bundled JRE +# Create a Windows batch file that uses the bundled JRE cat > ${PACKAGE_NAME}/run.bat << 'EOF' @echo off @@ -51,11 +54,11 @@ jre\bin\java.exe -jar game.jar @pause EOF -# Create the zip archive +# Create the final zip archive echo "Creating zip archive..." zip -r ${PACKAGE_NAME}.zip ${PACKAGE_NAME}/ -# Clean up +# Clean up temporary directories rm -rf ${PACKAGE_NAME} rm -rf ${JRE_DIR} diff --git a/package-zip.bat b/package-zip.bat index 96d73af..f65a778 100644 --- a/package-zip.bat +++ b/package-zip.bat @@ -1,15 +1,26 @@ @echo off +REM Creates a distributable ZIP archive of the game (Windows) +REM This archive requires Java to be installed on the user's system +REM Clean up any previous builds rmdir /s /q NumberGuessingGame 2>nul rmdir /s /q temp 2>nul del /f archive.zip 2>nul + +REM Create distribution directory structure mkdir NumberGuessingGame + +REM Copy the game JAR and necessary files copy app\build\libs\app.jar NumberGuessingGame\game.jar copy scripts\run.bat NumberGuessingGame\run.bat copy scripts\run.sh NumberGuessingGame\run.sh copy README.md NumberGuessingGame\README.txt copy LICENSE NumberGuessingGame\LICENSE + +REM Create the ZIP archive using PowerShell powershell -command "Compress-Archive -Path NumberGuessingGame -DestinationPath archive.zip -Force" + +REM Clean up temporary directory rmdir /s /q NumberGuessingGame @pause \ No newline at end of file diff --git a/package-zip.sh b/package-zip.sh index 70f93a0..8b6485d 100755 --- a/package-zip.sh +++ b/package-zip.sh @@ -1,16 +1,29 @@ #!/bin/sh +# Creates a distributable ZIP archive of the game +# This archive requires Java to be installed on the user's system +# Clean up any previous builds rm -rf NumberGuessingGame rm -rf temp rm -f archive.zip + +# Build the application cd app gradle build cd .. + +# Create distribution directory structure mkdir NumberGuessingGame + +# Copy the game JAR and necessary files cp -r app/build/libs/app.jar NumberGuessingGame/game.jar cp -r scripts/run.bat NumberGuessingGame/run.bat cp -r scripts/run.sh NumberGuessingGame/run.sh cp -r README.md NumberGuessingGame/README.txt cp -r LICENSE NumberGuessingGame/LICENSE + +# Create the ZIP archive zip -r archive.zip NumberGuessingGame/ + +# Clean up temporary directory rm -rf NumberGuessingGame diff --git a/scripts/run.bat b/scripts/run.bat index 6b55fb4..87bc8ef 100644 --- a/scripts/run.bat +++ b/scripts/run.bat @@ -1,4 +1,7 @@ @echo off +REM Run script for Number Guessing Game (Windows) +REM This script starts the GUI version of the game +REM For console mode, add --console flag: run.bat --console java -jar game.jar diff --git a/scripts/run.sh b/scripts/run.sh index 705c891..eac680f 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -1,3 +1,6 @@ #!/bin/sh +# Run script for Number Guessing Game (Linux/Mac) +# This script starts the GUI version of the game +# For console mode, add --console flag: ./run.sh --console java -jar game.jar diff --git a/teavm.sh b/teavm.sh index 05a3e3d..7aea388 100755 --- a/teavm.sh +++ b/teavm.sh @@ -1,16 +1,21 @@ #!/bin/sh # Script to build TeaVM JavaScript output for GitHub Pages deployment -# This replaces the cheerpj.sh script +# TeaVM compiles Java bytecode to JavaScript for running in web browsers +# This script replaces the old cheerpj.sh approach +# Output: JavaScript files in app/build/docs/javadoc/teavm/ echo "Building project..." ./gradlew build echo "Compiling Java to JavaScript with TeaVM..." -# Disable configuration cache due to TeaVM plugin compatibility +# Note: Configuration cache is disabled due to TeaVM plugin compatibility ./gradlew teavmc --no-configuration-cache echo "Copying TeaVM output to javadoc directory..." +# Create output directory if it doesn't exist mkdir -p app/build/docs/javadoc/teavm + +# Copy generated JavaScript and HTML files cp -f app/build/teavm/classes.js app/build/docs/javadoc/teavm/ cp -f teavm/index.html app/build/docs/javadoc/teavm/ diff --git a/test-gui.bat b/test-gui.bat index 82c3ce9..1ed2874 100644 --- a/test-gui.bat +++ b/test-gui.bat @@ -1,5 +1,9 @@ @echo off +REM Quick test script for GUI mode (Windows) +REM This script runs the graphical version of the game +REM Note: You must build the project first with gradlew.bat build +REM Run the game in GUI mode (default - opens a window) java -jar app/build/libs/app.jar @pause diff --git a/test-gui.sh b/test-gui.sh index d51c663..a163e66 100644 --- a/test-gui.sh +++ b/test-gui.sh @@ -1,4 +1,9 @@ #!/bin/sh +# Quick test script for GUI mode +# This script builds the project and runs the graphical version of the game +# Build the project using Gradle ./gradlew build + +# Run the game in GUI mode (default - opens a window) java -jar app/build/libs/app.jar diff --git a/test.bat b/test.bat index 2ea269b..db1cd43 100644 --- a/test.bat +++ b/test.bat @@ -1,5 +1,9 @@ @echo off +REM Quick test script for console mode (Windows) +REM This script runs the console version of the game +REM Note: You must build the project first with gradlew.bat build +REM Run the game in console mode (text-based interface) java -jar app/build/libs/app.jar --console @pause diff --git a/test.sh b/test.sh index 26b9281..67503c4 100755 --- a/test.sh +++ b/test.sh @@ -1,4 +1,9 @@ #!/bin/sh +# Quick test script for console mode +# This script builds the project and runs the console version of the game +# Build the project using Gradle ./gradlew build + +# Run the game in console mode (text-based interface) java -jar app/build/libs/app.jar --console From b3b23369d7d0b3efb4886144f72a64ca6cb4b7e4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:49:44 +0000 Subject: [PATCH 6/6] Address code review feedback for script comments Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com> --- package-macos.sh | 3 +-- test-gui.bat | 2 +- test.bat | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package-macos.sh b/package-macos.sh index 4c4bd6a..ef1718d 100755 --- a/package-macos.sh +++ b/package-macos.sh @@ -45,8 +45,7 @@ cp LICENSE ${PACKAGE_NAME}/LICENSE echo "Copying JRE into package..." cp -r ${JRE_DIR}/${JRE_EXTRACTED} ${PACKAGE_NAME}/jre -# Create a shell script that uses the bundled JRE -# Note: macOS JRE has a different directory structure (Contents/Home) +# Create a shell script that uses the bundled JRE (macOS JRE structure: Contents/Home) cat > ${PACKAGE_NAME}/run.sh << 'EOF' #!/bin/sh diff --git a/test-gui.bat b/test-gui.bat index 1ed2874..01a3e20 100644 --- a/test-gui.bat +++ b/test-gui.bat @@ -1,7 +1,7 @@ @echo off REM Quick test script for GUI mode (Windows) REM This script runs the graphical version of the game -REM Note: You must build the project first with gradlew.bat build +REM Note: Run gradlew.bat build first to compile the project REM Run the game in GUI mode (default - opens a window) java -jar app/build/libs/app.jar diff --git a/test.bat b/test.bat index db1cd43..bb0aa1d 100644 --- a/test.bat +++ b/test.bat @@ -1,7 +1,7 @@ @echo off REM Quick test script for console mode (Windows) REM This script runs the console version of the game -REM Note: You must build the project first with gradlew.bat build +REM Note: Run gradlew.bat build first to compile the project REM Run the game in console mode (text-based interface) java -jar app/build/libs/app.jar --console