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

Python Discussion :

PROJET ISN: jeu de dames avec tkinter


Sujet :

Python

  1. #1
    Futur Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 8
    Points
    8
    Billets dans le blog
    1
    Par défaut PROJET ISN: jeu de dames avec tkinter
    Bonjour tout le monde !! alors voilà j'ai un gros problème. Le BAC s'approche à grands pas et j'ai un gros problème au niveau de mon projet en ISN, je n'avance plus, je suis bloqué pour la programmation de mon jeu de dames au niveau du déplacement des pions. J'ai vraiment besoin d'aide, SVP!!
    Sinon je cherche une idée pour un autre projet en ISN plus facile.
    Je suis vraiment nul en ISN et je ne parle même pas de mon ami qui est plus nul que moi. IL NE NOUS RESTE QUE TRES PEU DE TEMPS !!! SVP AIDEZ NOUS !

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 610
    Points : 2 074
    Points
    2 074
    Par défaut
    Sera-ce suffisant ?

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 945
    Points : 7 357
    Points
    7 357
    Par défaut
    Fais un morpion c'est plus simple... Pour la programmation rien de plus simple, tu prends un bouquin, numérique ou pas et tu le lis, en faisant des tests sur ton interpréteur python.
    J'ai appris comme cela, une semaine après j'avais déjà compris certaines bases. Une semaine semble possible vu le temps qu'il te reste.

    Courage (je crois que le terme est vraiment adapté)

  4. #4
    Futur Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 8
    Points
    8
    Billets dans le blog
    1
    Par défaut JEU DE DAMES
    MERCI PR TN SOUTIEN fred1599
    Pour mon projet de jeu de dames, alors j'ai crée un damier, et des pions mais je ne sais pas comment stocker les positions de mes pions pour pouvoir les déplacer..
    Voici ce que j'ai fait:

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    from tkinter import*
    from random import*
     
    def damier():
        "dessiner 100 lignes de carrés avec décalage alterné"
        ligne=0
        y=0
        while ligne<10:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_carres(x,y)
            y=y+65
            ligne=ligne+1
        ligne=0
        y=0
        while ligne<4:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_pion1(x,y)
            y=y+65
            ligne=ligne+1
        ligne=6
        y=390
        while ligne<10:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_pion2(x,y)
            y=y+65
            ligne=ligne+1
     
    def ligne_de_carres(x,y):
        for k in range(5):
            can.create_rectangle(x,y,x+65,y+65,fill="black")
            x=x+130
     
    def ligne_de_pion1(x,y):
        global listblanc
        for k in range(5):
            can.create_oval(x,y,x+65,y+65,fill="maroon")
            listblanc=listblanc+[[x,y]]
            x=x+130
        print (listblanc)
     
    def ligne_de_pion2(x,y):
        global listnoir
        for k in range(5):
            can.create_oval(x,y,x+65,y+65,fill="navy")
            listnoir=listnoir+[[x,y]]
            x=x+130
        print (listnoir)
     
    def Clic(event):
        """ Gestion de l'événement Clic gauche sur la zone graphique """
        # position du pointeur de la souris
        X = event.x
        Y = event.y
        # on dessine un carré
        r = 31
        can.create_oval(X-r, Y-r, X+r, Y+r, outline='black',fill='navy')
     
     
    listblanc=[]
    listnoir=[]
     
    fen=Tk()
    can=Canvas(fen,width=650,height=650,bg='ivory')
    can.pack(side=TOP,padx=5,pady=5)
    can.bind('<Button-1>', Clic)
     
    b2=Button(fen,text='Quitter',command=fen.destroy)
    b2.pack(side=RIGHT,padx=3,pady=3)
     
    b3=Button(fen,text='Joueur1',command=fen.destroy)
    b3.pack(side=LEFT,padx=3,pady=3)
     
    b4=Button(fen,text='Joueur2',command=fen.destroy)
    b4.pack(side=BOTTOM,padx=3,pady=3)
     
    damier()
     
     
     
    fen.mainloop()

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 610
    Points : 2 074
    Points
    2 074
    Par défaut
    Il faut poster ton code entre balises de code (#).
    On ne peut rien y comprendre, à ton programme, dans l'état.
    Décidément...

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 452
    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 452
    Points : 37 048
    Points
    37 048
    Par défaut
    Salut,

    Citation Envoyé par malolo Voir le message
    Pour mon projet de jeu de dames, alors j'ai crée un damier, et des pions mais je ne sais pas comment stocker les positions de mes pions pour pouvoir les déplacer..
    Votre damier est un ensemble de cases. Une case sera noire ou blanche et occupée (ou pas) par un pion.
    Et pour représenter votre damier vous pouvez utiliser des listes de listes ou des dictionnaires.

    Un pion qui occupe la case (i, j) sera à la position i*size, j*size (plus ou moins si vous placez au centre ou sur le coin en haut à gauche).
    Réciproquement, lorsque l'utilisateur "clique" en (x, y), la case (i, j) se calcule via x // size, y // size.

    Par ailleurs, vous devez ouvrir une documentation tkinter qui vous explique comment utiliser le widget Canvas. Ce que sont les items (.create_oval est un item du canvas et l'appel à cette fonction retourne un identifiant qui pourra être utile pour le déplacer avec .move(item, dx, dy).

    note: rien que pour créer le damier et gérer les différents déplacements des pions vous vous lancez dans l'écriture d'un programme de plusieurs centaines de lignes. C'est fort instructif mais peut être encore au dessus de vos moyens (temps, connaissances, ....)
    Juste un exemple pour vous montrer de quoi je parle:
    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
    import tkinter as tk
     
    rows = columns = 10
    size = 50
    cases = {}            # un dict pour se souvenir des cases.
     
    def on_click(event):
        i, j =  event.x // size, event.y // size  # (x, y) => (i, j)
        if (i, j) in cases:  # si la case existe...
            return
        # sinon on crée la case (i, j)
        x0, y0 = i * size, j * size
        x1, y1 = x0 + size, y0 + size
        cases[i,j] = damier.create_rectangle(x0, y0, x1, y1, fill='black')
     
    damier = tk.Canvas(width=rows*size, height=columns*size)
    damier.bind('<1>', on_click)
    damier.pack()
    tk.mainloop()
    - W

  7. #7
    Futur Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 8
    Points
    8
    Billets dans le blog
    1
    Par défaut JEU DE DAMES
    Désolé, jsuis vraiment nul en informatique...

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    from tkinter import*
    from random import*
     
    def damier():
        "dessiner 100 lignes de carrés avec décalage alterné"
        ligne=0
        y=0
        while ligne<10:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_carres(x,y)
            y=y+65
            ligne=ligne+1
        ligne=0
        y=0
        while ligne<4:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_pion1(x,y)
            y=y+65
            ligne=ligne+1
        ligne=6
        y=390
        while ligne<10:
            if ligne%2==0:
                x=0
            else:
                x=65
            ligne_de_pion2(x,y)
            y=y+65
            ligne=ligne+1
     
    def ligne_de_carres(x,y):
        for k in range(5):
            can.create_rectangle(x,y,x+65,y+65,fill="black")
            x=x+130
     
    def ligne_de_pion1(x,y):
        global listblanc
        for k in range(5):
            can.create_oval(x,y,x+65,y+65,fill="maroon")
            listblanc=listblanc+[[x,y]]
            x=x+130
        print (listblanc)
     
    def ligne_de_pion2(x,y):
        global listnoir
        for k in range(5):
            can.create_oval(x,y,x+65,y+65,fill="navy")
            listnoir=listnoir+[[x,y]]
            x=x+130
        print (listnoir)
     
    def Clic(event):
        """ Gestion de l'événement Clic gauche sur la zone graphique """
        # position du pointeur de la souris
        X = event.x
        Y = event.y
        # on dessine un carré
        r = 31
        can.create_oval(X-r, Y-r, X+r, Y+r, outline='black',fill='navy')
     
     
    listblanc=[]
    listnoir=[]
     
    fen=Tk()
    can=Canvas(fen,width=650,height=650,bg='ivory')
    can.pack(side=TOP,padx=5,pady=5)
    can.bind('<Button-1>', Clic)
     
    b2=Button(fen,text='Quitter',command=fen.destroy)
    b2.pack(side=RIGHT,padx=3,pady=3)
     
    b3=Button(fen,text='Joueur1',command=fen.destroy)
    b3.pack(side=LEFT,padx=3,pady=3)
     
    b4=Button(fen,text='Joueur2',command=fen.destroy)
    b4.pack(side=BOTTOM,padx=3,pady=3)
     
    damier()
     
     
     
    fen.mainloop()

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 452
    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 452
    Points : 37 048
    Points
    37 048
    Par défaut
    Citation Envoyé par malolo Voir le message
    Désolé, jsuis vraiment nul en informatique...
    Ok, mais c'est quoi le plan pour devenir un peu plus à l'aise avec cette matière?

    - W

Discussions similaires

  1. [Python 3.X] IMPORTANT - Aide Scrabble Projet ISN Terminale S
    Par Batmai dans le forum Général Python
    Réponses: 5
    Dernier message: 25/05/2015, 15h24
  2. Importer projet IntelliJ (+maven) sous Eclipse
    Par salim_1971 dans le forum Eclipse
    Réponses: 0
    Dernier message: 30/11/2008, 00h55
  3. Eclipse 3.4 et import projet svn
    Par cinezone dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 04/08/2008, 17h48
  4. [Lazarus] Import projet Delphi
    Par talapoga dans le forum Lazarus
    Réponses: 5
    Dernier message: 02/02/2008, 09h33

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