From fe6cb06d6f660916fe08a8d02d58f760685ac438 Mon Sep 17 00:00:00 2001 From: Thomas Kwashnak Date: Thu, 6 Jan 2022 16:11:12 -0500 Subject: [PATCH] Added Comments --- 30_Cube/java/src/Cube.java | 46 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/30_Cube/java/src/Cube.java b/30_Cube/java/src/Cube.java index 1b68a285..1237a49d 100644 --- a/30_Cube/java/src/Cube.java +++ b/30_Cube/java/src/Cube.java @@ -4,16 +4,33 @@ import java.util.Random; import java.util.Scanner; import java.util.Set; +/** + * Game of Cube + *

+ * Based on game of Cube at: + * https://github.com/coding-horror/basic-computer-games/blob/main/30_Cube/cube.bas + * + * + */ public class Cube { + //Current player location private Location playerLocation; + + //Current list of mines private Set mines; + + //System input / output objects private PrintStream out; private Scanner scanner; + //Player's current money private int money; - + /** + * Entry point, creates a new Cube object and calls the play method + * @param args Java execution arguments, not used in application + */ public static void main(String[] args) { new Cube().play(); } @@ -22,9 +39,12 @@ public class Cube { out = System.out; scanner = new Scanner(System.in); money = 500; - mines = new HashSet<>(); + mines = new HashSet<>(5); } + /** + * Clears mines and places 5 new mines on the board + */ private void placeMines() { mines.clear(); Random random = new Random(); @@ -36,6 +56,9 @@ public class Cube { } } + /** + * Runs the entire game until the player runs out of money or chooses to stop + */ public void play() { out.println("DO YOU WANT TO SEE INSTRUCTIONS? (YES--1,NO--0)"); if(readParsedBoolean()) { @@ -99,6 +122,11 @@ public class Cube { out.println("\nGOODBYE."); } + /** + * Queries the user whether they want to play another round + * @return True if the player decides to play another round, + * False if the player would not like to play again + */ private boolean doAnotherRound() { if(money > 0) { out.println("DO YOU WANT TO TRY AGAIN?"); @@ -108,6 +136,9 @@ public class Cube { } } + /** + * Prints the instructions to the game, copied from the original code. + */ public void printInstructions() { out.println("THIS IS A GAME IN WHICH YOU WILL BE PLAYING AGAINST THE"); out.println("RANDOM DECISION OF THE COMPUTER. THE FIELD OF PLAY IS A"); @@ -133,6 +164,11 @@ public class Cube { out.println("GOOD LUCK!"); } + /** + * Waits for the user to input a boolean value. This could either be (true,false), (1,0), (y,n), (yes,no), etc. + * By default, it will return false + * @return Parsed boolean value of the user input + */ private boolean readParsedBoolean() { String in = scanner.nextLine(); try { @@ -155,6 +191,9 @@ public class Cube { this.z = z; } + /* + For use in HashSet and checking if two Locations are the same + */ @Override public boolean equals(Object o) { if (this == o) return true; @@ -167,6 +206,9 @@ public class Cube { return z == location.z; } + /* + For use in the HashSet to accordingly index the set + */ @Override public int hashCode() { int result = x;