π
<-

Fourmi de Langton et autres questions sur le python

Fourmi de Langton et autres questions sur le python

Unread postby UnCurieux » 14 Mar 2019, 18:53

Bonjour à tous,
J'ai plein d'interrogations à propos du python de ma superbe numworks !

1 :
J'essaie de reproduire la fourmi de Langton avec un système de cos et sin, mais mon programme ne fonctionne pas et je ne comprend pas pourquoi, j'aurais besoin que vous me disiez ce qui ne va pas svp :)
langton.png

Code: Select all
from math import *
from kandinsky import *
def langton_2(n):
  a,b,c=160,111,0
  for i in range(n):
    draw_string(i,0,0)
    if get_pixel(a,b):
      c+=90
      set_pixel(a,b,color(255,255,255))
    else:
      c-=90
      set_pixel(a,b,color(0,0,0))
    c%=360
    a+=cos(c)
    b+=sin(c)
    a=int(a)
    b=int(b)


J'ai mis les int(a) et int(b) parce qu'une erreur disait que les nombres n'étaient pas entiers, mais je ne vois pas pourquoi...

2 :
Pourquoi y a-t-il des modules ? Il faut les importer, mais pourquoi ne peut-on pas utiliser chaque fonction sans avoir préalablement importé son module ?

3 :
J'ai remarqué que la calculatrice exécute le programme sans rien afficher, j'ai l'impression qu'elle enregistre tous les résultats avant de les afficher, qu'ils soient numériques avec print ou même la position des pixels. Par exemple, ce script n'affiche les résultats qu'une fois que tout est calculé au lieu d'afficher les nombres au fur et à mesure du calcul :

Code: Select all
from math import *
def parfait(n):
  for i in range(n+1):
    if sum([d for d in range(1,i+1) if i%d==0])==i*2:
      print(i)

4 :
vous connaissez un moyen pour faire des captures d'écran animées ?

5 :
Je crois avoir compris comment fonctionnait les couleurs avec rgb, on peut utiliser :
-color(r,g,b) ;
-le nombre donné par la fonction get_pixel qui est un mélange de rgb et de l'intensité ;
-et le dernier que j'ai vu dans un script de nicolas patrois : kandinsky.set_pixel(x,y,0xffffff)
Je ne comprend pas ce que représente 0xffffff et comment l'interpréter, quelqu'un peut m'aider ?

6 (bonus) :
Est-ce que vous pouvez m'expliquer le fonctionnement de ce script ?
https://workshop.numworks.com/python/ni ... is/langton
C'est surtout le fonctionnement de

e=((0,1),(-1,0),(0,-1),(1,0))

et

x+=e[d][0]
y+=e[d][1]

que je ne comprend pas.

Merci d'avance !
You do not have the required permissions to view the files attached to this post.
Maths, fractales, géométrie, packs de levels Oiram, jeux, physique, ... : ici

ImageImage
User avatar
UnCurieuxProgrammeur
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 23.7%
 
Posts: 367
Images: 2
Joined: 19 May 2017, 18:20
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa scientifique 1A

Re: Fourmi de Langton et autres questions sur le python

Unread postby Ti64CLi++ » 16 Mar 2019, 16:09

UnCurieux wrote:J'ai mis les int(a) et int(b) parce qu'une erreur disait que les nombres n'étaient pas entiers, mais je ne vois pas pourquoi...

Peut-être parce que cos et sin renvoie des valeurs non entières ;)

Pour le 0xffffff, c'est 0xRRGGBB en hexadécimal, donc chaque 'chiffre' entre 0 et F ;)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Fourmi de Langton et autres questions sur le python

Unread postby critor » 16 Mar 2019, 16:27

Moi je vois une autre erreur.

En Python, les fonctions trigonométriques fonctionnent en radians. Le réglage degrés/radians de la calculatrice n'a aucune influence sur l'environnement Python.

Or, d'après ton code, tu travailles en degrés...
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Fourmi de Langton et autres questions sur le python

Unread postby Ti64CLi++ » 17 Mar 2019, 14:54

Tente ce code :
Code: Select all
from math import *
from kandinsky import *
def langton_2(n):
  a,b,c=160,111,0
  for i in range(n):
    draw_string(i,0,0)
    if get_pixel(a,b):
      c+=pi/2
      set_pixel(a,b,color(255,255,255))
    else:
      c-=pi/2
      set_pixel(a,b,color(0,0,0))
    c%=2*pi
    a+=cos(c)
    b+=sin(c)
    a=int(a)
    b=int(b)


Cela devrait marcher, puisque j'ai remplacé les degrés par des radians ;)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Fourmi de Langton et autres questions sur le python

Unread postby UnCurieux » 17 Mar 2019, 19:17

Ti64CLi++ wrote:
UnCurieux wrote:J'ai mis les int(a) et int(b) parce qu'une erreur disait que les nombres n'étaient pas entiers, mais je ne vois pas pourquoi...

Peut-être parce que cos et sin renvoie des valeurs non entières ;)

Justement c'est étonnant car cos/sin(90 ou 180 ou 270 ou 360) donne soit 1 soit 0.

Ti64CLi++ wrote:Pour le 0xffffff, c'est 0xRRGGBB en hexadécimal, donc chaque 'chiffre' entre 0 et F ;)

Ah d'accord, merci :)

Critor wrote:En Python, les fonctions trigonométriques fonctionnent en radians. Le réglage degrés/radians de la calculatrice n'a aucune influence sur l'environnement Python.

C'est sûr que dans ce cas... Il faut le savoir, ça ne s'invente pas. Je le saurais pour la prochaine fois !

Cela ne fonctionne pas non plus avec le dernier code... Mais ce n'est pas grave, je vais essayer autrement. Merci à vous deux :)
Maths, fractales, géométrie, packs de levels Oiram, jeux, physique, ... : ici

ImageImage
User avatar
UnCurieuxProgrammeur
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 23.7%
 
Posts: 367
Images: 2
Joined: 19 May 2017, 18:20
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa scientifique 1A


Return to Programmation Python

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1056 utilisateurs:
>1022 invités
>25 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)