Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1375 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python Tkinter]- Bataille Naval

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python Tkinter]- Bataille Naval

n°2315993
kikito34
Posté le 28-05-2018 à 18:54:26  profilanswer
 

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 :
  1. from tkinter import*
  2. from random import*
  3. from tkinter.messagebox import *
  4. global case_choisie
  5. #global plateau_case_a_un
  6. def positionClicAppui(event): #position + changement de couleur appuie
  7.     X = event.x     
  8.     Y = event.y
  9.     global case_choisie
  10.    
  11.     case_choisie = plateau.find_closest(X,Y)[0]#intervale des cases selectionné
  12.     print("Détection clic de la souris : " )
  13.     print("x :", X,"y :", Y,"Identifiant case :", case_choisie)
  14.          
  15.  
  16.                         ####notification####
  17.     if plateau_case_a_un.count(case_choisie) != 0 :
  18.         a=Label(notification,textvariable=degat).pack()
  19.         plateau.itemconfigure(case_choisie,fill='green')
  20.         degat.set('touché')
  21.        
  22.     elif plateau_case_a_un.count(case_choisie) == 0 :
  23.         b=Label(notification,textvariable=degat).pack()
  24.         plateau.itemconfigure(case_choisie,fill='blue')
  25.         degat.set('raté')
  26.                     ####
  27.        
  28. # Création d'une grille 10 x 10 avec des 1 aléatoires représentant les cases occupées sur le programme
  29. def plateau_remplissage():
  30. #########################################################################################################################################################################################################
  31.     global plateau_aleatoire
  32.     plateau_aleatoire = []
  33.     plateau_case_a_un=[]
  34.     #print("Génération de coordonnées aléatoires pour les cases à  1 :" )   # Création d'une grille vide
  35.     for i in range(0,10):                # Création d'une liste à deux dimensions
  36.         plateau_aleatoire.append([])       
  37.         for j in range(0,10):
  38.             plateau_aleatoire[i].append(0)   
  39. ######################################################
  40.     print ("bateau 1:" )   
  41.     a = int (input("axe x: " ))            # Choix aléatoire de l'abscisse de la case         
  42.     b = int (input("axe y: " ))             # Choix aléatoire de l'ordonnee de la
  43.     prix1= input("prix bateau 1: " )
  44.     print ("bateau 2:" )   
  45.     c = int (input("axe x: " ))                 
  46.     d = int (input("axe y: " ))
  47.     prix2= input("prix bateau 2: " )
  48.     plateau_aleatoire[a][b] = 1         #créer autant de fois cette ligne qu'il y a de bateau avec des variables x y differentes
  49.     plateau_aleatoire[c][d] = 1
  50.     return plateau_aleatoire
  51. ############################################################################################################################################################################################################
  52. # Affichage des cases à 1 sur le plateau
  53. def plateau_affichage(a):
  54.     global k                                           
  55.     global plateau_case_a_un
  56.     plateau_case_a_un=[]
  57.     for i in range(0,10):                             
  58.         for j in range(0,10):
  59.             if a[i][j]==1:
  60.                 k = 10*j+i+1           # Calcul de l'identifiant de la case à partir de ses coordonnées
  61.                 plateau.itemconfigure(k,fill='red')
  62.                
  63.                 plateau_case_a_un.append(k)
  64.  
  65.     return 1
  66. #-------------------------------------------------------------------#
  67. #                   Programme principal tkinter                     #
  68. #-------------------------------------------------------------------#                                             
  69. fen1 = Tk()
  70. fen1.title('Plateau de jeu')
  71. plateau = Canvas(fen1,bg='white', height=500, width=500)
  72. plateau.pack(side=LEFT)
  73. #Création du plateau avec une grille 10 x 10
  74. for i in range(0,500,50):
  75.         for j in range(0,500,50):
  76.             plateau.create_rectangle(i,j,i+50,j+50,fill='yellow',outline='black',width=2)
  77.            
  78.            
  79. # Détection et affichage des coordonnées du clic de la souris lors d'un appui sur Button_1
  80. plateau.bind("<Button-1>", positionClicAppui) 
  81. plateau.pack()
  82. # Affichage du plateau avec les cases bateaux
  83. global plateau_aleatoire
  84. affiche = plateau_affichage(plateau_remplissage())
  85.                                                                     #Bouton quitter
  86. def callback():
  87.     if askyesno('Quitter', 'Voulez vous vraiment nous quitter ?'):
  88.         showinfo("au revoir...","hoooo...." )
  89.         fen1.destroy()
  90.     else:
  91.         showinfo('Tant mieux', 'Cool !')
  92.         showinfo("^^", "Bonne chance ! ^^" )
  93. Button(text='Quitter', command=callback).pack()
  94. #################################################################################
  95. notification =LabelFrame(fen1,text="Prix gagner",padx=100,pady=20)
  96. notification.pack(fill="both", expand="yes" )
  97. degat=StringVar()
  98.                                                 #affichage image arriere plan
  99. photo=PhotoImage(file= "loup_ephe.gif" )     #mettre l'image en gif et la redimensionner sur paint avec les pixels
  100. canvas = Canvas(fen1, width=265, height=190, background='yellow')
  101. image=canvas.create_image(0, 0, ancho=NW, image=photo)
  102. canvas.pack()
  103. fen1.mainloop()

mood
Publicité
Posté le 28-05-2018 à 18:54:26  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python Tkinter]- Bataille Naval

 

Sujets relatifs
Programmation récursive ou itérativeprogrammation python
Python Qgis et encodage UFT-8Installation module python sans internet
Challenge Python en ligne - 30 questions[Python] Contrôle de saisie fin
Exercice Python.Python tkinter quizz calcul mental
lentille convergente ^python 
Plus de sujets relatifs à : [Python Tkinter]- Bataille Naval


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR