FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Les routines Tortue - Page 3 Emptypar Jack Aujourd'hui à 9:03

» Un autre pense-bête...
Les routines Tortue - Page 3 Emptypar Froggy One Jeu 21 Nov 2024 - 14:54

» Récupération du contenu d'une page html.
Les routines Tortue - Page 3 Emptypar Pedro Sam 16 Nov 2024 - 13:04

» Décompilation
Les routines Tortue - Page 3 Emptypar JL35 Mar 12 Nov 2024 - 18:57

» Un album photos comme du temps des grands-mères
Les routines Tortue - Page 3 Emptypar jjn4 Mar 12 Nov 2024 - 16:23

» traitement d'une feuille excel
Les routines Tortue - Page 3 Emptypar jjn4 Jeu 7 Nov 2024 - 2:52

» Aide-mémoire mensuel
Les routines Tortue - Page 3 Emptypar jjn4 Lun 4 Nov 2024 - 17:56

» Des incomprèhension avec Timer
Les routines Tortue - Page 3 Emptypar Klaus Mer 30 Oct 2024 - 17:26

» KGF_dll - nouvelles versions
Les routines Tortue - Page 3 Emptypar Klaus Mar 29 Oct 2024 - 16:58

» instructions panoramic
Les routines Tortue - Page 3 Emptypar maelilou Lun 28 Oct 2024 - 18:51

» Figures fractales
Les routines Tortue - Page 3 Emptypar Marc Ven 25 Oct 2024 - 10:18

» Panoramic et Scanette
Les routines Tortue - Page 3 Emptypar Yannick Mer 25 Sep 2024 - 20:16

» Editeur d étiquette avec QR évolutif
Les routines Tortue - Page 3 Emptypar JL35 Lun 23 Sep 2024 - 20:40

» BUG QR Code DelphiZXingQRCode
Les routines Tortue - Page 3 Emptypar Yannick Dim 22 Sep 2024 - 9:40

» fichier.exe
Les routines Tortue - Page 3 Emptypar leclode Ven 20 Sep 2024 - 17:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Les routines Tortue

Aller en bas 
+4
Nardo26
Klaus
Jicehel
papydall
8 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyLun 29 Juin 2015 - 23:34

Bravo Nardo26.
Bien réussi.

Le coloriste officiel du forum a boudé la colorisation. Quel dommage ! Sad
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 0:12

Les routines Tortue - Page 3 30
Normal, avec la récursivité, il est retombé 20 ans en arriere !!
à l'époque, il ne maitrisait pas encore les couleurs Les routines Tortue - Page 3 22
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 1:43

Hello Papydall !

Suite à mes cogitations, j'en suis arrivé à cette version du flocon de Koch.

Comme il n'y a pas de variable locale...
C'est beaucoup plus simple ainsi : Les routines Tortue - Page 3 07

Code:

rem ============================================================================
SUB Flocon_Koch()
    dim_local i
    Position_XY(-200,100 )  : Turn_Right(90)
    while i < 3
          Koch(4) : TURN_Right(120) : i = i + 1
    end_while
END_SUB

rem ============================================================================
SUB Koch(iterations)
    IF VARIABLE("iterations")=0 THEN DIM iterations
    PUSH(iterations)
    if iterations = 0
        forward(5)
    else
        Koch(iterations - 1)
        Turn_Left(60)  : Koch(iterations - 1)
        Turn_right(120) : Koch(iterations - 1)
        Turn_Left(60)  : Koch(iterations - 1)
    end_if
    CLR() : POP(0): iterations = POP_RETURN
END_SUB
Revenir en haut Aller en bas
http://nardo26.lescigales.org
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 3:16

Et du coup, on peut remettre le paramètre Flocon_Koch(n)

Code:

Init_Turtle()
Flocon_Koch(4)
end
rem ============================================================================
SUB Flocon_Koch(n)
    dim_local i
    Position_XY(-200,100 )  : Turn_Right(90)
    while i < 3
          Koch(n) : TURN_Right(120) : i = i + 1
    end_while
END_SUB

