finish submission files

This commit is contained in:
SowinskiBraeden committed 2025-11-29 16:24:20 -08:00
1 parent 5f779cb027
commit ecb9527471
2 files changed
+40 -23

No files matched your search

+24 -23
View File
@@ -1,40 +1,41 @@
lesson 1:
- static initializer used in Mines.java
- static initializer used in MinesUI.java
- method overloading in Mines.java > startNewGame()
- static initializer in Mines.java (static block initializing RANDOM_GENERATOR)
- static initializer in MinesUI.java (static block initializing BUTTON_THEMES)
- constructor overloading demonstrated across project (e.g., RandomNumberGenerator and Mines constructors)
lesson 2:
- inheritance in Mines.java (extends GameBoard)
- custom exception in InvalidMoveException.java
- throwing exception in Mines.java > reveal()
- catching exception in MinesUI.java > handleReveal()
- inheritance: Mines extends GameBoard (GameBoard.java → Mines.java)
- custom exception class: InvalidMoveException (thrown in Mines.reveal)
- throwing exceptions in Mines.reveal()
- catching exceptions in MinesUI.handleReveal() within UI logic
lesson 3:
- method overriding in Mines.java > reset()
- substitution via GameBoard parent reference in constructor chain
- method overriding: Mines overrides abstract GameBoard.reset()
- substitution: GameBoard constructor called via super(width, height) inside Mines
lesson 4:
- abstract class in GameBoard.java
- abstract method reset() in GameBoard.java
- implementation of abstract method in Mines.java > reset()
- abstract class: GameBoard.java
- abstract method: reset() defined in GameBoard
- implementation of abstract method in Mines.reset()
lesson 5:
- collections in MinesUI.java > List<Button> buttons
- iterators in MinesUI.java > disableAllButtons()
- collections: MinesUI stores buttons in List<Button> (ArrayList)
- iterators: MinesUI.disableAllButtons() uses Iterator<Button>
lesson 6:
- lambda expressions in Mines.java > forEachNeighbor()
- lambda expressions in MinesUI.java > button.setOnMouseClicked()
- lambda expressions: Mines.forEachNeighbor() uses Consumer<Integer> with lambdas
- lambda expressions: MinesUI.createGrid() uses lambdas for event handlers (setOnMouseEntered, setOnMouseExited, setOnMouseClicked)
lesson 8:
- Scanner used in Mines.java > loadBestScore()
- BufferedReader used in Mines.java > loadBestScore()
- BufferedWriter used in Mines.java > saveScore()
- File used in Mines.java > loadBestScore()
- file reading: MinesScore.readScoresFromFile() uses BufferedReader and FileReader
- file writing: MinesScore.appendScoreToFile() uses BufferedWriter and FileWriter
- parsing and formatting data via DateTimeFormatter
- path management using String file paths (e.g., SCORE_FILE)
- Scanner usage present in Main CLI for input collection
lesson 9:
- JavaFX GUI in MinesUI.java
- JavaFX application entry class in MyGame.java > start()
- JavaFX application structure: MyGame extends Application and overrides start()
- JavaFX UI design: MinesUI builds scenes, stages, layouts, buttons, labels, handlers
lesson 10:
- unit tests to be shown in accompanying JUnit test files
- JUnit tests included in external test files (MinesTest, MinesScoreTest, etc.)