π
<-
Chat plein-écran
[^]

Fourmi de Langton et autres questions sur le python

Fourmi de Langton et autres questions sur le python

Message non lude 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: Tout sélectionner
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: Tout sélectionner
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 !
Tous mes
levels Oiram CE
, mes programmes de
maths
, des
jeux
, et autres programmes
divers et variés
sont ici : classement par téléchargements
Faites-moi part de ce que vous en pensez !
Image
Avatar de l’utilisateur
UnCurieuxProg.
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 0.1%
 
Messages: 322
Images: 1
Inscription: 19 Mai 2017, 18:20
Genre: Homme
Calculatrice(s):
Classe: Terminale S

Re: Fourmi de Langton et autres questions sur le python

Message non lude Ti64CLi++ » 16 Mar 2019, 16:09

UnCurieux a écrit: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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 67.1%
 
Messages: 3111
Images: 61
Inscription: 04 Juil 2014, 14:40
Localisation: Valence 26
Genre: Homme
Calculatrice(s):
Classe: 1°S-SVT
GitHub: Ti64CLi

Re: Fourmi de Langton et autres questions sur le python

Message non lude 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
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 85.9%
 
Messages: 31675
Images: 7995
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Fourmi de Langton et autres questions sur le python

Message non lude Ti64CLi++ » 17 Mar 2019, 14:54

Tente ce code :
Code: Tout sélectionner
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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 67.1%
 
Messages: 3111
Images: 61
Inscription: 04 Juil 2014, 14:40
Localisation: Valence 26
Genre: Homme
Calculatrice(s):
Classe: 1°S-SVT
GitHub: Ti64CLi

Re: Fourmi de Langton et autres questions sur le python

Message non lude UnCurieux » 17 Mar 2019, 19:17

Ti64CLi++ a écrit:
UnCurieux a écrit: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++ a écrit:Pour le 0xffffff, c'est 0xRRGGBB en hexadécimal, donc chaque 'chiffre' entre 0 et F ;)

Ah d'accord, merci :)

Critor a écrit: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 :)
Tous mes
levels Oiram CE
, mes programmes de
maths
, des
jeux
, et autres programmes
divers et variés
sont ici : classement par téléchargements
Faites-moi part de ce que vous en pensez !
Image
Avatar de l’utilisateur
UnCurieuxProg.
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 0.1%
 
Messages: 322
Images: 1
Inscription: 19 Mai 2017, 18:20
Genre: Homme
Calculatrice(s):
Classe: Terminale S


Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
22.5%
-
Rechercher
-
Sujets à la une
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...

Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
334 utilisateurs:
>322 invités
>6 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)