La NSCPapy Logo présente :
Logo-M
an
de Sébastien Magdelyns

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.



Commentaires de l'auteur sur les procédures :

LOGOMAN
Fonction principale du jeu. Exécute les primitives Logo habituelles (AV, RE, TG, TD) en appelant EXECCMD et exécutera les déplacements des fantômes le cas échéant.

Paramètre :
nbf --> le nombre de fantômes. [1-4]
nbx --> le nombre de diamants. [1-4]

Retour : Rien. ;;Genre : "Circulez, y'a rien à voir" ?...

Sébastien écrit à nouveau la suite de DONNE saisie avant la procédure (LOGOMAN) elle même et répète :
Ré-initialisation des variables globales. (P_Logo initialise les variables globales une seule fois à l'interprétation --> si le joueur relance le programme : ces variables doivent être ré initialisées!).

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



Les procédures du jeu dans une version prête à copier/coller comme indiqué en page d'introduction.

 © Olivier Schmidt-Chevalier - oct., nov. 2003

 RETOUR