La calculatrice NUMWORKS problème mémoire vive.

  • Auteur de la discussion Bambi-sauvage
  • Date de début
B
Bambi-sauvage
Anonyme
Voilà le lien vers mon compte:
https://my.numworks.com/python/leno-m

J’ai re fait le script finalement de façons à utiliser uniquement le stockage d’informations avec l’interface graphique (et à la grande surprise c’est assez rapide).
 
MaskedChatte
Ultra actif
Messages
149
Fofocoins
2 437
Salut 👋🏻

Je sais pas si vous l’avez et si vous l’utilisez pour coder en python 🤷🏻‍♂️
En tout cas j’ai fait un petit script pour agrandir la taille de la police.
Car oui avec kandinsky on peut pas 😫

Voilà le script:
Python:
from math import*
from kandinsky import*
from ion import* #pour detecter l´interaction de l´utilisateur avec les touches

#init
x=0
y=0
d=10 #un decalage pour pouvoir faire defiler le texte quand il sort de l´ecran
t=1 #pour la taille
grille=[]
mot=input("mot: ")
while len(mot)>8 or len(mot)=0:
    print("Votre mot est trop long ou trop court (max 8, min 1)")
    mot=input("mot: ")
draw_sting(mot,0,0)

#"scan" du texte
for i in range(200*len(mot)):
    grille.append(get_pixel(x,y))
    x+=1
    if x==10*len(mot)+1:
        x=0
        y+=1
       
    #affichage
    def draw():
        fill_rect(0,0,320,222,"white")
        x=d
        y=10
        for i in range(200*len(mot)):
            fill_rect(x,y,t,t,color(grille[i]))
            x+=t
            if x==(10*t)*len(mot)+d+t:
                x=d
                y+=t
               
               
draw()
while True:
    if keydown(KEY_UP):
        t+=1
        draw()
    if keydown(KEY_DOWN) and t>1:
        t-=1
        draw()
    if keydown(KEY_LEFT) and d>((10*len(mot)*t)-310)*-1:
        d-=t*3
        draw()
    if keydown(KEY_RIGHT) and d<10:
        d+=t*3
        draw()

J’ai limité la taille de mot à 8 car à partir de 9 la memoir vive est insuffisante à l’exécution du programme plus le stockage de la list grille[]
J’ai essayé de mettre une condition pour remplacer (248,252,248) (le blanc) par 0 pour optimiser la liste mais au final rien que l’exécution des deux conditions réduit à 6 la taille du mot.

Quelqu’un sait comment je pourrais optimiser l’utilisation de la mémoire vive ?
Merci.

Sinon quelqu’un d’autre code sur sa calculette dans les 3/4 des cours ? 😂
J’ai des script intéressant à partager dont l’imitation de l’interface de calcul pour tricher et y glisser des données. 😂
jailbreak ta calculatrice
 
B
Bambi-sauvage
Anonyme
jailbreak ta calculatrice
Comment ça ?
Et finalement c’est bon j’ai réussi à faire autrement voici le code (je vais aussi optimiser l’affiche pour éviter d’exécuter ce qui sort de l’écran)

Python:
from math import *
from kandinsky import *
from ion import *
import time

print("")
print("Change la taille avec les fleches")

t=1
d=10
print("Mot/texte/nombre: ")
mot=str(input("-> "))
print("Couleur (red,blue,green,...)")
color=str(input("->: "))
if mot=="":
  mot="42"
if color=="":
  color="black"

while len(mot)>42:
  print("Votre entree est trop grande.")
  mot=str(input("Entree: "))
 
 
def interaction():
  global t
  global d
  if keydown(KEY_UP):
    t+=1
    draw()
  if keydown(KEY_DOWN) and t>1:
    t-=1
    draw()
  if keydown(KEY_LEFT) and d>((10*len(mot)*t)-310)*-1:
    d-=t*3
    draw()
  if keydown(KEY_RIGHT) and d<10:
    d+=t*3
    draw()


def draw():
  x=0
  y=200
  x2=d
  y2=10 
  fill_rect(0,0,320,222,"white")
  draw_string(mot,0,200,color)
  for i in range(200*len(mot)):
    fill_rect(x2,y2,t,t,get_pixel(x,y))
    x2+=t
    if x2==(10*t)*len(mot)+d+t:
      x2=d
      y2+=t
    x+=1
    if x==10*len(mot)+1:
      x=0
      y+=1
  fill_rect(0,199,320,1,"black")
  fill_rect(0,200,320,22,"white")
  draw_string(mot,0,200,color)           

draw()
while True:
  interaction()

On est sur 32 caractères et encore je peux aller à la ligne aussi pour afficher le model à scanner.
 
B
Bambi-sauvage
Anonyme
J ai pas trop compris ce que tu voulais ire en parlabt de la solution de chat GPT
J’ai demandé à Chat GPT comment je pouvais faire pour optimiser la mémoire vive.

Maintenant je ne sauvegarde plus toutes les données dans une liste je les laisse affichées dans une zone de l’écran et je viens scanner à chaque affichage.
Contrairement à mes attentes c’est plus rapide et je fait x4 en capacité
 
