langton's ant / fourmi de langton

C'est le lieu des discussions diverses et variées, mais toujours en rapport avec le thème général du forum et dans l'esprit de celui-ci. Contient des rubriques électroniques.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
fabrice_035
Messages : 625
Inscription : 20 sept. 2011 20:24
Localisation : RENNES

langton's ant / fourmi de langton

Message par fabrice_035 »

Après avoir lu un article sur la fourmi de Langton ( ref https://fr.wikipedia.org/wiki/Fourmi_de_Langton ) j'ai cherché un programme pour tester ça sous Linux sous forme de bash et surprise, en fait cette simulation de comportement a été adaptée pour les langages suivants

Code : Tout sélectionner

 
    1 Ada
    2 Aime
    3 AutoHotkey
    4 AutoIt
    5 AWK
    6 BBC BASIC
    7 bc
    8 C
    9 C++
    10 C#
    11 Chapel
    12 Clojure
    13 COBOL
    14 CoffeeScript
    15 Common Lisp
    16 D
        16.1 Textual Version
        16.2 Image Version
    17 EchoLisp
    18 Ela
    19 Elixir
    20 Erlang
    21 Euphoria
    22 Fantom
    23 Fortran
        23.1 But, if one remembers complex numbers
    24 Go
    25 Haskell
    26 Icon and Unicon
    27 J
    28 Java
    29 JavaScript
    30 jq
    31 Liberty BASIC
    32 Locomotive Basic
    33 Logo
    34 LOLCODE
    35 Lua
    36 MATLAB / Octave
    37 Mathematica
    38 Nim
    39 OCaml
    40 PARI/GP
    41 Pascal
    42 Perl
    43 Perl 6
    44 Phix
    45 PHP
    46 PicoLisp
    47 Processing
    48 Prolog
    49 PureBasic
    50 Python
    51 R
    52 Racket
    53 REXX
    54 Ruby
    55 Run BASIC
    56 Rust
    57 Scala
    58 Seed7
    59 Sidef
    60 Swift
    61 Tcl
    62 TI-83 BASIC
    63 Whitespace
    64 XPL0
    65 zkl
http://rosettacode.org/wiki/Langton's_ant

Sympa, pour donner une occupation à nos vieilles machines, ou un fond d'écran, selon :mrgreen:

A vos claviers !!!

edit:
je vais tenter de faire un programme pour Amiga Basic (ça doit être facile), et pourquoi pas avec avec un Vic 20!
Si d'autres veulent se lancer dans l’aventure avec leur machine de prédilection, pourquoi ne pas partager le résultat ici :wink:
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: langton's ant / fourmi de langton

Message par __sam__ »

Petite video du site de maths que j'aime bien "Numberphile" (pour anglophones)


:arrow: Cette fourmie termine avec un motif répétitif qui ne s'arrête jamais.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: langton's ant / fourmi de langton

Message par Papy.G »

Ce n'est pas étonnant qu'en commençant par un écran blanc, il finisse toujours par faire une diagonale, mais ce qu'il l'est plus, c'est que quel que soit le motif de départ, il finisse par faire ces diagonales, pourvu qu'il y ait une zone uniforme pour la démarrer.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: langton's ant / fourmi de langton

Message par __sam__ »

Tu peux ajouter Thomson MO5,MO6,TO7,TO7/70,TO8,TO9 et TO9+ dans la liste:

Code : Tout sélectionner

10 CLEAR,&H7FFF
30 READ A$:IF LEN(A$)=4 THEN A=VAL("&H"+A$):GOTO 30
40 IF A$="**" THEN EXEC A ELSE POKE A,VAL("&H"+A$):A=A+1:GOTO 30
50 DATA 8000
60 DATA 34,7E,8E,A7,C0,CE,1F,40,A6,C4
70 DATA 63,C4,A1,C4,26,06,8E,E7,C3,CE
80 DATA 5F,40,A7,C4,33,C9,F0,74,A6,84
90 DATA 8A,01,A7,84,8E,3C,28,CC,80,00
100 DATA A7,E2,A8,C4,A7,C4,A6,E0,A5,C4
110 DATA 26,02,5C,81,5A,C4,03,27,1D,C1
120 DATA 01,27,0C,C1,02,27,10,48,26,15
130 DATA 49,33,5F,20,10,44,26,0D,46,33
140 DATA 41,20,08,33,C8,D8,20,03,33,C8
150 DATA 28,30,1F,26,C9,35,FE
160 DATA 8000,**
dcmoto01.png
dcmoto01.png (2.15 Kio) Consulté 2660 fois

Code : Tout sélectionner

*************************
* Fourmi de Langton pour
* Thomson.
* (c) Samuel Devulder
*     Dec 2015
*************************

        org     $8000

* point d'entrée

INI     pshs    d,x,y,u,dp

* param MO5
        ldx     #$A7C0
        ldu     #8000

* adaptation TO7        
        lda     ,u
        com     ,u
        cmpa    ,u
        bne     MO5
        ldx     #$E7C3
        ldu     #$5F40
MO5     sta     ,u

* ecran: memoire forme
        lda     ,x
        ora     #1
        sta     ,x

* U=position fourmi
*   (milieu écran)
        leau    -3980,u

* A = mask pixel fourmi
* B = direction     
        LDD     #$8000

* compteur cycles avant
* sortie ecran     
        ldx     #15400
        
LOOP    sta     ,-s
        eora    ,u
        sta     ,u
        lda     ,s+
        bita    ,u
        bne     NOIR
* droite
        incb
* un cmpa qui evite un saut
        fcb     $81
NOIR    decb        
        andb    #3
        beq     up
        cmpb    #1
        beq     right
        cmpb    #2
        beq     down
left    lsla
        bne     NEXT
        rola
        leau    -1,u
        bra     NEXT
right   lsra
        bne     NEXT
        rora
        leau    1,u
        bra     NEXT
down    leau    -40,u
        bra     NEXT
up      leau    40,u
NEXT    leax    -1,x
        bne     LOOP

        puls    d,x,y,u,dp,pc
        
        end     INI
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: langton's ant / fourmi de langton

Message par Papy.G »

Excellent, Daniel code des trucs de ouf au petit dej', et toi au coucher!
Quelle pité qu'il n'y ait pas moyen d'éteindre/inverser un pixel dans le basic de ma calculette, je l'aurais fait! :cry:
M'enfin, avec un écran de 64x96, je ne suis pas sûr qu'on aurait pu voir apparaître une diagonale quelconque. :mrgreen:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
fabrice_035
Messages : 625
Inscription : 20 sept. 2011 20:24
Localisation : RENNES

Re: langton's ant / fourmi de langton

Message par fabrice_035 »

__sam__ a écrit :Tu peux ajouter Thomson MO5,MO6,TO7,TO7/70,TO8,TO9 et TO9+ dans la liste
Respect :shock:
Pendant mon sommeil je me suis posé la question de l’adaptation pour Vic20 en langage machine, va falloir s'y mettre :? glups
Répondre