Nom : Logo-Man
Auteur : Sébastien Magdelyns
Email : smag@belgacom.net
Version : 1.0 (28/10/2003)
Interprêteur : P_Logo (version française) ;;PLogo
v3.02d pour DOS. P = Profil (éditions)...
Logo-Man est un petit jeu didactique pour familiariser des enfants à
se déplacer avec la tortue.
Le principe du jeu est le suivant : le joueur doit ramasser les diamants
disponibles sans se faire attraper par les fantômes. Pour chaque déplacement
du joueur, les fantômes effectueront un déplacement proportionnel
dans la direction du joueur moyennant des paramètres aléatoires.
Le joueur gagne la partie s'il collecte tous les diamants. Le joueur peut
se déplacer à l'aide des primitives Logo "AV, RE, TG,
TD".
Lancement de Logo-Man : LOGOMAN m n
où m est le nombre de fantômes
et où n est le nombre de diamants.
Ex : - LOGOMAN 1 2 (lance Logo-Man avec 1 fantôme et 2 diamants)
- LOGOMAN 4 3 (lance Logo-Man avec 4 fantômes et 3 diamants)
Remarque : Solutions en cas de problème mémoire avec le programme
:
- Eviter d'interpréter avec l'éditeur. ;;éviter
le CTRL-Q, quoi !...
(utiliser la commande RAMENE dans la console) ;;console
= ordinateur (UC) ou niveau supérieur de Logo (le?) ;
;;c'est vous qui voyez !...
- Eviter les interruptions manuelles (CTRL-C) ;;ah
ce cher ^C !... ;-)
- Redémarrer la machine... ;;'faut tout leur
dire :-)
;;- Si vous venez d'une autre activité
avec le langage ou si vous voulez recommencer une partie,
;;je vous invite à tout effacer avant avec la commande .EFT
; le RECYCLE, Sébastien s'en est chargé !
Copyright / Permissions :
Vous pouvez distribuer ce programme librement, pour autant que vous ne le
modifiiez pas et que vous mentionniez l'auteur originel. ;;et
aussi où vous l'avez trouvé : ce serait plus sympathique
!
Vous pouvez utiliser ce programme pour votre compte personnel à condition
de le faire gratuitement.
Donc : voir auprès de l'auteur si vous pouvez
l'utiliser en atelier et/ou en classe.
Enfin, juste avant le FIN de cette procédure, vous remarquerez le REPETE 1000 [RECYCLE (...) que Sébastien explique ainsi : Boucle interprétant les commandes.
EXECCMD
Exécute la commande interprétée, vérifie la
position de la tortue, vérifie les gains et anime les fantômes
le cas échéant (pour les sorties d'écrans).
Remarque : la commande doit être une primitive Logo (à 1 paramètre).
Paramètre :
cmd --> la commande à exécuter.
nbf --> le nombre de fantômes.
nbx --> le nombre de diamants.
Retour : Rien.
Dès les premières utilisations de ce
jeu, les élèves de Sabine Lekeux ont trouvé une manière
de "tricher".... d'où la correction indiquée ici
et incluse dans le programme fournie :
DONNE "step ITEM 2 :cmd (prendre la distance réelle --> CHKOUTSCREEN)
est remplacée par :
DONNE "step RC SOMME PROD DIFF ITEM 1 :savepos ITEM 1 POS DIFF ITEM
1 :savepos ITEM 1 POS PROD DIFF ITEM 2 :savepos ITEM 2 POS DIFF ITEM 2 :savepos
ITEM 2 POS
Et :
DONNE "savepos POS ;;la Primitive POS qui prend 2 arguments (liste) : abscisse et ordonnée.
CHKOUTSCREEN
Vérifie la position de la tortue et l'empêche de sortir de
l'écran.
Remarque : Cette fonction est nécessaire car l'activation de la primitive
Logo "CLOS" génère un message d'erreur sur la console
en cas de sortie !
La console étant asservie par Logo-Man --> erreur
;;la 'console' (sic) : Sébastien prend votre
fabuleux ordinateur
;;pour une vulgaire console de jeu... Je vous jure ! ;-)
Paramètre : Rien.
Retour : Rien.
REPLACE
Replace la tortue à l'endroit où elle a quitté l'écran.
Astuce : Faire avancer artificiellement la tortue pour connaître 2
points et écrire l'équation de la droite suivie par la tortue.
Calculer le point d'intersection avec le bord de l'écran et repositionner
la tortue à ces coordonnées. ;;Ben voyons
! Il est fortiche m'sieur Sébastien !
Paramètre : Rien.
Retour : Rien.
ANIMALLF
Anime tous les fantômes définis en calculant l'avancement aléatoirement.
Mise à jour des variables d'états localisant les fantômes.
Paramètre : step --> l'avancement de la tortue joueur.
Retour : Rien.
ANIMF
Anime un fantôme à une position et couleur définis.
Paramètre : posf --> position de départ du fantôme.
col --> la couleur du fantôme.
step --> l'avancement du fantôme.
Retour : La nouvelle position du fantôme (après déplacement).
CHKPOS
Vérifie la position d'un fantôme par rapport à la tortue
(--> Calcul de distance)
Paramètre : posf --> position du fantôme.
Retour : 1 si le fantôme a attrapé la tortue (0 sinon).
LOSE
Ecran de fin de partie. Le joueur a perdu. Sauvegarde la fenêtre graphique
dans un fichier ("LogoMan.pcx")
;;un fichier image que vous pouvez soit charger dans
P_Logo avec RAMENEIMAGE "LogoMan.pcx,
;;soit ouvrir dans Paint, Paint Shop Pro et peut-être même dans
Photo Shope ...
Paramètre : Rien.
Retour : Rien
DRAWF
Dessine un fantôme aux coordonnées "posx-posy" dans
la couleur "col".
Paramètre : posx --> abscisse X.
posy --> ordonnée Y.
col --> couleur.
Retour : Rien
CHKX
Vérifie la position de la tortue par rapport aux diamants (-->
Calcul de distance)
Paramètre : posx --> position d'un diamant.
Retour : 1 si la tortue a attrapé le diamant (0 sinon). ;;Vrai
ou Faux, 1 ou 0.
;;On peut aller loin avec Logo ; même avec la tortue !... Mais ne réveillons pas certains... ;-)
CHKWIN
Vérifie l'état du jeu pour savoir si le joueur a gagné.
Paramètre : Rien.
Retour : Rien.
GETX
Attrape un diamant. (Effacement du diamant + joue un son)
Paramètre : posx --> La position d'un diamant.
Retour : Rien.
WIN
Ecran de fin de partie. Le joueur a gagné. Sauvegarde la fenêtre
graphique dans un fichier ("LogoMan.pcx").
;;voir à LOSE.
Paramètre : Rien.
Retour : Rien
DRAWALLX
Dessine tous les diamants définis.
Paramètre : Rien.
Retour : Rien
DRAWX
Dessine un diamant à la position "posx-posy".
Paramètre : posx --> abscisse X.
posy --> ordonnée Y.
Retour : Rien
ECRISGRAPH
Ecris un message dans la fenêtre graphique.
Paramètre : texte --> Une liste contenant le texte à afficher.
couleur --> La couleur du texte.
position --> Une liste contenant la position du texte.
[3 5] : pour la ligne 3, colonne 5.
taille --> Une liste contenant la taille de caractère.
[1 1], [1 2], [2 1] ou [2 2].
Retour : Rien
© Olivier Schmidt-Chevalier - oct., nov. 2003 |