Update on 14.12.2022
- Ambiveri Giulia
- Ghilardini Matteo
- Sacco Francesc Jordi
- Toscano Sasha
As the world cup started, and also as we thought that creating a normal version of snake would have been "already seen" we sort of got inspired by the meme of Cristiano Ronaldo shouting SIUM when he scored a goal.
That's why, even if so far we managed to do a normal working snake, our goal is to substitute the head with Ronaldo's, and change it when the "snake is gonna "eat" a "fruit" to the face of the meme. (See the PNGs for reference)
The original revision was to try and use some sort of grid already implemented in Drracket. We found the module PPict but the website said it was deprecated.
We managed to find a way to read it by a crazy guy who saved it on git-hub but the only way it was going to work is with The Racket Language as it introduces the #lang dialect.
We asked the TA's then if there was a way and they gave us the idea to create from scratch our own grid, and to colour each square of it to recreate the snake, making it a lot easier to make.
So far we managed to make a working snake with a tail(GREEN) following the head(RED) that will stop when it hits itself and when it hits the border.
We are also trying to change the speed of it as we found out that the bing-bang only registered on the tick that you give at the beginning.
We are still going to try to implement some sort of sound to the game but that will be surely the last project's point.
The next step is to add the fruit powerups and the malus to change the velocity of the snake to add some sort of start game button and a try again when it finishes
We successfully integrated the images and the sound effect in the program.
After realizing that the sound effect could be a bit bothersome to some people, we decided to add a "mute" button.
We managed to make the "fruits" spawn randomly, and whenever one is eaten the snake gets 1 square longer.
We also added the "malus" which we decided should be yellow cards, and a check that makes you lose if you get 2 of them (exactly like in soccer that if you get 2 you are disqualified).
We created the score system, which would keep track of how many "fruits" were eaten.
We successfully found a way to make the snake get increasingly faster based on how many fruits were eaten.
We also created a "menu" page, on which the player can read some of the buttons (the mute one, for example) and can restart the game when he loses.
We currently have a bug, in which if the player inputs two directions in succession too quickly it can override the movement control function and is able to move illegally.
Next on our list of objective, along with any bug fixes, there is the need to do all the tests plus the documentation.
We added every missing DataTypes
We forgot to mention in the last milestone that when you take a malus, movement speed increases
We successfully followed the design-recipe consistently with what was learned in the course
We divided our roles for writing the required documentation, and proceeded with completing them
We successfully implemented check-expects of all functions
We managed to fix the movement bug mentioned above
We restructured some functions to optimize the code, both in reading and execution