MaskedChatte
Ultra actif
Messages
149
Fofocoins
2 437
Comment ça ?
Et finalement c’est bon j’ai réussi à faire autrement voici le code (je vais aussi optimiser l’affiche pour éviter d’exécuter ce qui sort de l’écran)

Python:
from math import *
from kandinsky import *
from ion import *
import time

print("")
print("Change la taille avec les fleches")

t=1
d=10
print("Mot/texte/nombre: ")
mot=str(input("-> "))
print("Couleur (red,blue,green,...)")
color=str(input("->: "))
if mot=="":
  mot="42"
if color=="":
  color="black"

while len(mot)>42:
  print("Votre entree est trop grande.")
  mot=str(input("Entree: "))
 
 
def interaction():
  global t
  global d
  if keydown(KEY_UP):
    t+=1
    draw()
  if keydown(KEY_DOWN) and t>1:
    t-=1
    draw()
  if keydown(KEY_LEFT) and d>((10*len(mot)*t)-310)*-1:
    d-=t*3
    draw()
  if keydown(KEY_RIGHT) and d<10:
    d+=t*3
    draw()


def draw():
  x=0
  y=200
  x2=d
  y2=10
  fill_rect(0,0,320,222,"white")
  draw_string(mot,0,200,color)
  for i in range(200*len(mot)):
    fill_rect(x2,y2,t,t,get_pixel(x,y))
    x2+=t
    if x2==(10*t)*len(mot)+d+t:
      x2=d
      y2+=t
    x+=1
    if x==10*len(mot)+1:
      x=0
      y+=1
  fill_rect(0,199,320,1,"black")
  fill_rect(0,200,320,22,"white")
  draw_string(mot,0,200,color)          

draw()
while True:
  interaction()

On est sur 32 caractères et encore je peux aller à la ligne aussi pour afficher le model à scanner.
tu installes un custom firmware sur ta calculatrice. ca permet de donner plus d'espace aux scripts python
 
B
Bambi-sauvage
Anonyme
tu installes un custom firmware sur ta calculatrice. ca permet de donner plus d'espace aux scripts python
Je préfère ne rien installer, et puis c’est tellement plus drôle d’être contraint c’est comme ça qu’on trouve les solutions les mieux.

Mais du coup problème résolu tout est ok
 
Gengisclan
Enragé
Messages
762
Fofocoins
16 979
Plantation d'un arbre via Reforestaction 🌳
Plantation d'un arbre via Reforestaction 🌳
Genre
Garçon
Maintenant je ne sauvegarde plus toutes les données dans une liste je les laisse affichées dans une zone de l’écran et je viens scanner à chaque affichage.
Contrairement à mes attentes c’est plus rapide et je fait x4 en capacité
Comment tu fais pour scanner ?
 
B
Bambi-sauvage
Anonyme
Comment tu fais pour scanner ?
Avec kandinsky.
Tu fait get_pixel(x,y) et il te renvoie la couleur du pixel en question en rgb.
par exemple blanc c’est (258,252,248)

Et donc après je vais aller dessiner un rectangle en définissant sa taille avec la variable t de la bonne couleur 😌
 
Gengisclan
Enragé
Messages
762
Fofocoins
16 979
Plantation d'un arbre via Reforestaction 🌳
Plantation d'un arbre via Reforestaction 🌳
Genre
Garçon
D ailleurs j ai remarque que le get pixel donnait un truc differend de la valeur d origine. Mais j ai pas compris comment tu fait pour recuperer le truc. Tu as un pixel mais les autres...amoins que tu uttilise du binaire sur l affichage
 
B
Bambi-sauvage
Anonyme
D ailleurs j ai remarque que le get pixel donnait un truc differend de la valeur d origine. Mais j ai pas compris comment tu fait pour recuperer le truc. Tu as un pixel mais les autres...amoins que tu uttilise du binaire sur l affichage
Bah en gros je fait un rectangle d’une taille définit et à un endroit spécifique et je définis la couleur comme get_pixel(x,y)
Donc en faisant le rectangle le programme vas aller chercher la couleur du pixel en question.
Et non j’utilise pas de binaire.
la fonction renvoie une couleurs en rgb.
 
B
Bambi-sauvage
Anonyme
Demain j irais regarder ton code sur ordi. Ca m a l aire fichtrement enrichissant
Ok hésite pas j’ai aussi mis les autres codes comme l’interface calcule ou un petit jeu de labyrinthe gêner aléatoirement.
Par contre pour certains code comme celui-ci ou tu doit entrer quelques choses avec les touches ça ne marche pas (logique)
Je sais pas si tu peux exécuter un script dans une simulation sinon download sur ta calculatrice
 
Sujets similaires Réponses Date
Problème avec ma copine 4
Problème avec SDF 3
Problème avec mon beau père .. 4
Problème humiliant 4
Problème de crush 10

🚫 Alerte AdBlock !

Vous avez activé le mode Ninja, et il cache toutes les pubs ! 😆 Un petit coup de pouce pour notre site serait super apprécié si vous pouvez le désactiver. 🙏

🦸‍♂️ J'ai Désactivé AdBlock !