Skip to content

Swork91/Procrastination-Racer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Procrastination-Racer

Final project showing Java knowledge by making a race car game with agile requirements. Done by splitting it into three sprints, one per week.

Controls/Options

wasd keys or arrow keys to move, space to start. Game window can be resized before starting to play in any resolution.

Sprints Used to Complete Project

Sprint 1 Plan

  • Car that goes.
  • Car wont go off track.
  • Counts laps that the car does.
  • Win after x laps. && win scenario like a popup or something.

Sprint 2 Plan

  • Lap times recorded
  • Lap times saved to high score.
  • Can load high score data.
  • Obstacles in road to avoid.
  • Game timer starts when player is ready. (3, 2, 1, GO!)

Sprint 3 Plan(final version):

  • Car feel like an actual car (not a block shuffling around).
  • Improve layout. (GridBagLayoutDemo or BoxLayout)
  • Handles checked exceptions.
  • Clean (readable) code
  • Polymorphism
  • More fun
  • (optional) Graphics not as bad.

Final should also have the following if needed:

  • Write Java code that uses variables, arrays, conditional and loop constructs
  • Manipulate primitive numeric data and string data using Java operators
  • Create Java classes and use object references
  • Access the fields and methods of an object
  • Manipulate text data using the methods of the String and StringBuilder classes
  • Use casting without losing precision or causing errors
  • Declare, override, and invoke methods
  • Access and create static fields and methods
  • Use classes from the java.time and java.time.format packages to format and print the local date and time
  • Encapsulate a class using access modifiers and overloaded constructors
  • Define and implement a simple class hierarchy
  • Demonstrate polymorphism by implementing a Java Interface
  • Use a Predicate Lambda expression as the argument to a method
  • Handle a checked exception in a Java application
  • A GUI because I want one.
  • Saving and loading of data.

Results In Pictures

Agile 1

Sprint1Results Sprint1WinScreen

Agile 2

Sprint2 UI changes

Agile 3

Sprint3 New Menu Sprint3 gameplay Sprint3 Win Screen

1.0 Results/Thoughts

A lot of stuff I could've improved still. Nothing's really looks at all like I wanted from the original planning documents. The requirements had to change a lot as I learned what Java (mostly swing) was capable of and what good programming practice would be. I wouldn't want to try and design a GUI with moving components using swing ever again. Especially not a game. I choose something that would interest me instead of creating a bunch of buttons that run different SQL queries. That big game window gave me so much more trouble than a simple grid layout with button would've.

my Swing experience in short: Making a calculator, good idea. Making a racing game, bad idea.

About

Final project showing java knowledge by making a race car game.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages