Skip to content

CaesarSaladd/Python_Text_Based_Game

Repository files navigation

COMP-1510-202530-Term-Project

NAME:

Julio Arantes

STUDENT NUMBER:

A01476726

GITHUB NAME:

CaesarSaladd

Overview:

Batman: Pythonic Gotham — Text-Based Adventure

Welcome to Batman: Shadows of Gotham, a text-based adventure game where you take the role of the Dark Knight as Gotham City collapses into chaos. The inmates of Arkham Asylum have escaped, villains roam the streets, and only Batman can restore order. The Riddler has set up multiple puzzle chambers throughout the city. Solve riddles and amass health to defeat the Joker.

How to Run the Game

  1. Install Python 3.10+

Make sure you have Python installed. Check with:

python --version

  1. Run the main game file

From the project directory, run:

python game.py

This starts the interactive text-based adventure.

File Structure:

Comp1510-TermProject/
│
├── game_logic/
│   ├── __init__.py
│   ├── level_up.py
│   ├── room_interactions.py
│   ├── test_player_reached_new_level.py
│   ├── test_user_wants_to_heal.py
│   ├── user_heals.py
│
├── rooms/
│   ├── __init__.py
│   │
│   ├── alley_with_thugs_combat.py
│   ├── arkham_asylum_interactions.py
│   ├── batcave_interactions.py
│   ├── defuse_traps.py
│   ├── final_battle.py
│   ├── riddler_interactions.py
│   ├── vials_dealer_interaction.py
│
│   ├── rooms_unit_tests/
│   │   ├── alley_with_thugs_unit_tests/
│   │   │   ├── __init__.py
│   │   │   ├── test_thugs_combat.py
│   │   │   ├── test_thugs_generator.py
│   │   │
│   │   ├── arkham_asylum_interactions_unit_tests/
│   │   │   ├── __init__.py
│   │   │   ├── test_attack_mad_hatter.py
│   │   │   ├── test_user_chooses_analyze.py
│   │   │   ├── test_user_chooses_direct_attack.py
│   │   │   ├── test_user_chooses_smoke_bomb.py
│   │   │
│   │   ├── final_battle_unit_tests/
│   │   │   ├── __init__.py
│   │   │   ├── test_attack_joker.py
│   │   │   ├── test_joker_dialogue.py
│   │   │   ├── test_user_chooses_detective_vision.py
│   │   │
│   │   ├── vials_dealer_unit_tests/
│   │       ├── __init__.py
│   │       ├── test_user_chooses_to_play_card_game.py
│   │       ├── test_user_chooses_to_play_slots.py
│   │       ├── test_user_chooses_to_steal_vial.py
│
├── game.py
├── game.pdf
├── level10.png
├── README.md
├── .gitignore
│
├── test_check_if_goal_attained.py
├── test_get_user_choice.py
├── test_is_alive.py
├── test_make_board.py
├── test_make_character.py
├── test_move_character_or_heal.py
└── test_validate_move.py

Requirements

Requirement Location
Use of immutable data structure Board coordinates in game.py make_board
Board is correct size & efficient make_board in game.py
Gameplay ends properly check_if_goal_achieved in game.py, only possible if user is level 3
Movement + boundaries correct validate_move in game.py, user cannot move out of bounds
Varied + scalable challenges Riddles, Traps, Vials Dealer and random combat, some fights with dialogue
Mutability minimized Only object being mutated repeatedly is character dictionary and board
Mutable scope minimized Modules are populated by small atomic functions
Uses list/dict comprehension riddles_quiz in riddler_interactions.py line 188
Uses if-statements Move_character_or_heal in game.py lines 164 to 173
Uses for/while loops Game in game_py line 242
Uses membership operator get_user_choice in game.py line 96
Uses range() efficiently make_board in game.py lines 29 and 30
Uses itertools correctly alley_with_thugs.py thugs_generator lines 122 and 123
Uses random correctly alley_with_thugs.py thugs_generator lines 134 and 126
Output uses formatted strings Defuse_traps.py lines 271 and 272
Exceptions & handling try/except block in riddle_quiz in riddler_interactions.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages