Project sequence: Start Here → M5 Analyze → M5 Design → M6 Construct/Test Prototype → M7 Construct → M7 Test
Project Two is the final Construct + Test iteration of the three-module SDLC. You will integrate your own Project One design into one working Python program and verify that the required game paths behave correctly.
The graded Project Two deliverable is:
Project Two should not begin from a blank design.
| Earlier artifact/evidence | How it informs Project Two |
|---|---|
design/game_storyboard.md |
Final theme, room/item names, villain, storyline |
design/game_map.drawio |
Final room connections and item placement |
design/move.pseudo |
Movement-command behavior |
design/get_item.pseudo |
Get-item/inventory behavior |
| Project One feedback | Corrections to make before implementation |
prototype/move_between_rooms.py |
Movement/dictionary/loop practice |
| Milestone feedback | Construction/debugging corrections to apply |
Review the current Project Two Guidelines and Rubric and supporting flowchart and sample output in D2L Brightspace as well.
| Module Six prototype | Module Seven final game |
|---|---|
| Provided three-room dragon dictionary | Your Project One rooms/items/villain |
| Movement only | Movement + get-item commands |
| No inventory | Inventory required |
| No villain behavior | Villain loss condition required |
exit ends the loop |
Win or loss ends the loop |
| Reduced practice program | Complete graded game |
If you copy useful code from the milestone, revise it to satisfy the final requirements rather than preserving milestone-only assumptions.
Open text_based_game.py. Use the TODO prompts as
checkpoints rather than trying to write the entire game at once.
Add the full-name comment required by the current Project Two directions.
Project Two requires function(s) that organize required behavior, including:
- Showing available commands
- Showing current room
- Showing inventory
- Showing the item in the current room when applicable
The starter separates instructions and status into two helper functions. You may organize the functions differently if your completed program still meets the current Project Two requirements.
Use your Project One map.
For every room, verify:
- Valid neighboring directions
- Destination room for each direction
- Item for that room, when applicable
- Start-room role
- Villain-room role
Do not substitute the milestone's three-room dictionary for this step.
The gameplay needs at least:
- Current room
- Inventory
Choose values that match your Project One design.
One loop iteration should coordinate the player's status, command input, command handling, state updates, and game-ending checks.
Build and run small sections incrementally.
Call the required helper function(s) from the appropriate part of gameplay so the player sees commands and current status as required.
The final game must distinguish and validate at least:
- Movement commands
- Get-item commands
- Invalid commands
Use your Project One pseudocode as the design reference for the detailed movement and item behaviors.
The gameplay loop continues until:
- The player wins by collecting all required items before encountering the villain, or
- The player loses by entering the villain room before collecting all required items.
Do not use the milestone's exit room as the final ending condition.
| Rubric criterion | Weight |
|---|---|
| Functions | 10% |
| Main Function: Dictionary | 10% |
| Main Function: Gameplay Loop | 15% |
| Main Function: Function Calls | 5% |
| Main Function: Decision Branching | 20% |
| Input Validation | 20% |
| Debugging | 10% |
| Industry Standard Best Practices | 10% |
The optional text_based_game_sdw.md gives you a
rubric-aligned planning and debugging checklist.
Run the game from the repository root. Windows users must use Git Bash for
this bash command block.
cd ~/Repos/it140-projects
python3 src/text_based_game.pyBefore final testing:
- Required function(s) are implemented and called.
- The dictionary matches my Project One design.
- Current room and inventory are tracked.
- Movement commands work.
- Get-item commands work.
- Invalid input is handled.
- A winning outcome is reachable.
- A losing outcome is reachable.
- Milestone-only sample data and ending assumptions are gone.
- No unfinished
TODO:orpassplaceholders remain.
Continue to Test before submitting Project Two.