+
Skip to content

fac19/snake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐍 Snakes 🐍

snakes

How to play

  • Select your snake / character
  • Use the arrow keys to navigate the screen
  • Collect votes / to stay alive
  • The aim of the game is to survive for the longest amount of time.

Initial ideas

Hacking the game logic

  • This project looks at the core game logic and hacks it!
  • In snake's original feedback loop ->
    • Snake eats food and gets bigger.
    • snake takes up game spaces until the snake crashes into itself.

Our revised game logic 😮

  • Length of snake decreases on move / over time 🆕 ☑️

  • snake eats food and length increases ☑️

  • speed of snake increases when snake eats food ☑️

  • snake hits self / wall and dies 🆕 ☑️

  • By introducting this new game variable it changes the gameplay of snake making it a challenge to stay alive. Therefore points are based on time alive rather than final length.

Integration tests ❎

  • Snake moves over time / on move ❎
  • Snake moves up when up button pressed ❎
  • Snake length decreases on move ❎
  • Snake length increases on food ❎
  • Snake dies when hitting wall ❎
  • Snake dies when hitting self ❎

Design

  • Boris and Nigel ☑️
    • choose your snake for different colour, face on head of the snake? ☑️
  • Giphy snake background ☑️ snake
  • CSS grid? background-color transparent / rgba with decreasing opacity ☑️
  • User defines size of grid ❎
  • game over -> random nigel or boris gif. ❎
  • two snakes??? awsd ❎

Prioritisation

  • Create game grid / board (CSS) ☑️
  • How to make snake ☑️
  • Create snake sprite (RGBA bg-color, array of posX posY) ☑️
  • Create food sprite (coloured dots, posX & posY - random) ☑️
  • Implement Movement (update the snake positions array) ☑️
  • Implement the length increase logic (append snake segment) ☑️
  • Implement the snake death logic (if snake posX, posY, overlaps then game over) ☑️
  • Implement speed (decrease setTimeOut useRef() value) ☑️

Available Ssssscriptsssss - from Mark Zuckburger

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

Your app is ready to be deployed!

See the section about deployment for more information.

npm run eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

About

Who's the bigger snake?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载