kikito34 | bonjours/ bonsoir, je travail actuellement sur une Bataille Naval sur le Python 3.6. J'aurais besoin d'aide/conseil principalement sur la partie "notification" de mon programme afin de pouvoir lui faire afficher les prix (qu'on rentre en meme temps que les coordonnée des navires) que le joueur gagne en coulant un bateaux specifique. Ma version final devra comporter 6 bateau sur cette grille 10x10. Je tien a preciser qu'a la base, ce programme tournée tout seul avec un choix de placement aléatoire des navires. Je remercie d'avance les personnes qui pourront m'aider a me debloquer...
voici le programme en question :
Code :
- from tkinter import*
- from random import*
- from tkinter.messagebox import *
- global case_choisie
- #global plateau_case_a_un
- def positionClicAppui(event): #position + changement de couleur appuie
- X = event.x
- Y = event.y
- global case_choisie
-
- case_choisie = plateau.find_closest(X,Y)[0]#intervale des cases selectionné
- print("Détection clic de la souris : " )
- print("x :", X,"y :", Y,"Identifiant case :", case_choisie)
-
-
- ####notification####
- if plateau_case_a_un.count(case_choisie) != 0 :
- a=Label(notification,textvariable=degat).pack()
- plateau.itemconfigure(case_choisie,fill='green')
- degat.set('touché')
-
- elif plateau_case_a_un.count(case_choisie) == 0 :
- b=Label(notification,textvariable=degat).pack()
- plateau.itemconfigure(case_choisie,fill='blue')
- degat.set('raté')
- ####
-
- # Création d'une grille 10 x 10 avec des 1 aléatoires représentant les cases occupées sur le programme
- def plateau_remplissage():
- #########################################################################################################################################################################################################
- global plateau_aleatoire
- plateau_aleatoire = []
- plateau_case_a_un=[]
- #print("Génération de coordonnées aléatoires pour les cases à 1 :" ) # Création d'une grille vide
- for i in range(0,10): # Création d'une liste à deux dimensions
- plateau_aleatoire.append([])
- for j in range(0,10):
- plateau_aleatoire[i].append(0)
- ######################################################
- print ("bateau 1:" )
- a = int (input("axe x: " )) # Choix aléatoire de l'abscisse de la case
- b = int (input("axe y: " )) # Choix aléatoire de l'ordonnee de la
- prix1= input("prix bateau 1: " )
- print ("bateau 2:" )
- c = int (input("axe x: " ))
- d = int (input("axe y: " ))
- prix2= input("prix bateau 2: " )
- plateau_aleatoire[a][b] = 1 #créer autant de fois cette ligne qu'il y a de bateau avec des variables x y differentes
- plateau_aleatoire[c][d] = 1
- return plateau_aleatoire
- ############################################################################################################################################################################################################
- # Affichage des cases à 1 sur le plateau
- def plateau_affichage(a):
- global k
- global plateau_case_a_un
- plateau_case_a_un=[]
- for i in range(0,10):
- for j in range(0,10):
- if a[i][j]==1:
- k = 10*j+i+1 # Calcul de l'identifiant de la case à partir de ses coordonnées
- plateau.itemconfigure(k,fill='red')
-
- plateau_case_a_un.append(k)
-
- return 1
- #-------------------------------------------------------------------#
- # Programme principal tkinter #
- #-------------------------------------------------------------------#
- fen1 = Tk()
- fen1.title('Plateau de jeu')
- plateau = Canvas(fen1,bg='white', height=500, width=500)
- plateau.pack(side=LEFT)
- #Création du plateau avec une grille 10 x 10
- for i in range(0,500,50):
- for j in range(0,500,50):
- plateau.create_rectangle(i,j,i+50,j+50,fill='yellow',outline='black',width=2)
-
-
- # Détection et affichage des coordonnées du clic de la souris lors d'un appui sur Button_1
- plateau.bind("<Button-1>", positionClicAppui)
- plateau.pack()
- # Affichage du plateau avec les cases bateaux
- global plateau_aleatoire
- affiche = plateau_affichage(plateau_remplissage())
- #Bouton quitter
- def callback():
- if askyesno('Quitter', 'Voulez vous vraiment nous quitter ?'):
- showinfo("au revoir...","hoooo...." )
- fen1.destroy()
- else:
- showinfo('Tant mieux', 'Cool !')
- showinfo("^^", "Bonne chance ! ^^" )
- Button(text='Quitter', command=callback).pack()
- #################################################################################
- notification =LabelFrame(fen1,text="Prix gagner",padx=100,pady=20)
- notification.pack(fill="both", expand="yes" )
- degat=StringVar()
- #affichage image arriere plan
- photo=PhotoImage(file= "loup_ephe.gif" ) #mettre l'image en gif et la redimensionner sur paint avec les pixels
- canvas = Canvas(fen1, width=265, height=190, background='yellow')
- image=canvas.create_image(0, 0, ancho=NW, image=photo)
- canvas.pack()
- fen1.mainloop()
|
|