Université Pierre et Marie Curie Licence Ingénierie Electronique

publicité
Université Pierre et Marie Curie
Licence Ingénierie Electronique
Développement d'un projet en langage C (LE384)
Jeu « Kaa, le python »
Objectif du jeu « Kaa, le python »
Un python parcoure une scène rectangulaire où apparaissent de temps à autre des pommes. Le
python a un corps flexible et une mauvaise digestion : à chaque pomme mangée, il s'allonge de la
taille de la pomme. De plus, il a la particularité de ne jamais s'arrêter d'avancer. Enfin le
déplacement du serpent est quelque peu particulier : il ne contrôle que la direction de déplacement
de sa tête. Le reste du corps suit la tête : chaque section de son corps prends la place de la section
qui le précède (comme cela est symbolisé par les flèches dans le schéma ci-dessous). L'objectif du
jeu est de manger le plus de pommes possibles sans que le python mange une partie de son corps ou
le mur.
une pomme
corps du
serpent
tête du
serpent
Travail demandé
On demande de programmer le jeu en respectant les points suivants :
– au début du jeu la taille du python est minimum (il n'est composé que de sa tête)
– la gestion de son corps doit faire appel à une liste chaînée
– les pommes doivent apparaître de manière aléatoirement
– la vitesse du python sera réglée par le niveau du jeu.
Dans une version plus complexe, on pourra :
– ajouter des cachets d'Alka Seltzer qui permettent au python de digérer une (ou plusieurs)
pomme avalée (sa taille diminue alors) : ils apparaîtront de manière aléatoire mais à une
fréquence moins importante que les pommes et disparaissent au bout d'un moment.
– Ajouter des poires ; plus énergisantes que les pommes, non seulement elles augmentent la
taille du python mais également sa vitesse.
– Ajouter des niveaux de jeu où le décor est plus complexe (des murs ou des obstacles
supplémentaires)
Université Pierre et Marie Curie
Licence Ingénierie Electronique
Développement d'un projet en langage C (LE384)
Jeu « Ce matin, un lapin... »
Objectif du jeu « Ce matin, un lapin... »
Un lapin doit survivre en pleine période de chasse. Son objectif est d'échapper aux crocs des chiens
que lui envoient un chasseur. Le chasseur fait des aller-retour en haut de l'écran, et lâche de manière
aléatoire un de ses chiens sur le lapin. Le lapin peut se déplacer sur la moitié inférieure de l'écran.
Le chien ne peut que descendre l'écran à une vitesse constante (composante en ordonnée constante).
Par contre, il se dirigera latéralement en direction du lapin (composante en abscisse changeante).
chasseur
chien
lapin
Travail demandé
On demande de programmer le jeu en respectant les points suivants :
- les chiens devront être gérés par liste chainée,
- l'apparition des chiens devront être aléatoire mais leur position de départ sera toujours la
même que celle du chasseur,
- la fréquence d'apparition (probabilité d'apparition à chaque boucle du jeu) et la vitesse des
chiens devront être réglés selon le niveau de difficulté.
Dans une version plus complexe, on pourra :
–
ajouter un fusil au chasseur qui tirera des balles de temps à autre en direction du
lapin (les balles ne changeront jamais de direction) ; si elles croisent un chien (ou un lapin),
elle le tue. Le lapin recevra des points supplémentaires s'il arrive à faire tuer un chien,
–
Les balles seront bien entendu gérées aussi par une liste chaînée,
–
plusieurs chasseurs peuvent se partager la moitié haute de l'écran,
–
des entrées de tunnel sont présents dans la moitié inférieure de l'écran et si le lapin
rentre dans un terrier, il réapparaît à la sortie d'un autre terrier.
Université Pierre et Marie Curie
Licence Ingénierie Electronique
Développement d'un projet en langage C (LE384)
Jeu « Saute-mouton »
Objectif du jeu « Saute-mouton »
Un homme a des problèmes d'insomnie. Pour s'endormir, il compte les moutons au dessus desquels
il saute virtuellement. Les montons apparaissent aléatoirement à droite de l'écran et le traverse de
droite à gauche. L'homme peut se déplacer librement dans la moitié gauche de l'écran. Son objectif
est de sauter au dessus d'un maximum de moutons ; attention, s'il se présente devant un mouton et
ne saute pas, il « meurt » écrasé par le mouton.
mouton
homme
Travail demandé
On demande de programmer le jeu en respectant les points suivants :
- les moutons devront être gérés par liste chainée,
- l'apparition des moutons devront être aléatoire à la fois temporellement et spatialement (à droite de
l'écran certes mais à une hauteur aléatoire),
- la fréquence d'apparition (probabilité d'apparition à chaque boucle du jeu) et la vitesse des chiens
devront être réglés selon le niveau de difficulté.
Dans une version plus complexe, on pourra :
- de temps à autre un bélier apparaît ; celui-ci, l'homme ne peut pas sauter au dessus et doit à tout
prix ne pas se faire écraser par lui ; le bélier se dirige toujours de droite à gauche à vitesse constante
(composante en abscisse constante) mais se dirige en direction de l'homme (composante en
ordonnée variable selon les positions relatives bélier-homme).
- la zone où peut évoluer l'homme est étendue à tout l'écran ; mais les moutons et les béliers peuvent
apparaître à droite comme à gauche de l'écran. Lorsqu'un mouton allant de droite à gauche entre en
collision avec un mouton allant de gauche à droite ; l'un d'eux doit changer de position selon
l'ordonnée (pour ne pas s'écraser mutuellement). Par contre, si un bélier croise un autre bélier ou un
mouton, le bélier se cogne sur celui-ci et est éliminé (ainsi que le bélier ou le mouton impliqué dans
la collision). L'homme reçoit un bonus pour chaque bélier ainsi éliminé.
Université Pierre et Marie Curie
Licence Ingénierie Electronique
Développement d'un projet en langage C (LE384)
Jeu «Squash prisonnier»
Objectif du jeu «Squash prisonnier»
Un homme fan de squash et de ballon prisonnier décide de réunir les deux jeux ensemble. Le joueur
humain peut se déplacer sur la moitié inférieure de l'écran. Il doit renvoyer une balle sur l'autre
moitié de l'écran qui rebondit sur tous les murs sauf sur le mur derrière lui. D'autres joueurs
(contrôlés par l'ordinateur) font des allers retours sur la moitié supérieure de l'écran ; si la balle les
touche par devant, la balle rebondit. Si la balle les touche dans le dos, le joueur touché est éliminé.
Si la balle touche le mur inférieur, le joueur humain a perdu.
autre
joueur
balle
joueur
humain
Travail demandé
On demande de programmer le jeu en respectant les points suivants :
- les joueurs non humains devront être gérés par liste chainée, de temps à autre un nouveau joueur
apparaît dans la moitié supérieure de l'écran.
- au début, la balle est lancée par le joueur humain ; son angle de départ est fixe (30°)
- lorsque la balle rebondit, l'angle « réfléchi » sera le même que l'angle « incident » avec un bruit
additionnel aléatoire de quelques degrés.
Dans une version plus complexe, on pourra :
- considérer plusieurs balles (les balles rebondiront alors sur le mur inférieur, et le joueur humain
sera éliminé si une balle le touche dans le dos).
- que lorsque la balle rebondit sur un joueur, l'angle « réfléchi » varie en fonction de la position
relative de la collision par rapport à la tête du joueur.
Université Pierre et Marie Curie
Licence Ingénierie Electronique
Développement d'un projet en langage C (LE384)
Jeu « Saut à l'infini »
Objectif du jeu « Saut à l'infini »
Un lapin un peu dingue n'arrête pas de sauter. Votre objectif est de le diriger à droite ou à gauche de
sorte à ce qu'il rebondisse toujours sur un plateau.. A chaque rebond, la vitesse en ordonnée sera la
même au début (vers le haut) et diminuera avec le temps jusqu'à s'inverser (et le lapin chutera
alors). Les plateaux descendent du haut vers le bas : ils apparaissent de manière aléatoire et à
descende à des vitesses aléatoires. L'objectif est que le lapin ne chute jamais jusqu'en bas de l'écran.
Travail demandé
On demande de programmer le jeu en respectant les points suivants :
- les plateaux devront être gérés par liste chainée.
- au début du jeu, le lapin se trouve sur plateau et saute aussitôt.
- avec le temps, les chances qu'un nouveau plateau apparaisse diminue.
Dans une version plus complexe, on pourra :
- considérer que le lapin doive éviter de se cogner la tête contre un plateau au dessus de lui.
- le lapin dispose de carottes qu'il peut lancer au dessus de lui pour détruire des plateaux.
Téléchargement