Bonjour,

J'ai un projet de bataille naval a faire. Or étant assez nul en python. j'ai fais l'interface graphique mais le placement des bateaux, le tir et le reste me reste assez compliqué...

Voici mon code pour le moment :

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
90
91
92
93
94
95
96
97
98
99
from tkinter import*
 
dessin= Tk()
 
nb=10
c=40
x0,y0=20,20
 
 
bateaux=17
 
 
 
lettre=["J", "I", "H", "G", "F", "E", "D", "C", "B", "A"]
chiffre=["1","2", "3", "4","5", "6", "7", "8", "9", "10"]
 
def grille():
    can1.create_image(300,230,image=photo)
    can2.create_image(300,230,image=photo)
    for i in range(nb+1):     
         can1.create_line(x0+c*i, y0,x0+c*i,y0 + nb*c)
         can1.create_line(x0, y0+c*i,x0+nb*c ,y0+c*i)
         can2.create_line(x0+c*i, y0,x0+c*i,y0 + nb*c)
         can2.create_line(x0, y0+c*i,x0+nb*c ,y0+c*i)
    for k in range(nb):
         can1.create_text(10,40+40*k, text=lettre[k])
         can1.create_text(40+40*k,440,text=chiffre[k])
         can2.create_text(10,40+40*k, text=lettre[k])
         can2.create_text(40+40*k,440,text=chiffre[k])
 
 
def correspond(x,y):
    return (y-y0)//c,(x-x0)//c
    can1.create_rectangle(i*40,j*40,(i+1)*40,(j+i)*40, fill="white")
    can2.create_rectangle(i*40,j*40,(i+1)*40,(j+i)*40, fill="white")
 
def monquitter():
 dessin.quit()
 dessin.destroy()
 
can1= Canvas(dessin,height=450,width=450,bg="White")
can1.pack(side=RIGHT)
can2= Canvas(dessin,height=450,width=450,bg="White")
can2.pack(side=LEFT)
 
def jeu1joueur():
    grille()
 
def jeu2joueurs():
    grille()
 
 
#Titre
 
l1=Label(text="Bienvenue dans le Jeu de la Bataille Navale", fg="Red")
l1.pack()
 
l2=Label(text="Veuillez séléctionner si vous jouez à 1 ou 2 joueurs :", fg="Black")
l2.pack()
 
 
b3=Button(dessin,text="Jeu pour 1 joueur",command=jeu1joueur, fg="Blue")
b3.pack(side=TOP)
 
b4=Button(dessin,text="Jeu pour 2 joueurs",command=jeu2joueurs, fg="Blue")
b4.pack(side=TOP)
 
l2=Label(text="Veuillez mettre sur la grille suivante :", fg="Black")
l2.pack()
 
l3=Label(text="-Un Porte-avion ( 5Cases)", fg="Orange")
l3.pack()
l4=Label(text="-Un Croiseur ( 4 Cases)", fg="Orange")
l4.pack()
l5=Label(text="-Un Contre-Torpilleur ( 3 Cases)", fg="Orange")
l5.pack()
l6=Label(text="-Un Sous-Marin ( 3 Cases)", fg="Orange")
l6.pack()
l7=Label(text="-Un Porte-avion ( 2 Cases)", fg="Orange")
l7.pack()
 
 
b1=Button(dessin,text="Quitter",command=monquitter, fg="Black")
b1.pack(side=BOTTOM)
 
def ecrire(event):   
    (i,j)=correspond(event.x,event.y)
    i=event.x/40
    j=event.y/40
    can.create_rectangle(i*40,j*40,(i+1)*40,(j+i)*40, fill="white")
 
 
 
 
photo = PhotoImage(file ='image.gif')
 
dessin.title("Battaille Navale")
 
dessin.mainloop()
Voila merci beaucoup.