Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le jeu des neuf points à relier

Sujet résolu
    1 décembre 2020 à 12:41:58

    Bonjour

    à tous, j'aimerais un conseil pour faire un petit programme/jeux en mode fenêtre.

    le jeux c'est le problème des 9 points à relier. si vous connaissez pas le voici, avec la solution: EDIT supprimé

    donc pour faire ce petit programme, il faut que je puisse dessiner avec la sourie. je me disais que pygame serai très bien mais je me demandais si quelque chose d'autre pouvais faire l'affaire, je suppose que tkinter en serai capable, mais je suis pas fan, j'ai utilisée PIL pour un ancien projet. PySimpleGUI je suis pas sur je vais faire une petite rerche d'ailleurs.

    Mais ma question est qu'utiliseriez vous vous? je pose la question pour peut etre découvrir une bibliothèque intéressante. ça fait 4,5 mois que je n'ai plus fait de python, et j'aimerais m'y remettre ;)

    Merci à vous

    -
    Edité par obsolete 2 décembre 2020 à 10:33:16

    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2020 à 12:48:52

      Turtle devrait pouvoir suffire (ça utilise Tkinter en couche graphique)

      -
      Edité par umfred 1 décembre 2020 à 12:49:26

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2020 à 12:59:25

        umfred a écrit:

        Turtle devrait pouvoir suffire (ça utilise Tkinter en couche graphique)

        -
        Edité par umfred il y a 7 minutes


        Très intéressant effectivement. je vais commencer avec ça ;) merci

        EDIT:

        Merci pour le conseil, j'ai réussi, je suis assez content de moi lol

        import turtle
        from turtle import Screen, Turtle
        
        screen = Screen()
        screen.bgcolor("orange")
        screen.title("Welcome to 9PTS")
        
        t = Turtle("turtle")
        t.speed(-1)
        t.pensize(10)
        t.pensize(3)
        t.pencolor("black")
        
        t.ht() #tortue invisible
        count = 0
        
        
        #dico position
        my_pos= {'A1':(-100,100),'A2':(-100,50),'A3':(-100,0),'A4':(-100,-50),'A5':(-100,-100),
                'B1':(-50,100),'B2':(-50,50),'B3':(-50,0),'B4':(-50,-50),'B5':(-50,-100),
                'C1':(-0,100),'C2':(-0,50),'C3':(-0,0),'C4':(-0,-50),'C5':(-0,-100),
                'D1':(50,100),'D2':(50,50),'D3':(50,0),'D4':(50,-50),'D5':(50,-100),  
                'E1':(100,100),'E2':(100,50),'E3':(100,0),'E4':(100,-50),'E5':(100,-100),
                'Try again': (-120, 170)}
        
        
        def background():    
            mySquare(150,200,"black", "orange")
            mySquare(120,120,"black", "orange")
            myText(-90,155,'Try again',15)
            dot_aff = ('B2','B3','B4','C2','C3','C4','D2','D3','D4','Try again')
            for i in dot_aff: myDot(my_pos[i][0],my_pos[i][1],'black',30)
        
        def myText(x,y,text,size):
            t.up()
            t.setpos(x,y)
            t.down()
            t.write(text, font = ('Times New Roman', size))
            t.up()
        
        def myDot(x,y,color,size):
            t.up()
            t.pencolor("black")
            t.setpos(x,y)
            t.down()    
            t.dot(size)   
            t.up()      
        
        def mySquare(x,y,color1,color2):
            t.up()         
            t.color(color1,color2)
            t.begin_fill()
            t.setpos(-x,y)
            t.down()
            t.setpos(-x,-y)
            t.setpos(x,-y)
            t.setpos(x,y)
            t.setpos(-x,y) 
            t.end_fill()
            t.up()    
        
        def line(myzone):
            if my_pos[myzone] == my_pos['Try again']: t.up
            else:
                t.down()
                t.pensize(10)
                t.pencolor("red")
                t.goto(my_pos[myzone])
           
        def mycount():
            global count
            count += 1
            return count
        
        def tryAgain():
            background()
            global count
            count = -1
            
        def zone(x,y):
            global count  
            for i in my_pos.values():
                if x-15 <= i[0] < x+15: 
                    if y-15 <= i[1] < y+15:
                        myzone = [k for (k, val) in my_pos.items() if val == i]
                        if myzone[0] == 'Try again': tryAgain()
                        if count >= 5 : pass
                        
                        else:
                            t.up
                            t.goto(my_pos[myzone[0]])
                            line(myzone[0])   
                            mycount()
         
        def main():
            background()
            turtle.listen()
            screen.onscreenclick(zone, 1)
            screen.mainloop()  
        
        
        
        main()

        je pense qu'on peut faire mieux au niveaux du code, et que l'on peu amélioré le jeux avec des option.

        j'ai pas encore a redimensionner la fenêtre, mais je vais trouver si je creuse. il faudrait aussi indiquer la règle du jeu ;)

        pour faire un visuel 'U WIN', ça se complique un peu, car je sais pas trop comment faire. Y a pas mal de combinaison qui gagne, et a part les ecrire une par une, et comparé la lise, je sais pas trouvé de solution

        -
        Edité par obsolete 2 décembre 2020 à 10:28:56

        • Partager sur Facebook
        • Partager sur Twitter

        Le jeu des neuf points à relier

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown