patorjk / JavaScript-Snake

The game of Snake written in JavaScript.
MIT License
530 stars 628 forks source link

Snake collision #78

Open lilplayer6k opened 3 years ago

lilplayer6k commented 3 years ago

Hey there dear patorjk! i was playing a slightly altered version of your snake game recently and i wanted to ask if there could be a way to fix this weird snake collision bug where the snake could go backwards into itself and make you lose: image

patorjk commented 3 years ago

That problem doesn't appear to be in the current version of the project:

https://codesandbox.io/s/github/patorjk/JavaScript-Snake?file=/index.html

Looks like this line prevents the problem:

https://github.com/patorjk/JavaScript-Snake/blob/master/js/snake.js#L279

lilplayer6k commented 3 years ago

that line is already in the code though

Pikabyte commented 2 years ago

So I was making my own snake game for a school project and happened to notice this funny little thing. Then I decided to see if other snake games had this. It still exists, but it's less than easy to pull off. Basically, because only two inputs are stored, if you manage to input three or more inputs before the next update, you can do a 180.

stillexists

In my project, I solved this by storing them in a list instead. Realistically though, this is a minor issue, and you would only encounter this if you were deliberately trying to.