2018-03-15 16:44:14 +00:00
|
|
|
-[_Open Classrooms courses_](https://openclassrooms.com/projects/aidez-macgyver-a-sechapper)-
|
|
|
|
|
|
|
|
# [PyDev] Project 3
|
|
|
|
|
|
|
|
#### Help McGyver to escape!
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
### Summary
|
|
|
|
|
|
|
|
Imagine a 2D labyrinth in which _McGyver_ would have been locked up.
|
|
|
|
The exit is watched over by a bodyguard. To distract him, you need to
|
|
|
|
combine the following elements dispersed in the labyrinth:
|
|
|
|
|
|
|
|
* a needle
|
|
|
|
* a small plastic tube
|
|
|
|
* ether
|
|
|
|
|
|
|
|
They'll allow _McGyver_ to create a syringe and put our guard asleep.
|
|
|
|
|
|
|
|
|
|
|
|
### Features
|
|
|
|
|
|
|
|
* One level. The structure (departure, location of the walls, arrival),
|
|
|
|
should be saved in a file to easily modify it if necessary.
|
|
|
|
* _McGyver_ will be controlled by the directional keys on the keyboard.
|
|
|
|
* The objects will be randomly distributed in the maze and will change
|
|
|
|
locations if the user closes the game and raises it.
|
|
|
|
* The game window will be a square of 15 sprites length.
|
|
|
|
* _McGyver_ will have to move from square to square, with 15 squares along
|
|
|
|
the window's length
|
|
|
|
* It will retrieve an object simply by moving on it.
|
|
|
|
* The program stops only if _McGyver_ has recovered all objects and found
|
|
|
|
the exit from the maze. If he stupid enough to comes in front of the the
|
|
|
|
guard without all the objects, he dies (according to the evolution theory).
|
|
|
|
* The program will be standalone, i. e. it can be run on any computer.
|
|
|
|
|
|
|
|
### Steps
|
|
|
|
|
|
|
|
1. Create the starting frame
|
|
|
|
* [x] Initialize a Git repo on Github
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] Create the labyrinth without the graphical user interface
|
|
|
|
* [ ] When the logic of your labyrinth is made, use the PyGame for
|
2018-03-15 16:44:14 +00:00
|
|
|
the graphical interface
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] Then focus on the three main elements of the game: the guard, _McGyver_ and the objects.
|
|
|
|
* [ ] Represent them in your program
|
|
|
|
* [ ] Placed them at the beginning of the game
|
2018-03-15 16:44:14 +00:00
|
|
|
2. Animate the character
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] The only moving element is _McGyver_, create classes methods for
|
2018-03-15 16:44:14 +00:00
|
|
|
animation and finding the exit
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] make a simplified version of the game in which _McGyver_ wins
|
2018-03-15 16:44:14 +00:00
|
|
|
when he arrives in front of the goalkeeper
|
|
|
|
3. Recovering objects
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] Add object management
|
|
|
|
* [ ] The way he pick them up
|
|
|
|
* [ ] Add a counter that will list them.
|
2018-03-15 16:44:14 +00:00
|
|
|
4. Win!
|
2018-03-17 23:36:08 +00:00
|
|
|
* [ ] _McGyver_ has picked up all the objects and asleep the guard
|
2018-03-15 16:44:14 +00:00
|
|
|
|
|
|
|
### Deliverables
|
|
|
|
|
|
|
|
* program hosted by Github
|
|
|
|
* 2 pages text doc (pdf) explaining your approach:
|
|
|
|
* including the link to your repo
|
|
|
|
* develop the choice of algorithm
|
|
|
|
* explain the difficulties encountered and the solutions found
|
|
|
|
|
|
|
|
### Constraints
|
|
|
|
|
|
|
|
* version your code and publish it on Github
|
|
|
|
* follow the good practices of PEP 8
|
|
|
|
* develop in a virtual environment using Python 3
|
|
|
|
* code must be written in English
|