Commit fc85ae53b73571754ce97b27713abdd34425d466

Authored by Trogno Lucas
1 parent 0c76fc92

Grille de l'IA

Showing 1 changed file with 70 additions and 0 deletions   Show diff stats
IAgrille.py 0 → 100644
... ... @@ -0,0 +1,70 @@
  1 +#IA
  2 +import numpy as np
  3 +import random as rd
  4 +from bateau import Bateau
  5 +from bateau import f
  6 +M2=np.zeros([10,10])
  7 +M1=np.zeros([10,10])
  8 +porte_avion=Bateau("porte avion",5)
  9 +croiseur=Bateau("croiseur",4)
  10 +contre_torpilleur=Bateau("contre torpilleur",3)
  11 +sous_marin=Bateau("sous-marin",3)
  12 +torpilleur=Bateau("torpilleur",2)
  13 +
  14 +bateaux=[porte_avion, croiseur, contre_torpilleur, sous_marin, torpilleur]
  15 +posit={}
  16 +print('ça marche')
  17 +#constituer sa grille
  18 +def grilleIA() :
  19 + for elem in bateaux:
  20 + k=rd.randint(0,9)
  21 + l=rd.randint(0,9)
  22 + if M2[k][l]!=0:
  23 + while M2[k][l]!=0:
  24 + k=rd.randint(0,9)
  25 + l=rd.randint(0,9)
  26 + print(k,l)
  27 + possibilites=[]
  28 + a,b,c,d=0,0,0,0
  29 + for case in range(0,elem.longueur):
  30 + #horizontal a gauche
  31 + if k-elem.longueur<-1 or M2[k-case][l]!=0:
  32 + a+=1
  33 + #horizontal a droite
  34 + if k+elem.longueur>10 or M2[k+case][l]!=0:
  35 + b+=1
  36 + #vertical en haut
  37 + if l-elem.longueur<-1 or M2[k][l-case]!=0:
  38 + c+=1
  39 + #vertical en bas
  40 + if l+elem.longueur>10 or M2[k][l+case]!=0:
  41 + d+=1
  42 + if a==0:
  43 + possibilites.append(chr(64+k-elem.longueur+2)+ str(l+1))
  44 + if b==0:
  45 + possibilites.append(chr(64+k+elem.longueur)+str(l+1))
  46 + if c==0:
  47 + possibilites.append(chr(k+65) +str(l-elem.longueur+2))
  48 + if d==0:
  49 + possibilites.append(chr(k+65) +str(l+elem.longueur))
  50 + poss=''
  51 + for possi in possibilites:
  52 + poss+=possi+', '
  53 + poss=poss[:-2]
  54 + print(possibilites)
  55 + i=rd.randint(0,len(possibilites)-1)
  56 + queue=possibilites[i]
  57 + print(chr(k+65),l+1)
  58 + m=f(queue[0])-1
  59 + n=int(queue[1])-1
  60 + if len(queue)==3:
  61 + n=9
  62 + if k==m:
  63 + for i in range(min(l,n),max(l,n)+1):
  64 + M2[k][i]=1
  65 + posit[(k,i)]=elem,1
  66 + if l==n:
  67 + for i in range(min(k,m),max(k,m)+1):
  68 + M2[i][l]=1
  69 + posit[(i,l)]=elem,1
  70 + return M2
0 71 \ No newline at end of file
... ...