Premier pas de programmation, sur un Zx81, à faire et tester des petits bouts de code en basic, comme master mind, le pendu, le nombre magique (dichotomie).
Matériel : To7/70, Langage : cartouche Basic, enregsitrement sur cassette magnetique.
11 - 13 ans
Malheureusement je n'ai pas d'écran de mes softs car ma soeur a piqué mes cassettes où j'enregistrai mes programmes pour enregistrer par dessus de la radio. malgré tout, je me souviens trés bien de ce que j'ai fait :
13 ans - Un soft de 14 questions/réponses pour des sociétaires du comice agricole du CMBde montauban de bretagne, avec en fond d'écran le logo du CMB. Testé en réel pendant un Comice Agricole à Montauban de Bretagne pendant 8 heures. (Basic To7/70)
14 ans - Un jeux de labyrinthe filaire en 3D vrai perspective précalculé; (Basic 128, To7/70). On utilise les touches de direction du clavier pour se déplacer dans la laby et essayer de trouver la sortie.
Le labyrinthe est un tableau de 8 par 8 pixel noir et blanc ( c'et à dire des valeures booléennes : 0 ou 1){ premiére Bitmap en fait !!). On utilise un point pour représenter la position du joueur dans le labyrinthe. A partir de ce point et selon la direction du joueur (droite,gauche,haut,bas), on scanne les pixels qui se trouve devant la position du joueur. Si il y a un 1 dans la bitmap à droite alors il faut dessiner un mur sinon il faut dessiner une ouverture. Si il y a un 1 à droite dans la bitmap alors on dessine un mur sinon on dessine un passage. Si le point devant la position du joueur est libre (cad égale à zéro) alors on avance la position de scanne de 1 point sinon, on dessine un mur. Sachant que je n'avais jamais pris de cours d'algo ou de programmation, et que j'étais tout seul à programmer autour de moi (donc personne pour aider en quoique se soit !!), c'est déjà pas mal...
C'est là où j'ai pris conscience de l'évolution dans le temps de l'auto-apprentissage. Pendant plusieurs semaines, quelques mois, impossible de comprendre en même temps les deux parties du programme. Pas assez de place dans le cerveau pour conscientiser et manipuler dans ma tête le code des deux parties et faire le lien. Et puis aprés un temps d'inactivité de plusieurs semaines, en y repensant, pof, les deux se collaient logiquement l'une avec l'autre et était clair dans ma tête.
En même temps je rappel qu'on programme en Basic 128 !!
J'architecturait déjà mon code en fonctions à appeller avec des paramétres. Goto, Gosub ; et variables globales comme paramétres :p
1 Définir une labyrinthe dans une bitmap noir et blanc.
2 Position et direction du point de vue (joueur)
3 Lecture de la bitmap à partir de la position et dans la direction du joueur.
4 Générer les commandes pour l'écriture des murs
il y a une profondeur de lecture et à chaque pas de profondeur, il y a 3 murs possibles.
Difficulté géométrique, pré-calcul des positions des coordonnées des murs (ouvert ou fermé)
Logique de dessin (effet 3D réaliste sans erreur de perspective)
A la base de ce programme, j'avais d'abord vu un exemple sur un petit journal de code basic( et autres) qu'il y avait à l'époque (trés rare sources d'informations extérieures) un exemple de programme pour faire ce labyrinthe 3D. Je l'ai intégralement tapé (longues heures), sauvegargé sur bande, et testé : poke error !! apr"s avoir vérifié et revérifié maintes fois que j'avais bien recopié, j'en conclu que le code ne fonctionnait pas ce qui était possible parfois (le canard l'avouait), et vachement ardu de décrypter le code écrit : trés abscons, pas clair, écrit par un éléctronicien :p trop compliqué techniquement et mathématiquement pour moi. Mais personnellement j'avais déjà fait le choix de me concentrer sur la géométrie, n'arrivant pas à comprendre la grammaire du langage mathématique, je me vengeais sur la géométrie que je pouvais mentalement conscientisé correctement. Et Donc je me décidait un beau matin vers 6h30h du mat' (je me levait tôt à l'époque) et commençait à me pencher sur le probléme par moi-même. J'avais pour tout cahier des charges, un dessin 3D perspective d'une vue de labyrinthe.
Il n'y avait pas de bitmap expliquant comment définir le labyrinthe...
Bien sur je réussi et finalisait le jeux.
Que je commençait alors à m'intéressé à faire un jeux de plateforme, mais le langage Basic contenue sur la cartouche était limité. Et Aprés quelques temps pour Noël, j'eut droit à une cartouche de Basic 128.
13 ans-17ans.
Permet de faire de la couleur, 128 :), d'où le nom. Ce lanage permettait de vraiment pouvoir programmer de petits jeux. Ce que je fit, en développant, un jeux de plateforme; (Ninja), fait entiérement de Sprites (bitmap de 8x8).
Maleureusement je ne crois pas avoir encore de copie de ce jeux (même si j'ai toujours le materiel), cause effacement par la soeur qui a enregistré par dessus de la musique radio. pffff.
Mais bon je me souviens trés bien du jeux vu que j'ai passé pas mal de temps pour le faire
J'ai commencé à faire un deuxiéme niveau, plus sophistiqué, mais je m'arrettais là. Les jeux ne sont pas ce qui m'attire le plus.
Je commençais un autre Jeux, basé sur les jeux dont vous êtes le héros, et constitué de plusieurs écrans, représentant en 3D, des piéces, porte, etc ... mais cela devenait vraiment trop lourd de programmer en Basic 128 sur To7/70 alors qu'à l'époque les premiers Amstrad128 et Atari sortait ... mais je n'eut pas le droit à un autre ordinateur avant de m'inscrire à un IUT d'informatique, d'où l'achat à 17840 FF, d'un ordinateur PC, 80286, 1Mo Ram, un DD 20 Mo et un imprimante à aiguille.
D'où à partir de 15 ans je commençais à apprendre la musique (orgue) et je faisais pas mal d'astronomie ... pour combler le manque de confrontation avec un ordinateur et moi-même.