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
- 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 !