Ce TP est la suite directe du TP 5.
On veut qu'il soit impossible pour un Personnage de sortir du Terrain, il faut le restreindre dans l'aire de jeu.
Faites selon la façon qui vous convient, ou utilisez la façon ci-dessous:
terrain) dans le
constructeur de Personnage. Le Terrain doit être spécifié au moment de la création du perso, donc ajouter également un paramètre au
constructeur, et initialiser la valeur de l'attribut avec la valeur du paramètre.
Jusqu'à présent, le déplacement du Personnage se fait en modifiant sa position depuis la classe Jeu, mais cela n'est pas bon car ce n'est pas la responsabilité de Jeu. Jeu devrait plutôt demander au Personnage de se déplacer en appelant une de ses méthodes (de la classe Personnage), et ensuite c'est le perso lui-même qui ferait son propre déplacement selon sa propre logique. Ainsi il pourrait éviter de sortir du Terrain par exemple, mais on pourrait aussi ajouter d'autres contraintes facilement plus tard.
Ajouter dans la classe Personnage une méthode pour se déplacer. La méthode prend 2 paramètres (en plus de self):
int pour le nombres de cases de déplacement horizontalement sur le terrain du persoint pour verticalementC'est dans cette méthode qu'on empêche le Personnage de sortir de son terrain.
démarrer de la classe Jeu, utiliser la nouvelle méthode de Personnage pour déplacer le perso joueur.
On veut ajouter des murs sur notre terrain. Pour l'instant ils ne bloquent pas le perso du joueur.
Faites selon la façon qui vous convient, ou utilisez la façon ci-dessous:
Ajouter pour chaque Terrain un attribut qui est un tableau à 2 dimensions, dans lequel vous stockerez si oui ou non chaque case contient un
mur ou pas. Un mur (et l'absence de mur) peut être représenté dans chaque case du tableau par un int (0 = un mur, autre valeur =
pas de mur par exemple) ou un bool (True = un mur, False = pas de mur), au choix.
On peut considérer qu'un Terrain ne contient aucun mur après sa création, ils seront ajoutés un par un en modifiant directement son tableau de murs.
Modifier la méthode déssiner de la classe Terrain pour prendre en compte les murs et les dessiner. Vous pouvez
utiliser deux fois le caractère "█" pour faire un carré dans la console, comme ceci: ██. Les cases vides sont toujours dessinées avec le
caractère "·" à ne pas confondre avec le point "."
Quand un Personnage se trouve sur la même case qu'un mur, c'est lui qui est dessiné, pas le mur, pour éviter de perdre de vue le perso du joueur.
Maintenant on veut empêcher le perso du joueur de passer à travers les murs.
Faites selon la façon qui vous convient, ou utilisez la façon ci-dessous: