Projet : Snake Game

image1

Première Partie

Créez un nouveau Projet.

Question 1

Modifiez votre fenêtre principale pour que ces dimensions soient les suivantes : 450x465.

Question 2

Créez une grille nommée “snakeGrid” composée de 10 colonnes et 16 lignes de taille 25.

image2

Correcion partielle

Question 3

Insérez dans cette grille un rectangle nommé “snake” de la même taille que les carrés de la grille (c’est à dire 25x25).

image3

Correction

Question 4

Faites-en sorte de pouvoir déplacer ce rectangle dans la grille via les flèches de votre clavier.

Correction partielle

Question 5

Ajoutez 3 textBlocks (un avec le mot Coordonnées, les deux autres affichant les coordonnées du rectangle sur la grille nommés respectivement coordX et coordY)

image4

Correction

Question 6

Créez une fonction Actual_Coord qui va mettre à jour les textBlocks coordX et coordY en fonction des coordonnées du snake. Puis utilisez là au bon endroit dans votre programme.

Correction

Question 7

Ajoutez également des boutons (ou rectangles) qui représenteront les flèches de votre clavier sur l’écran.

image5

Correction pour l'ajout des boutons

Question 8

Lorsque vous appuyez sur une flèche, la flèche représentée sur l’écran doit changer de couleur et revenir à sa couleur initiale lorsque la flèche de votre clavier est relâchée.

Comme ci-dessous, (flèche gauche appuyée puis relâchée)

image6

image7

Correction partielle

Deuxième Partie

Question 9

Ajoutez un DispatchTimer permettant au rectangle de se déplacer automatiquement dans la direction que l’utilisateur aura choisie.

Lien pour en savoir plus sur l’utilisation du DispatchTimer : https://www.wpf-tutorial.com/fr/96/divers/le-dispatchertimer/

image8

Ici, la fonction timer_Tick va être appelée toutes les 150 millisecondes. Cela correspond à la vitesse de déplacement de notre snake.

Il faut tout d’abord détecter la direction. On crée donc une vrariable _direction que l’on initialise à zéro.

image9

Correction partielle

Question 10

Insérez un rectangle “nourriture” dynamiquement sur la grille. Ce rectangle apparait aléatoirement sur la grille et correspond à la nourriture de votre Snake. Lorsque ce dernier passe dessus, la nourriture disparait et réapparait à un autre endroit.

Dans un premier temps, on crée la variable nourriture aux cotés de la variable direction. Nous utiliserons également un Random afin de placer cette nourriture aléatoirement.

image10

Correction partielle

Voilà ce que vous devez obtenir :

Question 11

Créez la fonction GameOver(). Cette fonction est appelée lorsque les coordonnées du snake sorte de la grille de jeu. Elle affiche un message de défaite, retire la nourriture de la grille si il y en a, replace le snake aux coordonnées (2,2) et réinitialise le choix de direction à 0.

Correction

Pour aller plus loin

Faites-en sorte que le SNAKE s’agrandisse quand il mange.