# Structure

## Project Root

Repository consists of a .gitignore file, a README.md file, and two folders, **Games** and **Playground**. We won't be talking about README.md for obvious reasons. For those of you that meet with .gitignore for the first time, we will cover that at the end of this chapter.

<div align="left"><img src="https://2292434843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaEslFOHnOCsJzkfPUF%2F-Lay4j-_btRV7_IuadYQ%2F-Lay519t6ZXJqEkmm1mR%2F2.PNG?alt=media&#x26;token=14bde0c0-fbce-406e-8632-5a97f90b631c" alt="Project root"></div>

## Games Folder

Games folder holds **Multiplayer** and **Singleplayer** subfolders.&#x20;

Multiplayer folder contains fresh **game.md** templates.

<div align="left"><img src="https://2292434843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaEslFOHnOCsJzkfPUF%2F-Lay4j-_btRV7_IuadYQ%2F-Lay6fcLurp4WYdX3lQ-%2F2.PNG?alt=media&#x26;token=b7edc955-d6aa-4ce3-aa6b-575c6c3105d8" alt="Multiplayer games templates"></div>

Singleplayer folder is consisted of **games** subfolders , each with their own **level difficulty** subfolders. Inside of difficulty folders we can find **level.md** files.

<div align="left"><img src="https://2292434843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaEslFOHnOCsJzkfPUF%2F-Lay4j-_btRV7_IuadYQ%2F-Lay6spuZPHlefGMyg9R%2F3.PNG?alt=media&#x26;token=d7b1ead1-98ed-4794-99d2-c8a4182c1f64" alt="Levels 1 - 6 on Easy difficulty in Maze"></div>

## Playground Folder

Think of a Games folder as a board game shelf with all the shiny games on it. **Playground** is the table on which you will actually play your games (\*but instead of putting them back on the shelf after playing, you will just leave them hanging on the table).

<div align="left"><img src="https://2292434843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaEslFOHnOCsJzkfPUF%2F-Lay4j-_btRV7_IuadYQ%2F-Lay6xtzl339BJuCqLDp%2F4.PNG?alt=media&#x26;token=cce8c2bd-1ef4-4d51-87c4-0932b8ae8114" alt="Playground folder with records of all played games."></div>

## [.gitignore](https://git-scm.com/docs/gitignore)

We use .gitignore when we want to tell Git to ignore certain files and/or folders in our project. This will come in handy later when you will be uploading your changes online. For example, in this whole project you won't need any files besides those with .md extension, so I simply ignored any other extension.

This way, if you accidentally add any unnecessary files to the project, Git won't even pay attention to them. I'm (more or less) guaranteed that my project will remain intact from undesired files.

{% hint style="warning" %}
Don't change the contents of .gitignore file!
{% endhint %}
