finish submission files
This commit is contained in:
2 files changed
+40
-23
No files matched your search
+24
-23
@@ -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
@@ -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. It’s a good assistant for certain tasks, but the core, important coding
|
||||||
|
is still best done manually. Future jobs are safe—for now.
|
||||||
Reference in new issue
Block a user