rem ============================================================================
SUB Koch(iterations)
    IF VARIABLE("iterations")=0 THEN DIM iterations
    PUSH(iterations)
    if iterations = 0
        forward(5)
    else
        Koch(iterations - 1)
        Turn_Left(60)  : Koch(iterations - 1)
        Turn_right(120) : Koch(iterations - 1)
        Turn_Left(60)  : Koch(iterations - 1)
    end_if
    CLR() : POP(0): iterations = POP_RETURN
END_SUB
rem =============================================================================
rem ============================================================================
rem   Spécifiques aux traitements récursifs
rem ============================================================================
SUB PUSH(v)
    IF VARIABLE("PILE")=0
        DIM PILE: PILE = NUMBER_OBJECTS + 1 : DLIST PILE
        DIM EXIT_RECURSE : EXIT_RECURSE=0
    END_IF
    ITEM_ADD PILE,v
    IF INKEY$<>"" THEN EXIT_RECURSE=1:CLEAR PILE: EXIT_SUB
    WAIT 1 : ' pour éviter de saturer l'UC
END_SUB

SUB POP(n)
  IF VARIABLE("POP_return")=0 THEN DIM POP_return
  IF COUNT(PILE) > n THEN POP_return=VAL(ITEM_READ$(PILE,COUNT(PILE)-n))
END_SUB

SUB CLR()
  IF COUNT(PILE)<>0 THEN ITEM_DELETE PILE,COUNT(PILE)
END_SUB
rem ============================================================================
'  !!!!!  LA COMMANDE A NE PAS OUBLIER      !!!!!
#Include "Include_Turtle.bas"
rem =========================== FIN ============================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 5:13

Allez !
En couleur
Code:
rem ============================================================================
Init_Turtle()  : ' Indispensable
' Votre programme débute ici

Flocon_Koch()
Courbe_Dragon(200,10)

caption 0,"terminé"
end

rem ============================================================================
SUB Flocon_Koch()
    dim_local i
    Position_XY(-200,100 )  : Turn_Right(90)
    while i < 3
        PUSH(4) :  Koch() : TURN_Right(120) : i = i + 1
    end_while
END_SUB

rem ============================================================================
SUB Courbe_Dragon(c,n)
  Origine():Position_XY(-300,0 )
  PUSH(c):PUSH(n):PUSH(1) : Dragon()
  Origine():Position_XY(400,0 ) : CAP(0)
  PUSH(c):PUSH(n):PUSH(-1) : Dragon()
END_SUB

rem ============================================================================
SUB Koch()
    IF VARIABLE("iterations")=0 THEN DIM iterations
    IF EXIT_RECURSE=1 THEN EXIT_SUB
    POP(0) : iterations = POP_return
    if iterations = 0
        forward(5)
    else
        PUSH(iterations - 1) : Koch()
        Turn_Left(60)  : PUSH(iterations - 1) : Koch()
        Turn_right(120) : PUSH(iterations - 1) : Koch()
        Turn_Left(60)  : PUSH(iterations - 1) : Koch()
    end_if
    CLR() : POP(0): iterations = POP_RETURN
END_SUB


rem ============================================================================
SUB Dragon()
    IF VARIABLE("Drag_c")=0 THEN DIM Drag_c,Drag_n,Drag_e
    IF EXIT_RECURSE=1 THEN EXIT_SUB
    POP(2): Drag_c = POP_return
    POP(1): Drag_n = POP_return
    POP(0): Drag_e = POP_return
    IF Drag_n>0
        PUSH(Drag_c/SQR(2)):PUSH(Drag_n-1):PUSH(1) : Dragon()
        TG(90*Drag_e)
        PUSH(Drag_c/SQR(2)):PUSH(Drag_n-1):PUSH(-1): Dragon()
    ELSE
        AV(Drag_c)
    END_IF
    CLR():CLR():CLR()
    POP(2):Drag_c = POP_return
    POP(1):Drag_n = POP_return
    POP(0):Drag_e = POP_return
END_SUB


