Partage
  • Partager sur Facebook
  • Partager sur Twitter

Othello

22 avril 2016 à 8:47:53

Bonjour,

Je fait un programme en ISN en binôme et là on est bloquer, voilà où on en ait :

from tkinter import*
 
fen = Tk()
WIDTH, HEIGHT = 400, 400
SIZE_CASE = 50
COORDS=[]

def damier(width, height, size_case, rayon):
##### Création du rectangle général #####
    can.create_rectangle(0, 0, width, height,fill="forest green")
 
##### Quadrillage #####
    for x in range(size_case, width, size_case):
        can.create_line(x, 0, x, height)
    for y in range(size_case, height, size_case):
            can.create_line(0, y, width, y)
 
##### 4 pions de départ #####
    pions = ((175, 175, "white"), (225, 175, "black"),
             (175, 225, "black"), (225, 225, "white"))
    for x_center, y_center, color in pions:
        can.create_oval(x_center - rayon, y_center - rayon,
                        x_center + rayon, y_center + rayon, fill=color)
        
        
 
can = Canvas(fen, height=HEIGHT, width=WIDTH)
can.pack()
 
Grille=Button(fen, text="Grille", bg="white",
          command=lambda: damier(WIDTH, HEIGHT, SIZE_CASE, 20))
Grille.pack()


def Pion(event, color, size_case, rayon):
    if (event.x in range(0, WIDTH + size_case) and
        event.y in range(0, HEIGHT + size_case)):

##### Récupération des coordonnées du centre #####
        x_center = (event.x//size_case)*size_case + size_case//2                                                 
        y_center = (event.y//size_case)*size_case + size_case//2
        
##### Création du pion #####
        cercle= can.create_oval(x_center - rayon, y_center - rayon, x_center + rayon, y_center + rayon, fill=color)
        COORDS.append(x_center)
        COORDS.append(y_center)
        print(COORDS)
#####  Changement de couleur #####        
def Chang(Pion, color):
    B.itemconfigure(cercle,fill = "blue")
       
##### Et les evenements associés #####
B=can.bind("<Button-1>", lambda event: Pion(event, "white", SIZE_CASE, 20))
N=can.bind("<Button-3>", lambda event: Pion(event, "black", SIZE_CASE, 20))

##### Règles du jeu ######
def but ():

    fen=Tk()
    label =Label(fen,text="But du jeu :")
    label.pack()
    label =Label(fen,text="Avoir plus de pions de sa couleur que l’adversaire à la fin de la partie.")
    label.pack()
    label =Label(fen,text="La partie est terminée lorsque aucun des deux joueurs ne peut plus jouer.")
    label.pack()
    label =Label(fen,text="Cela arrive généralement lorsque les 64 cases sont occupées.")
    label.pack()
    label =Label(fen,text="Mais il se peut qu’il reste des cases vides où personne ne peut plus jouer.")
    label.pack()
    label =Label(fen,text="")
    label.pack()
    label =Label(fen,text="Pose des pions :")
    label.pack()
    label =Label(fen,text="A son tour de jeu, le joueur doit poser un pion de sa couleur sur une case vide du damier, adjacente à un pion adverse.")
    label.pack()
    label =Label(fen,text="Il doit également, en posant son pion, encadrer un ou plusieurs pions adverses entre le pion qu’il pose et un pion à sa couleur,")
    label.pack()
    label =Label(fen,text="déjà placé sur le damier. Il retourne alors de sa couleur le ou les pions qu’il vient d’encadrer.")
    label.pack()
    label =Label(fen,text="Les pions ne sont ni retirés du damier, ni déplacés d’une case à l’autre.")
    label.pack()
    label =Label(fen,text="")
    label.pack()
    label =Label(fen,text="Clic gauche : pions blancs")
    label.pack()
    label =Label(fen,text="Clic droit : pions noirs")
    label.pack()

Règles=Button(fen,text="But du jeu",command=but)
Règles.pack()


fen=mainloop()

le souci c'est lorsque par exemple lorsqu un pion blanc se retrouve entre 2 pions noir il devient a son tour noir.

Donc si quelqu'un a une idée merci.

 

  • Partager sur Facebook
  • Partager sur Twitter
22 avril 2016 à 8:50:06

Le souci c'est qu'on arrive pas a ce qu'il devienne noir (dans l exemple)
  • Partager sur Facebook
  • Partager sur Twitter