Skip to content

python_project_ escape_game_LOTR #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
135 changes: 39 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,135 +1,78 @@
<img src="https://bit.ly/2VnXWr2" alt="Ironhack Logo" width="100"/>

# Project: Escape Room Python Game
![Header](https://raw.githubusercontent.com/mgluengo/python-project/master/images/header.png "Header")

## Overview
## Welcome To The Shire!

The goal of this project is for you to apply the Python programming skills you have learned this week in solving a real problem. We present you the design of a classic game that can be played via text - Escape Room. Your goal is to develop the game using Python based on the game design.
It’s time to play some old-school games! :video_game:

Read the game narratives and technical requirements carefully. Plan how you will achieve your goal with pseudo codes and/or flowchart. Review the logic and process in order to avoid potential errors. Then implement with Python code. After that, test your code several times with different inputs and make sure it's rock solid. The instructional team is standing by to help you in case you run into any problems.
Ok, perhaps typing commands in your terminal is not your idea of fun, but we believe that adding **The Lord of The Rings** to the mix always helps. So, here’s a nerdy and retro option to consider after you finish binge-watching the latest season of Stranger Things.

---

## Game Design
## Project Context

### Game Map
This (humble) Escape Game was our **very first Python project** as newbie programmers at Ironhack.

![Game Map](escape-room-plan.jpg)
We went from not having coded a line before, to making this work in **less than 72 hours** – that’s the pace at coding Bootcamps!

### Game Narratives

#### Game Room
## Game Narrative

You wake up on a couch and find yourself in a strange house with no windows which you have never been to before. You don't remember why you are here and what had happened before. You feel some unknown danger is approaching and you must get out of the house, NOW!
![Shire](https://raw.githubusercontent.com/mgluengo/python-project/master/images/the_shire.png "Shire")

You are now in game room.
>*Hurry up, hobbit!*

What would you like to do?
>*The Ring has awoken.
A threat grows in the land of Mordor where the shadows loom. **Find all maps** to reach Mount Doom and destroy the Ring once and for all.*

You explore the room. This is Game Room. You find couch, piano, and Door A.
>*Your journey starts in The Shire.
You step out of Bilbo’s house…
There’s no going back.*

You examine couch. There isn't anything interesting about it.
>*You have **5 minutes** to solve the challenge.*

You examine Door A. It is locked but you don't have the key.

You examine piano. You find key for Door A.
## Game Map

You examine Door A. Your unlock it with a key you have.

Do you want to go to the next room?
![Game Map](https://github.com/mgluengo/python-project/blob/master/images/middle_earth_map.png)

#### Bedroom 1

You are now in Bedroom 1.
## Tech

What would you like to do?
[![Python](https://img.shields.io/badge/Python-9146FF?style=for-the-badge&logo=python&logoColor=white&labelColor=101010)]()

You explore the room. This is Bedroom 1. You find queen bed, Door A, Door B, and Door C.
## What We Learned

You examine queen bed. You find key for Door B.

You examine Door C. It is locked but you don't have the key.
- Working with **dicts, lists, tuples**
- **Conditional** statements and loops
- **Functions**
- Installing, importing **modules** (e.g. time, termcolor)
- … the adrenaline rush you feel when you make your code work! :surfer:

You examine Door B. Your unlock it with a key you have.

Do you want to go to the next room?
## Next Steps

#### Bedroom 2

You are now in Bedroom 2.
With more time, we would have prioritized the following enhancements:

What would you like to do?
- **New mini-games**.
- Repurpose challenges and add **coding quizzes** to review the content of our classes (introduce **gamification** in the context of the bootcamp).
- **Expand scope** with additional maps, characters and elements to interact with.
- Introduce **random** elements, so the experience is different every time you play.

You explore the room. This is Bedroom 2. You find double bed, dresser, and Door B.
## Links

You examine double bed. You find key for Door C.
:point_right: [See full project ppt on SpeakerDeck](https://speakerdeck.com/mgluengo/python-escape-game-lord-of-the-rings)

You examine dresser. You find key for Door D.
## Team Members

You examine Door B. Your unlock it with a key you have.
[![GitHub](https://img.shields.io/badge/GitHub-mbeovides-14a1f0?style=for-the-badge&logo=github&logoColor=white&labelColor=101010)](https://github.com/mbeovides)

Do you want to go to the next room?
[![GitHub](https://img.shields.io/badge/GitHub-mgluengo-14a1f0?style=for-the-badge&logo=github&logoColor=white&labelColor=101010)](https://github.com/mgluengo)

#### Bedroom 1

You are now in Bedroom 1.
## Special Thanks

What would you like to do?

You examine Door C. Your unlock it with a key you have.

Do you want to go to the next room?

#### Living Room

You are now in Living Room.

What would you like to do?

You explore the room. This is Living Room. You find dining table, Door C, and Door D.

You examine Door D. Your unlock it with a key you have.

Do you want to go to the next room?

#### Outside

Congrats! You escaped the room!

---

## Getting Started

Overwhelmed and don't know where to start? This is a tough challenge we know. But don't worry. We have included a working example for you to reference in which only 1 room (game room) is included. Read the example and make sure you understand it. Then you can expand on top of the example to code the rest of the rooms.

The provided example is just a Minimal Viable Product (MVP). It is fully functional but not bullet proof. You should be aware of its limitations while you are working and try to make your final product as robust as possible.

## Technical Requirements

* Use Python lists and dictionaries to define the rooms, items, and relations of them.

* Use a Python dictionary to store the game state. Update the state dictionary when progresses are made such as a key is collected.

* Use Python functions to play the game. Don't use procedural code.

* After completing each game action, call the next function to continue playing until the winning condition is reached.

* The winning condition is for the player to successfully make to the "Outside" room. When this happens, congrat the player and end the game.

## Necessary Deliverables

The following deliverables should be pushed to your Github repo.

* `main.ipynb` that contains your solution.

## Suggested Ways to Get Started

1. Start Jupyter Notebook from this lab directory.

1. Launch `sample-code.ipynb` and read through the file. Also execute the code and play the game. Make sure you understand what each line of the codes does.

1. Create `main.ipynb` and copy the codes from `sample-code.ipynb`. Expand the code following the example to create Bedroom 1.

1. Test the game with Game Room and Bedroom 1. Make sure everything works then work on Bedroom 2 then Living Room.

1. Test the whole game. Try to make all kinds of inputs to make sure your game is rock solid and will not break.
Kudos to our amazing TA **Gladys Mawarni** for being our Gandalf and guiding us through the first steps of our coding journey! :mage_woman:
Binary file removed escape-room-plan.jpg
Binary file not shown.
Loading