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

Nom : Logo-Xo
Auteur : Sébastien Magdelyns
Version : 1.0 (28/10/2003)

Logo-Xo est un petit jeu didactique pour familiariser des enfants à se déplacer avec la tortue. Le principe du jeu est assez simple : à tour de rôle, le joueur et le robot doivent choisir une case libre sur la grille pour essayer d'aligner 3 "croix" ("cercle" pour le robot). Le premier à y parvenir l'emporte.
Le joueur doit se déplacer dans la case à l'aide des primitives Logo AV, RE, TG, TD" avant d'utiliser la commande "X" pour jouer.

Lancement de Logo-Xo : LOGOXO

Remarque : voir Logo-Man à cette page et lire LOGOXO là où est écrit LOGOMAN

Copyright / Permissions : idem (ici)


Commentaires de l'auteur sur les procédures :

LOGOXO

Fonction principale du jeu. Exécute la commande spéciale "X" et appelle CROSS. Sinon, exécute les primitives Logo habituelles (AV,RE,TG,TD) en appelant EXECCMD.

Ré initialise le tableau statut du jeu. ;;Voir commentaires au même endroit à Logo-Man

Boucle interprétant les commandes : REPETE 1000 [RECYCLE SI PLG ;;et suite de la ligne

Paramètre : Rien
Retour : Rien

EXECCMD

Exécute la commande interprétée et vérifie la position de la tortue (pour les sorties d'écrans).
Remarque : la commande doit être une primitive Logo (à 1 paramètre).

Paramètre : cmd --> la commande à exécuter.
Retour : Rien.


CROSS

Valide la croix à la position de la tortue si la case est vide (dessin de la croix + mise à jour des variables d'états).

Ce qui suit le second RECYCLE de cette procédure = mise à jour des variables d'états (reconstruction d'un nouveau grid), vérifie si joueur a gagné, puis robot joue, vérifie si robot gagne et vérifie l'ex-aequo.

Paramètre : Rien.
Retour : Rien.

DRAWWIN

Trace la ligne gagnante

3 tests pour ligne gagnante ; 3 tests pour colonne gagnante ; 4 tests pour diagonale 1 gagnante et 4 autres pour diagonale 2 gagnante.

Paramètre : win --> Indices de ligne et colonne gagnants.
ring --> 1 si c'est un cercle et 0 pour une croix.
Retour : Rien.

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 (ordinateur) en cas de sortie !

La console étant asservie par Logo-Man --> erreur ;;Logo-XO, Sébastien : je t'y prends ! :-)

Paramètre : Rien.
Retour : Rien.

REPLACE

Replace la tortue à l'endroit où elle a quitté l'écran.
Astuce : voir Logo-Man au même endroit.

Paramètre : Rien.
Retour : Rien.

 

GETPOS

Retourne la case de la grille dans laquelle se trouve la tortue.

Paramètre : Rien.
Retour : Liste contenant les indices (i et j) de la case.
[2 3] pour la case à la 2ème ligne et à la 3ème colonne.
[-1 -1] si la tortue n'est pas dans la grille.

DRAWRING

Dessine un cercle à un endroit stratégique calculé ; mise à jour des variables d'états (reconstruction d'un nouveau grid).

Paramètre : Rien.
Retour : Rien

DISPRING

Dessine un cercle à l'endroit spécifié.

Paramètre : Rien. ;;bon, cette fois, je le dis : que signifie cette ligne pour Sébastien alors qu'un
;;amateur de Logo verra, dans la procédure en question 3 paramètres ?


Retour : Rien ;;et ces "Retour" : sont-ils du "Logo" ou sont-ils du "Sébastien" ?

GETBESTCELL

Dessine un cercle à un endroit stratégique.
1 : Si le robot peut, il doit gagner ! ;;Non : ce n'est pas une des 3 lois d'Asimov ! ;-)
2 : Si le joueur peut gagner, le robot doit l'en empêcher !
3 : Sinon, jouer au hasard dans une case libre !

D'abord tester si le robot peut gagner ? Puis : si le joueur peut gagner --> l'empêcher...

Jouer au centre si libre
;SI EGAL? -1 ITEM 5 :grid [RENDS 5]
;;pourquoi Sébastien met-il cette ligne en commentaire (non exécutable) avant un "au hasard sur une case libre"
;;précédent le dernier
DONNE de cette procédure et un "erreur!" juste devant le RENDS 0 final ?

Paramètre : Rien.
Retour : La "meilleure" case où jouer.

DRAWGRID

Dessine la grille.

Paramètre : Rien.
Retour : Rien

DRAWCROSS

Dessine une croix à un endroit donné.

Paramètre : x,y --> La position du centre de la croix à dessiner.
Retour : Rien

DRAWROBOT

Dessine un robot dans la partie droite de l'écran.

Paramètre : col --> couleur (noir pour effacer) ;;et oui : on n'a pas de GOMMECRAYON (GC) comme
;;primitive dans cette version de Logo...


Retour : Rien

CHKWIN

Analyse la grille de jeu pour savoir si quelqu'un a gagné.

Paramètre : j --> "1" ou "2" représentant le joueur ou le robot.
Retour : Une liste contenant l'indice de ligne ou colonne gagnant.

WIN

Ecran de fin de partie. Le joueur a gagné.
Sauvegarde la fenêtre graphique dans un fichier ("LogoXo.pcx")

;;voir à LOSE dans les commentaires sur le procédures de Logo-Man

Paramètre : Rien.
Retour : Rien

EXAEQUO

Ecran de fin de partie. Ex-aequo. ;;voir ci-dessus.

Paramètre : Rien.
Retour : Rien

LOSE

Ecran de fin de partie. Le joueur a perdu. ;;idem.

Paramètre : Rien.
Retour : Rien


ECRISGRAPH

;;voir commentaires pour la même procédure de Logo-Man.



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