Créer un pixel art sur python [Résolu]

Signaler
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020
-
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020
-
Bonjour à tous !
Je dois bientôt rendre un projet pixel art en informatique au lycée et je suis un peu perdu, nous devons obligatoirement utilisé de fonctions ainsi que de tableau MAIS... JE NE VOIS PAS DUTOUT COMMENT FAIRE :'((.
Si une âme charitable pouvait me venir en aide s.v.p ?
J'ai commencé le strict minimum et je dois coder un drapeau du brésil
import turtle

myPen = turtle.Turtle()
myPen.speed(0)
myPen.color("#000000")

ps: ce MAGNIFIQUE pixelArt je l'ai trouvé sur google et j'aimerais le refaire

4 réponses

Bonsoir,

Il faut commencer par transcrire cette image sous forme de matrice dont chaque valeur représentera un identifiant couleur.

Puis pour chaque valeur de cette matrice créer un carré en se basant sur la position ligne et colonne pour déterminer les coordonnées sur la fenêtre.

Allez ; je suis gentil ; je te fourni déjà la matrice représentant ton drapeau.

FLAG = (
    '0000000000000000000000000',
    '0000000000000000000000000',
    '0000000000011100000000000',
    '0000000001111111000000000',
    '0000000111122211110000000',
    '0000011111222221111100000',
    '0001111113333222111111000',
    '0011111112222332111111100',
    '0001111112222223111111000',
    '0000011111222221111100000',
    '0000000111122211110000000',
    '0000000001111111000000000',
    '0000000000011100000000000',
    '0000000000000000000000000',
    '0000000000000000000000000',
)


Il faudra associer les 0, 1, 2, 3 aux couleurs du drapeau, si tu dois faire ça avec turtle, il va falloir déjà commencer à apprendre comment créer un rectangle et le remplir d'une simple couleur.
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020

Oui je sais comment l'utiliser mais où sont les tableaux et les fonctions dans ton raisonnement ?
>
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020

FLAG est un tableau, les fonctions, c'est à toi de voir en fonction de ce que tu vas écrire, mais déjà une fonction à faire est celle pour créer un carré de telle couleur à telle position.
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020

Comment j'associe les 0,1,2,3 avec des couleurs. Je suis vraiment désolé de t'embêter mais je suis tout nouveau x)
Un simple dictionnaire référençant les couleurs

COLORS = {
    "0": "#009c37",
    "1": "#fee000",
    "2": "#002277",
    "3": "#fdffff",
}


Ainsi lorsque tu parcourras les valeurs de FLAG il n'y aura plus qu'à récupérer la couleur associée à la valeur.
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020

Tout d'abord je tiens à te remercier pour ton aide c'est adorable!
Mais honnêtement après 2 bonne heures de recherche et de tentatives je n'y arrive pas :(. Je n'arrive pas à les mettre en lien et c'est surtout les fonctions avec turtles qui me paraissent impossible. Si tu pouvais au moins m'aider et me dire par quoi commencer et finir je t'en saurait reconnaissant parce que la c'est une catastrophe!
Aussi je ne sais pas comment mettre le pointeur en haut à gauche de la page (je le fais sur trinket.io)
Bon franchement turtle c'est bien pour faire quelques figures géométriques, mais à part ça c'est une perte de temps d'apprendre à l'utiliser alors qu'on pourrait le passer à utiliser une bibliothèque graphique comme tkinter (ou autre) qui pourra plus tard servir à faire autre chose d'utile. Surtout ici où il faut dessiner 400 rectangles.

Je me suis essayé à le faire, en effet il faut déjà pouvoir placer le pen en haut à gauche pour pouvoir tracer dans le sens de la lecture du tableau, cela s'effectue avec
setworldcoordinates
.

import turtle

FLAG = (
    '0000000000000000000000000',
    '0000000000000000000000000',
    '0000000000011100000000000',
    '0000000001111111000000000',
    '0000000111122211110000000',
    '0000011111222221111100000',
    '0001111113333222111111000',
    '0011111112222332111111100',
    '0001111112222223111111000',
    '0000011111222221111100000',
    '0000000111122211110000000',
    '0000000001111111000000000',
    '0000000000011100000000000',
    '0000000000000000000000000',
    '0000000000000000000000000',
)

COLORS = {
    "0": "#009c37",
    "1": "#fee000",
    "2": "#002277",
    "3": "#fdffff",
}


def draw_square(x, y, color):
    # Trace un carré


def draw_flag(flag):
    # Parcourt les valeurs de la matrice flag
    # et appelle la fonction draw_square pour chaque valeur



SQUARE_SIZE = 30
window = turtle.Screen()
window.setup(width=SQUARE_SIZE * len(FLAG[0]), height=SQUARE_SIZE * len(FLAG))
window.setworldcoordinates(
    SQUARE_SIZE / 2,
    window.window_height(),
    window.window_width(),
    SQUARE_SIZE / 2
)

turt = turtle.Turtle()
turt.pencolor('white')
turt.speed(0)
draw_flag(FLAG)

window.mainloop()


Il faut que tu codes les fonctions, je vais quand même pas te faire tout ton boulot :-D
A savoir que pour déplacer le pen à une position voulue, il faut utiliser goto https://docs.python.org/3/library/turtle.html#turtle.goto (turt.goto dans le code).
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020

Par quoi je dois commncer pour les coder ?

Je pense vraiment que je n'ai pas les capacités ... tu peux peut-être mieux m'aider si ce truc est juste en noir et blanc ? Que dois-je mettre sous les fonctions .. Je stress vraiment là je me sens comme un incapable je vais me taper une sale note. De plus même si j'ai un bon pc mon logiciel ne cesse de s'éteindre quand j'execute et même si je change de logiciel baahhh ça marche sur aucun. Si tu pouvais juste me faire un petit protocole si tu as le temps biensur je ne force rien simplement si tu peux juste en noir et blanc à la limite si c'est moins dur s'il te plait :'( :'(
Bonjour,

Je suis navré, mais non, je ne vais pas te donner le code de ces fonctions, car si tu en es encore à ne pas savoir comment parcourir un tableau, donc savoir utiliser boucles, listes, je ne peux rien pour toi, et le conseil à donner est de potasser tes cours, lire la documentation :
https://docs.python.org/fr/3/tutorial/index.html

Je t'ai déjà bien mâché le travail en te fournissant ce script, coder le corps de ces fonctions devrait être une chose que tu devrais savoir réaliser, de plus tu as dit plus haut que tu savais créer avec turtle un carré rempli d'une couleur, donc la fonction draw_square tu devrais savoir aussi la faire.

Alors lorsque tu auras essayé des choses que tu n'arrives pas à faire fonctionner, quelqu'un sera sans doute enclin à te dire ce que tu auras fait de travers. Pour le moment tu n'as rien fait d'autre qu'un copié/collé du code que t'ai fourni.
Messages postés
23
Date d'inscription
lundi 4 décembre 2017
Statut
Membre
Dernière intervention
20 septembre 2020
> trifou
Oui le truc c'est que je sais créer des carrés de couleurs mais je ne vois pas comment les integrer au tableau. Je vais donner tout pour réusiir