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: lesson 1:
- static initializer used in Mines.java - static initializer in Mines.java (static block initializing RANDOM_GENERATOR)
- static initializer used in MinesUI.java - static initializer in MinesUI.java (static block initializing BUTTON_THEMES)
- method overloading in Mines.java > startNewGame() - constructor overloading demonstrated across project (e.g., RandomNumberGenerator and Mines constructors)
lesson 2: lesson 2:
- inheritance in Mines.java (extends GameBoard) - inheritance: Mines extends GameBoard (GameBoard.java → Mines.java)
- custom exception in InvalidMoveException.java - custom exception class: InvalidMoveException (thrown in Mines.reveal)
- throwing exception in Mines.java > reveal() - throwing exceptions in Mines.reveal()
- catching exception in MinesUI.java > handleReveal() - catching exceptions in MinesUI.handleReveal() within UI logic
lesson 3: lesson 3:
- method overriding in Mines.java > reset() - method overriding: Mines overrides abstract GameBoard.reset()
- substitution via GameBoard parent reference in constructor chain - substitution: GameBoard constructor called via super(width, height) inside Mines
lesson 4: lesson 4:
- abstract class in GameBoard.java - abstract class: GameBoard.java
- abstract method reset() in GameBoard.java - abstract method: reset() defined in GameBoard
- implementation of abstract method in Mines.java > reset() - implementation of abstract method in Mines.reset()
lesson 5: lesson 5:
- collections in MinesUI.java > List<Button> buttons - collections: MinesUI stores buttons in List<Button> (ArrayList)
- iterators in MinesUI.java > disableAllButtons() - iterators: MinesUI.disableAllButtons() uses Iterator<Button>
lesson 6: lesson 6:
- lambda expressions in Mines.java > forEachNeighbor() - lambda expressions: Mines.forEachNeighbor() uses Consumer<Integer> with lambdas
- lambda expressions in MinesUI.java > button.setOnMouseClicked() - lambda expressions: MinesUI.createGrid() uses lambdas for event handlers (setOnMouseEntered, setOnMouseExited, setOnMouseClicked)
lesson 8: lesson 8:
- Scanner used in Mines.java > loadBestScore() - file reading: MinesScore.readScoresFromFile() uses BufferedReader and FileReader
- BufferedReader used in Mines.java > loadBestScore() - file writing: MinesScore.appendScoreToFile() uses BufferedWriter and FileWriter
- BufferedWriter used in Mines.java > saveScore() - parsing and formatting data via DateTimeFormatter
- File used in Mines.java > loadBestScore() - path management using String file paths (e.g., SCORE_FILE)
- Scanner usage present in Main CLI for input collection
lesson 9: lesson 9:
- JavaFX GUI in MinesUI.java - JavaFX application structure: MyGame extends Application and overrides start()
- JavaFX application entry class in MyGame.java > start() - JavaFX UI design: MinesUI builds scenes, stages, layouts, buttons, labels, handlers
lesson 10: lesson 10:
- unit tests to be shown in accompanying JUnit test files - JUnit tests included in external test files (MinesTest, MinesScoreTest, etc.)
+16
View File
@@ -0,0 +1,16 @@
The best part of using chat gipity was how it helped me debug JavaFX issues, especially with
launching multiple applications within the same JVM instance. It was very good at analyzing
my code and identifying where I could implement concepts from each lesson. It also helped generate
boilerplate code and assisted with commenting, refactoring, and creating static variable names.
The worst parts occurred after the game logic was complete and I needed refactoring to meet the
assignment requirements. I asked gipity to reorganize code such as moving logic into an abstract
class and overriding methods while keeping the existing logic the same. Even with explicit
instructions not to change behavior, it still altered the logic and introduced bugs that I had
to spend a little while debugging.
Gipity is a useful tool that can speed up development and improve the overall coding experience,
but it still struggles with larger codebases and strictly following constraints. It often broke
rules like avoiding magic numbers or separating declarations and assignments, and sometimes
modified working code. Its a good assistant for certain tasks, but the core, important coding
is still best done manually. Future jobs are safe—for now.