Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Sam 23 Oct 2010, 17:48
Salut tout le monde !
Je suis de retour après une longue absence !
Mais depuis le temps je me suis amélioré sec !
Dommage, avant hier ma calculette à fait un bug de Clear Memory...
Mais bon, j'ai refait un programme que je trouvais vraiment sympa, et très joli !
C'est un... générateur de labyrinthe parfait !
Eh oui ce n'est pas un jeu, mais à partir de ça on peut en faire plein des jeux sympa !
Voyons, la maîtrise du mode graphique
C'parti !
(Désolé pas de fichier 82p ou 83p, mais bon le programme est assez court donc ça va. Et je possède une stat fr donc certaines fonctions sont en français, mais globalement on s'y retrouve.)
nom du programme : LABYALGO
Code
:EffEcr
:Menu("LABYALGO","NEW LABY",NL,"REPRENDRE",3 //la fonction reprendre existe pour ceux qui voudraient faire des gros labyrinthes, genre 62*94, mais qui seraient limités niveau RAM (erreur mémoire)
:Lbl NL
:Menu("NEW LABY","PAR DEFAUT",9,"CHOISIR TAILLE",35
:Lbl 35
:Input "LONGUEUR:",J
:Input 'Largeur:",I
:I+PartDéc(I/2)->I
:J+PartDéc(J/2)->J
:Goto 2
:Lbl 9
:20->I:20->J
:Lbl 2
:-62->Ymin
:0->Ymax
:0->Xmin
:94-CXmax
:EffDessin
:AxesNAff
:FonctOff
:For(O,1,J-1
:Ligne(O,-1,O,-I+1
:End
:2->Z:2->¤ //¤ = théta
:Lbl 3
:Pxl-Off(Z,¤
:Z->U:¤->V
:If non(pxl-Test(Z,¤-2)) et non(pxl-Test(Z,¤+2)) et non(pxl-test(Z+2,¤)) et non(pxl-Test(Z-2,¤
:Goto RT
:Lbl 4
:U->Z
:V->¤
:entAléat(1,4->A
:Z+2(A=1)-2(A=2->Z
:¤+2(A=3)-2(A=4->¤
:If non(pxl_Test(Z,¤
:Goto 4
:Pxl-Off((Z+U)/2,(¤+V)/2
:Goto 3
:Lbl RT
:For(A,2,I,2
:For(B,2,J,2
:If pxl-Test(A,B
:Goto R2
:End
:End
:Ligne(0,0,J,0
:Ligne(0,0,0,-I
:Ligne(0,-I,J,-I
:Ligne(J,-I,J,0
:EffEcr
:Disp "GENERE!
:Output(5,5,""
:Stop
:Lbl R2
:entAléat(1,I/2-1)*2->A
:entAléat(1,J/2-1)*2->B
:A->Z
:B->¤
:If non(pxl-Test(A,B
:Then
:If pxl-Test(A+2,B) ou pxl-Test(A-2,B) ou pxl-Test(A,B+2) ou pxl-Test(A,B-2
:Goto 3
:End
:Goto R2
Voilà, terminé.
Pour mon usage personnel, j'essaierai de le faire en assembleur, mais si j'arrive déjà à faire un Hello World! en assembleur je serai content
Le rendu de ce programme est vraiment sympa pour des labyrinthes assez grands (par exemple un 5*5 c'est pas terrible) mais il dure peut être un petit peu longtemps (environ 20min pour un 62*94))
J'avais fait un autre programme ou l'on pouvait se balader dedans avec des Output et des pxl-Test mais bon le reset de mémoire m'a donné une flemme de le refaire...
Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Sam 23 Oct 2010, 18:53
Non, dans celui là j'avais fait qu'un trésor apparaissait aléatoirement dans le laby et qu'on devait aller le trouver, et ensuite il réapparaissait à un autre endroit (y'avait une sympa fonction GPS(le programme était en mode ES(si j'emploie des imparfaits c'est parce que le programme a disparu en même temps que le reste de ma RAM)))
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 10 Nov 2010, 16:02
Coco, ton prgm s’avère bien utile pour moi, car j'ai fait (comme toi),
un prgm où ont est un point qui se déplace entre des lignes et où il faut
sortir d'un labyrinthe...
Le principe était pour moi de crée une matrice plus grande que le nombres
de caractères possible sur l’écran, ainsi, par un système de output( et de for(
le labyrinthe se déplaçait de haut en bas et de gauche à droite lorsqu’on arrivait en bout d'écran, ce qui permettait d'en faire de très grands...
Or le poids de la matrice l'était tout autant...(environ (4x16,4x8) pour une matrice c'est énorme ! Et c'est ce qui fallait pour un bon labyrinthe).
D'où l'idée d'utiliser un dessin et des pxl-test...
Seul problème,les générer, et je n'est pas réussit à faire fonctionner ton prgm !
SOS !!!
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 11 Nov 2010, 0:20
J'ai déjà conçu un programme de labyrinthe plus grand que l'écran (jeu mais pas générateur).
Je ne l'ai jamais publié ni adapté en graphe car la fluidité était décevante.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
C'est exactement à partir de cette page là que j'ai fait ce programme ^^'
Mais, pour des raisons de RAM, j'ai décidé de pas stocker les coordonnées dans une liste mais plutôt de chercher une case avec des Random.
Perso quand j'étais petit j'adorais les labyrinthes, et je crois que ça n'est toujours pas passé ^^