PROJECT GUIDE
General Project Guidelines
- The project must be completed using Apache NetBeans IDE 24
- The project must be submitted as a **single file** containing the complete
project.
- A **menu bar** must include an **"About…"** screen displaying the team
members' information (Esteban Velez and Ryan Mayorga).
- The project must be developed in **Java** using the **Swing graphical
library**.
- The program must be **100% object-oriented**;
Project Objectives
Page 2
Project Statement
You have to create a simple Java-based game.
Requirements:
Game Name: Obstacle Race
Description:
- A **two-player** game where competitors race from the start to the finish
line.
- Players take turns rolling a **6-sided die** (1–6) to advance.
- The track includes randomly distributed **obstacles** and **bonuses** that
affect movement:
- "Go back to start" (appears on board 2 times).
- "+3" (advance 3 spaces, appears on board 3 times).
-"+5" (advance 5 spaces, appears on board 2 times).
- "Opponent catches up" (opponent moves to current player’s position,
appears on board 2 times).
- "-4" (retreat 4 spaces, appears on board 3 times).
- "-2" (retreat 2 spaces, appears on board 3 times).
Rules:
- Obstacles/bonuses **cannot be adjacent** or placed on the same tile. At
least **one blank tile** must separate them.
**UI Design Example (Preview):**
**Note that the image is in Spanish**
Game Setup & Requirements
- Players’ names must be entered once the option “Juego”(Game) on the
menu bar is clicked and it displays the Menu Item “Iniciar”(Start), once
clicked, the game starts.
The starting player must be randomly selected.
The current position and progress of each player must be
displayed visually on the board (e.g., using tokens, distinct colors, or
player names). Be creative!
For easier programming and control, use dynamic controls for the
track (optional).
1. User Interface (UI):
o The design must be user-friendly, visually appealing, and
intuitive, and simple.
o The game must indicate whose turn it is during gameplay.
o The winner must be displayed by name (names are collected
when clicking on start).
2. Menu Bar Requirements:
o Game (Start, Abort, Display last round’s Winner).
o About… (opens a JDialog window showing team members'
names (Esteban Velez and Ryan Mayorga).
3. Technical & Coding Standards:
o Set an icon for the game’s main window.
o Indent and document the source code using:
Line comments.
Block comments.
Javadoc where applicable.
o Use proper variable naming for objects, variables, constants,
methods, classes, and Swing controls.
o Implement try-catch blocks for error handling where needed.
o Follow Swing control naming conventions (e.g., btnStart for
buttons).
4. Mandatory Implementation:
o OOP principles (classes, methods).
o Loops, arrays (1D/2D).
o Swing graphical controls (e.g., JFrame, JPanel).
1. **Functionality (50 points):**
- Control structures (10 pts).
- Game mechanics (obstacles, turn management, 20 pts).
- Game completion/winner detection.
- Arrays usage.
- Validations (e.g., `try-catch`)
2. **UI & Code Quality (25 points):**
- Intuitive Swing interface
- Code documentation
- Proper indentation (Shift + ALT + F Should suffice)
- Variable naming conventions
- The program must not crash (implement proper validations).