rem ============================================================================
' Astuce de Nardo26
SUB PUSH(v)
    CouleurCrayon(rnd(255),rnd(255),rnd(255))
    IF VARIABLE("PILE")=0
        DIM PILE: PILE = NUMBER_OBJECTS + 1 : DLIST PILE
        DIM EXIT_RECURSE : EXIT_RECURSE=0
    END_IF
    ITEM_ADD PILE,v
    IF INKEY$<>"" THEN EXIT_RECURSE=1:CLEAR PILE: EXIT_SUB
    WAIT 1 : ' pour éviter de saturer l'UC
END_SUB

SUB POP(n)
  IF VARIABLE("POP_return")=0 THEN DIM POP_return
  IF COUNT(PILE)<>0 THEN POP_return=VAL(ITEM_READ$(PILE,COUNT(PILE)-n))
END_SUB

SUB CLR()
  IF COUNT(PILE)<>0 THEN ITEM_DELETE PILE,COUNT(PILE)
END_SUB


rem ============================================================================
'  !!!!!  LA COMMANDE A NE PAS OUBLIER      !!!!!
#Include "Include_Turtle.bas"
rem =========================== FIN ============================================
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 5:34

C'est plus joli encore en couleurs, merci Jean-Claude. Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 8:23

Vu les températures actuelles, je me suis dit qu'on pouvait transformer le flocon en 3 soleils.

Code:
' Solar3 ou comment transformer un flocon en soleils
rem ============================================================================
Init_Turtle()  : ' Indispensable
' Votre programme débute ici

dim n%,x%,y%,nb%,couleur%
x%=50 : y%=0 : nb%=7


 couleur%=0 :' mono-color (Jaune)
' couleur%=1 :' multi-color
' couleur%=2 :' ton bleu-vert
' couleur%=3 :' ton bleu-rouge
' couleur%=4 :' ton jaune-vert-rouge

rem ============================================================================
if couleur%<1 then CouleurCrayon(220,220,0)
for n%=1 to 3
  y%=y%+8
  x%=x%-65
if n%=3 then x%=90 : y%=135 : nb%=nb%+1
  Flocon_Koch()
next n%
caption 0,"terminé"
end

rem ============================================================================
SUB Flocon_Koch()
    dim_local i
    Position_XY(x%,y% )  : Turn_Right(90)
    while i < nb%
        PUSH(4) :  Koch() : TURN_Right(130) : i = i + 1
    end_while
END_SUB

rem ============================================================================
SUB Koch()
    IF VARIABLE("iterations")=0 THEN DIM iterations
    IF EXIT_RECURSE=1 THEN EXIT_SUB
    POP(0) : iterations = POP_return
    if iterations = 0
        forward(5)
    else
        PUSH(iterations - 1) : Koch()
        Turn_Left(60)  : PUSH(iterations - 1) : Koch()
        Turn_right(130) : PUSH(iterations - 1) : Koch()
        Turn_Left(54)  : PUSH(iterations - 1) : Koch()
    end_if
    CLR() : POP(0): iterations = POP_RETURN
END_SUB

rem ============================================================================
' Astuce de Nardo26
SUB PUSH(v)
    if couleur%=1 then CouleurCrayon(rnd(255),rnd(255),rnd(255))
    if couleur%=2 then CouleurCrayon(rnd(100),rnd(255),rnd(255))
    if couleur%=3 then CouleurCrayon(rnd(255),rnd(100),rnd(255))
    if couleur%=4 then CouleurCrayon(rnd(255),rnd(255),rnd(100))
    IF VARIABLE("PILE")=0
        DIM PILE: PILE = NUMBER_OBJECTS + 1 : DLIST PILE
        DIM EXIT_RECURSE : EXIT_RECURSE=0
    END_IF
    ITEM_ADD PILE,v
    IF INKEY$<>"" THEN EXIT_RECURSE=1:CLEAR PILE: EXIT_SUB
    WAIT 1 : ' pour éviter de saturer l'UC
END_SUB

SUB POP(n)
  IF VARIABLE("POP_return")=0 THEN DIM POP_return
  IF COUNT(PILE)<>0 THEN POP_return=VAL(ITEM_READ$(PILE,COUNT(PILE)-n))
END_SUB

SUB CLR()
  IF COUNT(PILE)<>0 THEN ITEM_DELETE PILE,COUNT(PILE)
END_SUB


