IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

créer des ractangles aléatoires


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut créer des ractangles aléatoires
    Bonjour

    Voici mon soucis, j'essaye tant bien que mal de créer une fonction ( j'ai lu sur des sites qu'il est préférable d'utiliser ramdon ? ) qui crée des rectangles aléatoires dans mon canvas.
    J'ai retourné mon script de toutes les façons possible et dont je suis capable, sans résultats. Je m’abandonne à vous merci pour votre aide.
    J'ai oublié de préciser ( au cas ou sa ne se voit pas assez avec mon script) que je suis débutante en langage tkinter


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    from tkinter import *
    from random import randrange
     
     
    def nouveau_jeu():
        a=0
    def rectangle():
        d=0
        b=2
        c=10
        while d<3:
           can1.create_rectangle(10+c, 10+c, 100+c, 100+c)
           d=d+1
           c=c+100
     
    def pomme(): 
        a=0
        x=randrange(840)
        y=randrange(480)
        i=0
        i2=0
        while i<rectangle:
            i2=1
     
    def perso(): #personnage
        global dx, dy, x, y, nana, direction
        nana=can1.create_rectangle(20,20,50,50)
     
    def avant(event):
        global dx, dy, x, y,nana, direction
        direction=1
        dx=0
        dy=-10
        x=x+10
        y=y+10
        can1.move(nana, dx, dy)
     
    def gauche(event):
        global dx, dy, nana
        direction=2
        dx=-10
        dy=0
        can1.move(nana, dx, dy)
     
    def droite(event):
        global dx, dy, nana
        direction=3
        dx=10
        dy=0
        can1.move(nana, dx, dy)
        direction=0
     
    def bas(event):
        global dx, dy, nana
        dx=0
        dy=10
        can1.move(nana, dx, dy)
     
    fen1=Tk()
    fen1.title("SUPER NANA ! :D")
    can1= Canvas (fen1, bg='blue', height=480, width=840)
    can1.grid(row=0, column=0, rowspan=10)
    can1.bind_all("<Up>", avant)
    can1.bind_all("<Right>", droite)
    can1.bind_all("<Down>", bas)
    can1.bind_all("<Left>", gauche)
    Button(fen1, text="Nouveau Jeu", font=("ComicSansMS"), command=perso).grid(row =4, column=1, sticky=N, padx=5)
    Button(fen1, text="Quitter", font=("ComicSansMS"),command=fen1.destroy).grid(row =6, column=1, sticky=N)
    x=randrange(840)
    y=randrange(480)
    dx=0
    dy=0
    direction=0
    score=0
    fen1.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 760
    Par défaut
    Salut,

    Votre canvas à pour dimensions WIDTH x HEIGHT.
    Pour simplifier, posons WIDTH = HEIGHT = 500.
    Si vous voulez deux nombres aléatoires dans 0..500:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import random
    >>> x, y = random.randint(0,WIDTH), random.randint(0,HEIGHT)
    >>> x, y
    (464, 281)
    >>>
    Par contre, la figure aura une largeur et une longueur, si vous ne voulez pas que la figure "déborde" du cadre, ces (x, y) là seront le "centre".
    Si la figure est un rectangle de côté X_SIZE = Y_SIZE = 30, vous pouvez considérez ces (x, y) comme le coin en haut à gauche.
    Pour que çà ne déborde pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> x, y = random.randint(0,WIDTH-X_SIZE), random.randint(0,HEIGHT-Y_SIZE)
    Puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> canvas.create_rectangle(x, y, x+X_SIZE, y+Y_SIZE)
    1
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Oui , mais c'est possible que @bellabouh ne connaisse pas encore l'importation du module random . Donc si tu pars sur l'idée d'utiliser des fenêtres carrés .
    Wiztricks a compliqué le code , il a essayé de généraliser le concept du code de manière empirique mais j'ai du mal à saisir le role (x, y) ....

    Est-ce que ce sont des carrés ou de vrais rectangles qui seront crées ? Avec tkinter , on dirait que c'est plus simple de créer des cercles

    Encore une chose , ce serait bien @bellabouh que tu commentes chaque ligne de ton code pour que l'on saisisse mieux ce que tu souhaites réaliser ....

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 760
    Par défaut
    Salut,

    Citation Envoyé par Kurodiam Voir le message
    Encore une chose , ce serait bien @bellabouh que tu commentes chaque ligne de ton code pour que l'on saisisse mieux ce que tu souhaites réaliser ....
    Bah, c'est pas si compliqué de voir qu'elle essaie de réaliser un jeu de serpent.

    Citation Envoyé par Kurodiam Voir le message
    Est-ce que ce sont des carrés ou de vrais rectangles qui seront crées ? Avec tkinter , on dirait que c'est plus simple de créer des cercles
    rectangle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> canvas.create_rectangle(x, y, x+X_SIZE, y+Y_SIZE)
    cercle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> canvas.create_oval(x, y, x+X_SIZE, y+Y_SIZE)
    Le plus "simple" est toujours de pianoter un peu à la console pour voir à quoi çà ressemble.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Ok. C'est comme ce jeu qu'on trouve dans les cellulaires où le serpent doit croquer la pomme et ainsi de suite ...C'est l'un des premiers jeu qui a été inventé (d'ailleurs , j'y jouais beaucoup en augmentant les scores )

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 760
    Par défaut
    Citation Envoyé par Kurodiam Voir le message
    Ok. C'est comme ce jeu qu'on trouve dans les cellulaires où le serpent doit croquer la pomme et ainsi de suite ...C'est l'un des premiers jeu qui a été inventé
    Absolument d'ailleurs, je ne comprends pas pourquoi elle n'a pas osé appeler sa nana, eve.
    "Au commencement", c'est celle qui se laisse embobiner par un serpent pour croquer une pomme.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. créer des formes aléatoires
    Par tawfiknejeh dans le forum MATLAB
    Réponses: 8
    Dernier message: 30/01/2013, 08h31
  2. [Débutant] Créer des positions aléatoires
    Par Invité dans le forum Windows Forms
    Réponses: 9
    Dernier message: 23/05/2012, 09h50
  3. Réponses: 12
    Dernier message: 25/05/2007, 16h28
  4. DirectDraw: Créer des surfaces 256 couleurs
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 14/10/2002, 22h28
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo