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
|
def place_o(): #Fonction qui choisit les coordonnées des bateaux de l'ordinateur
global bateauxActifsOrdi
global test
for y in dico_bat.values():
orien=randint(0,1) #orientation du bateau: 0=vertical, 1=horizontal
if orien==0:
a,b=randint(0,(nbcase-1)-y),randint(0,nbcase-1)
while test==False:
res=est_placable(orien,a,b,y)
test,a,b=res[0],res[1],res[2]
for i in range (0,y):
bateauxActifsOrdi+=[[a+i,b]]
else:
a,b=randint(0,nbcase-1),randint(0,(nbcase-1)-y)
while test==False:
res=est_placable(orien,a,b,y)
test,a,b=res[0],res[1],res[2]
for i in range (0,y):
bateauxActifsOrdi+=[[a,b+i]]
def afficheBat():
for i in range(len(bateauxActifsOrdi)):
a=bateauxActifsOrdi[i][0]
b=bateauxActifsOrdi[i][1]
can.create_rectangle(x1+case*b,y1+case*a,x1+case*(b+1),y1+case*(a+1),fill="red")
def est_placable(z,x,y,taille): #Fonction qui teste si un bateau en recouvrira un autre
global test
test=False
if z==0:
for i in range (0,taille):
if [x+i,y] in bateauxActifsOrdi:
x,y=randint(0,(nbcase-1)-taille),randint(0,nbcase-1)
est_placable(z,x,y,taille)
else:
test=True
return [test,x,y]
else:
for i in range (0,taille):
if [x,y+i] in bateauxActifsOrdi:
x,y=randint(0,nbcase-1),randint(0,(nbcase-1)-taille)
est_placable(z,x,y,taille)
else:
test=True
return [test,x,y] |
Partager