rem ============================================================================
'  !!!!!  LA COMMANDE A NE PAS OUBLIER      !!!!!
#Include "Include_Turtle.bas"
rem =========================== FIN ============================================

sunny sunny sunny
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 8:24

Vraiment sympa toutes ces images ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 10:25

Bravo Jean-Claude !! Les routines Tortue - Page 3 Bravo
sunny sunny sunny

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 10:57

@Nardo,
J'ai fait du bidouillage, j'adore. Avec un peu de temps et d’entêtement on arrive à quelque chose...
lol!
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 15:30

Comme tu te sens bien dans le hamac, je te renvoie tes soleils colorés.


Code:

' Solar3 ou comment transformer un flocon en soleils
rem ============================================================================
Init_Turtle()  : ' Indispensable
' Votre programme débute ici

dim n%,x%,y%,nb%
x%=50 : y%=0 : nb%=7
alpha 10 : font_bold 10 : font_size 10,24 : font_color 10,255,0,0

rem ============================================================================
CouleurCrayon(220,220,0)
for n%=1 to 3
  y%=y%+8
  x%=x%-65
if n%=3 then x%=90 : y%=135 : nb%=nb%+1
  Flocon_Koch()
next n%
for n% = 1 to 25
   position_XY(x%+10,0)     : CO(10*n%,2*n%,5*n%)
   position_XY(x%-100,100)  : CO(0,10*n%,10*n%)
   position_XY(x%-100,-100) : CO(10*n%,0,10*n%)
   pause 500
next n%
caption 0,"terminé"
caption 10," !!! C'est tout pour aujourdh'ui !!!"
end

rem ============================================================================
SUB Flocon_Koch()
    dim_local i
    Position_XY(x%,y% )  : Turn_Right(90)
    while i < nb%
        PUSH(4) :  Koch() : TURN_Right(130) : i = i + 1
    end_while

END_SUB

rem ============================================================================
SUB Koch()
    IF VARIABLE("iterations")=0 THEN DIM iterations
    IF EXIT_RECURSE=1 THEN EXIT_SUB
    POP(0) : iterations = POP_return
    if iterations = 0
        forward(5)
    else
        PUSH(iterations - 1) : Koch()
        Turn_Left(60)  : PUSH(iterations - 1) : Koch()
        Turn_right(130) : PUSH(iterations - 1) : Koch()
        Turn_Left(54)  : PUSH(iterations - 1) : Koch()
    end_if
    CLR() : POP(0): iterations = POP_RETURN
END_SUB

rem ============================================================================
' Astuce de Nardo26
SUB PUSH(v)
    IF VARIABLE("PILE")=0
        DIM PILE: PILE = NUMBER_OBJECTS + 1 : DLIST PILE
        DIM EXIT_RECURSE : EXIT_RECURSE=0
    END_IF
    ITEM_ADD PILE,v
    IF INKEY$<>"" THEN EXIT_RECURSE=1:CLEAR PILE: EXIT_SUB
    WAIT 1 : ' pour éviter de saturer l'UC
END_SUB

SUB POP(n)
  IF VARIABLE("POP_return")=0 THEN DIM POP_return
  IF COUNT(PILE)<>0 THEN POP_return=VAL(ITEM_READ$(PILE,COUNT(PILE)-n))
END_SUB

SUB CLR()
  IF COUNT(PILE)<>0 THEN ITEM_DELETE PILE,COUNT(PILE)
END_SUB


rem ============================================================================
'  !!!!!  LA COMMANDE A NE PAS OUBLIER      !!!!!
#Include "Include_Turtle.bas"
rem =========================== FIN ============================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 EmptyMar 30 Juin 2015 - 18:24

Là, on est plus dans le bidouillage.
C'est nettement plus rapide.

Bravo Papydall. cheers

A+

Revenir en haut Aller en bas
Contenu sponsorisé





Les routines Tortue - Page 3 Empty
MessageSujet: Re: Les routines Tortue   Les routines Tortue - Page 3 Empty

Revenir en haut Aller en bas
 
Les routines Tortue
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Où est la tortue ?
» Problème de la table, du chat et de la tortue.
» Optimisation de routines.
» 3 routines : bin_hexa, hexa_bin et y=ax+b

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: