-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Latch Jack
committed
Dec 19, 2019
0 parents
commit 50c47de
Showing
14 changed files
with
496 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Battleships | ||
|
||
> **Difficulty level: 3** | ||
![battleships](https://media.git.generalassemb.ly/user/15120/files/da59cd00-fec9-11e8-96b7-dd04a818ea95) | ||
|
||
Battleships is a two-player game where each player covertly lays out their armada of ships on a game board. Each player then takes turns in attempting to hit their opponents ships by torpedoing specific squares hoping to hit an opponent's ship. | ||
|
||
The winner is the player that sinks all the opponent's ships. | ||
|
||
## Resources | ||
|
||
* [How to Play: Battleship - Youtube](https://www.youtube.com/watch?v=q0qpQ8doUp8) | ||
* [Battleship (game) - Wikipedia](https://en.wikipedia.org/wiki/Battleship_(game)) | ||
|
||
## Requirements | ||
|
||
* The game should be one player, with the computer placing its pieces randomly at the start of the game | ||
* The computer should be able to make random attacks on the player's board | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* More intelligent attacks by the computer | ||
|
||
## Challenges | ||
|
||
The biggest challenge here is the computer's moves. Firstly the ships need to be randomly placed, but without touching or overlapping, which requires a considerable amount of logic and recursion. Secondly when the computer attacks the player's board, if it hits a ship, it should try to hit adjacent squares in all directions until it has established that the ship has been sunk. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Connect 4 | ||
|
||
> **Difficulty level: 2** | ||
![connect4](https://media.git.generalassemb.ly/user/15120/files/da59cd00-fec9-11e8-9c1d-06c8821c1fb6) | ||
|
||
Connect 4 is a game where players attempt to make a line of four pieces in a 7 x 6 grid. Players can drop their pieces into columns, so that their piece rests in the lowest available space in that column. | ||
|
||
The winner is the first to create a line of four in any direction, including diagonally. If the board is filled before a line of 4 can be made, the game is declared a draw. | ||
|
||
## Resources | ||
|
||
* [How to play Connect 4 - Youtube](https://www.youtube.com/watch?v=H3FYRM9a0i4) | ||
* [Connect Four - Wikipedia](https://en.wikipedia.org/wiki/Connect_Four) | ||
|
||
## Requirements | ||
|
||
* The game should be playable for two players on the same computer, taking turns to make their moves | ||
* The winner should be displayed when the game is over | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Single player mode with the computer making reasonable moves | ||
|
||
## Challenges | ||
|
||
The most difficult aspect of this game is the win condition, since the whole board must be checked for for pieces in a row in any direction, including diagonals, after each move. If attempting the single player game, the logic to decide which square to play is similarly challenging. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Frogger | ||
|
||
> **Difficulty level: 2** | ||
![frogger](https://media.git.generalassemb.ly/user/15120/files/aa935d80-a23d-11e9-8cd5-5b6ebb1db830) | ||
|
||
The idea of Frogger is to guide a family of frogs across a road, and a river to their homes at the top of the screen. | ||
|
||
To make things more challenging there are numerous moving obstacles that the frogs must avoid to reach their destination. | ||
|
||
## Resources | ||
|
||
* [Frogger arcade game - Youtube](https://www.youtube.com/watch?v=l9fO-YuWPSk) | ||
* [Frogger - Wikipedia](https://en.wikipedia.org/wiki/Frogger) | ||
|
||
## Requirements | ||
|
||
* The game should be playable for one player. | ||
* The obstacles should be auto generated. | ||
|
||
## Suggested enhancements | ||
|
||
* Different difficulty levels. | ||
* Auto generated boards. | ||
* Two player mode on the same computer: players take turns the first to lose more lives across a whole game loses. | ||
* High score board with `localStorage` | ||
|
||
## Challenges | ||
|
||
The main difficulty here is animating the obstacles and detecting collision. There will be a number of timers to manage across the whole game, which can be easily get out of hand. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Minesweeper | ||
|
||
> **Difficulty level: 3** | ||
![minesweeper](https://media.git.generalassemb.ly/user/15120/files/e9bdb080-a235-11e9-84bf-d35df0ed4bed) | ||
|
||
Minesweeper is a classic Windows PC game. The idea is to decide which tile mines are hidden under based on numbered clues hidden under the remaining tiles. | ||
|
||
If the player clicks on a tile that a mine is under the game is immediately over and the board is cleared to reveal the location of all the mines. | ||
|
||
If the player manages to work out where all the mines are located without actually clicking on them, then they clear the board, and can move on to the next level. | ||
|
||
## Resources | ||
|
||
* [How to play Minesweeper - Youtube](https://www.youtube.com/watch?v=7B85WbEiYf4) | ||
* [Minesweeper (video game) - Wikipedia][1] | ||
|
||
## Requirements | ||
|
||
* The game should be playable for one player, playing against the computer | ||
* The board should be automatically cleared when the level is cleared | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Random board generation | ||
* Different board sizes | ||
|
||
## Challenges | ||
|
||
Automatically revealing empty squares, and automatically generating the board is by far the most complex challenge that you will face when making this game. The MVP is rather advanced, so be aware that you may not have much to show until towards the end of the project. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on | ||
|
||
[1]: https://en.wikipedia.org/wiki/Minesweeper_(video_game) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Pac Man | ||
|
||
> **Difficulty level: 3** | ||
![pac-man](https://media.git.generalassemb.ly/user/15120/files/da59cd00-fec9-11e8-8c61-9724060c10c6) | ||
|
||
Pac Man is a classic arcade game from the 80s. The player aims eat all the food in a maze whilst being hunted by ghosts. | ||
|
||
If the player eats special flashing food the ghosts start to flash and can now be captured by the player, sending them back to their holding pen, from where they can once again start to hunt the player. | ||
|
||
The aim is to achieve the highest score possible before being killed by the ghosts. | ||
|
||
## Resources | ||
|
||
* [Pac-Man Arcade gameplay - Youtube](https://www.youtube.com/watch?v=uswzriFIf_k) | ||
* [Pac-Man - Wikipedia](https://en.wikipedia.org/wiki/Pac-Man) | ||
|
||
## Requirements | ||
|
||
* The player should be able to clear at least one board | ||
* The player's score should be displayed at the end of the game | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Each board gets more difficult | ||
* Persistent leaderboard using `localStorage` | ||
|
||
## Challenges | ||
|
||
The biggest challenge here is the logic which moves the ghosts. While their movement may appear random, they are always moving toward Pac Man, who is himself being moved by the player. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Reversi | ||
|
||
> **Difficulty level: 1** | ||
![reversi](https://media.git.generalassemb.ly/user/15120/files/daf26380-fec9-11e8-8dc3-6c154c0e5f99) | ||
|
||
Reversi, sometimes known as Othello is a strategy board game for two players. Each player takes turns in laying a counter (or disc), which is light on one side, and dark on the other on the board. The disc is laid with the player's colour face up in line with another of their discs, with their opponents discs in between. The player can now flip all the opponents discs in between theirs, turning them to their colour. | ||
|
||
Once all the squares have been filled, the player with the most pieces with their colour face up wins. | ||
|
||
## Resources | ||
|
||
* [How to play Othello or Reversi - Youtube](https://www.youtube.com/watch?v=Ol3Id7xYsY4) | ||
* [Reversi - Wikipedia](https://en.wikipedia.org/wiki/Reversi) | ||
|
||
## Requirements | ||
|
||
* The game should be playable for two players on the same computer, taking turns to make their moves | ||
* The winner should be displayed when the game is over | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Single player mode | ||
|
||
## Challenges | ||
|
||
The logic to this game is reasonably mathematical, and can take some time to reach, and so will require a large amount of trial and error and refactoring. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Snake | ||
|
||
> **Difficulty level: 1** | ||
![snake](https://media.git.generalassemb.ly/user/15120/files/4e9c4180-5144-11e9-944d-1b0b76a247c9) | ||
|
||
Snake is a single-player game where the player earns points by guiding the snake to eat food randomly placed on the game board. Each item of food the snake eats the longer it grows. The game is over if the snake hits the edge of the board, or itself. To make things even more challenging, the snake increases speed as the longer it gets! | ||
|
||
The aim of the game is to stay alive as long as possible. | ||
|
||
## Resources | ||
|
||
* [Most dramatic Snake gameplay ever](https://www.youtube.com/watch?v=lg2n2aiF3RY) | ||
* [Snake (video game genre)](https://en.wikipedia.org/wiki/Snake_(video_game_genre)) | ||
|
||
## Requirements | ||
|
||
* The snake should be able to eat food to grow bigger | ||
* The game should end when the snake hits the wall or itself | ||
* Snake speeds up as it eats more | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Multi-player mode | ||
* High score table | ||
|
||
## Challenges | ||
|
||
While not immediately obvious, the logic required to make the game work is relatively straightforward. Some of the enhancements are a little challenging, in particular making the game mobile-friendly. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Space Invaders | ||
|
||
> **Difficulty level: 2** | ||
![space invaders](https://media.git.generalassemb.ly/user/15120/files/daf26380-fec9-11e8-9276-dd4cee934d49) | ||
|
||
Space Invaders is a classic arcade game from the 80s. The player aims to shoot an invading alien armada, before it reaches the planet's surface using a mounted gun turret. | ||
|
||
The player can only move left or right. The aliens also move from left to right, and also down each time the reach the side of the screen. The aliens also periodically drop bombs towards the player. | ||
|
||
Once the player has destroyed a wave of aliens, the game starts again. The aim is to achieve the highest score possible before either being destroyed by the aliens, or allowing them to reach the planet's surface. | ||
|
||
## Resources | ||
|
||
* [Space Invaders 1978 - Arcade Gameplay - Youtube](https://www.youtube.com/watch?v=MU4psw3ccUI) | ||
* [Space Invaders - Wikipedia](https://en.wikipedia.org/wiki/Space_Invaders) | ||
|
||
## Requirements | ||
|
||
* The player should be able to clear at least one wave of aliens | ||
* The player's score should be displayed at the end of the game | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Each wave gets more difficult | ||
* Persistent leaderboard using `localStorage` | ||
|
||
## Challenges | ||
|
||
The main challenge here is the movement of large groups of aliens in formation, and the animation of the bombs and player's shots. There are several approaches here, with collision detection being the more challenging. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
![ga_cog_large_red_rgb](https://cloud.githubusercontent.com/assets/40461/8183776/469f976e-1432-11e5-8199-6ac91363302b.png) | ||
|
||
# Tetris | ||
|
||
> **Difficulty level: 3** | ||
![tetris](https://media.git.generalassemb.ly/user/15120/files/daf26380-fec9-11e8-8acf-fa36d83d819c) | ||
|
||
Tetris is a puzzle game where the player has to fit different shaped blocks (called Tetriminos) together so that they make a complete line across the playing board. Once a line is achieved it is removed from the game board and the player's score is increased. | ||
|
||
The player can move the Tetriminos left and right and rotate them clockwise in 90º increments. | ||
|
||
The aim of the game is to get as many points as possible before the game board is filled with Tetriminos. | ||
|
||
## Resources | ||
|
||
* [Tetris - NES Gameplay - Youtube](https://www.youtube.com/watch?v=CvUK-YWYcaE) | ||
* [Tetris - Wikipedia](https://en.wikipedia.org/wiki/Tetris) | ||
|
||
## Requirements | ||
|
||
* The game should stop if a Tetrimino fills the highest row of the game board | ||
* The player should be able to rotate each Tetrimino about its own axis | ||
* If a line is completed it should be removed and the pieces above should take its place | ||
|
||
## Suggested enhancements | ||
|
||
* Responsive design | ||
* Speed increases over time | ||
* Persistent leaderboard using `localStorage` | ||
|
||
## Challenges | ||
|
||
By far the larges challenge here is the rotation of the Tetriminos. Each one rotates around a specific point on its axis. Also some Tetriminos, particularly the long bar, create problems issues when turning next to the walls of the game board. Furthermore, once a line has been made, the blocks above have to all shift down a row to fill the space, which requires a good amount of recursion. | ||
|
||
## Tips | ||
|
||
* Make sure you spend plenty of time planning _before_ you start coding | ||
* Make sure you understand all of the rules of the game | ||
* Make a checklist of all the features you want to add to the game | ||
* Keep It Stupid Simple | ||
* Refactor your code as you go | ||
* Make sure you have a good idea of what your MVP is and only add extra features once you have achieved it | ||
* Do just enough styling to get started, then once you have your MVP polish up the styling before moving on |
Oops, something went wrong.