Commit 674d45c63237e00f1be4a5ceaf247b4e94addf3a

Authored by Mestari Yousra
1 parent 0d6bd44a

a relire et tester

Showing 1 changed file with 107 additions and 1 deletions   Show diff stats
algo_princpal.py
1   -hello
2 1 \ No newline at end of file
  2 +
  3 +
  4 +#
  5 +# Hello World server in Python
  6 +# Binds REP socket to tcp://*:5555
  7 +# Expects b"Hello" from client, replies with b"World"
  8 +#
  9 +
  10 +import time
  11 +import zmq
  12 +import numpy as np
  13 +import builtsin
  14 +
  15 +def f(c):
  16 + return ord(c)-ord("a")+1
  17 +
  18 +class Bateau:
  19 + "définition de la classe bateau"
  20 +
  21 +porte_avion=Bateau()
  22 +porte_avion.longueur=5
  23 +porte_avion.nom="porte_avion"
  24 +
  25 +croiseur=Bateau()
  26 +croiseur.longueur=4
  27 +croiseur.nom="croiseur"
  28 +
  29 +contre_torpilleur=Bateau()
  30 +contre_torpilleur.longueur=3
  31 +contre_torpilleur.nom="contre_torpilleur"
  32 +
  33 +sous_marin=Bateau()
  34 +sous_marin.longueur=3
  35 +sous_marin.nom="sous marin"
  36 +
  37 +torpilleur=Bateau()
  38 +torpilleur.longueur=2
  39 +torpilleur.nom="torpilleur"
  40 +
  41 +bateaux=[porte_avion, croiseur, contre_torpilleur, sous_marin, torpilleur]
  42 +
  43 +class Joueur:
  44 + "définition d'un joueur"
  45 +
  46 +J1=Joueur()
  47 +M1=np.zeros((10,10))
  48 +J1.grille=M1
  49 +J2=Joueur()
  50 +M2=np.zeros((10,10))
  51 +J2.grille=M2
  52 +
  53 +context = zmq.Context()
  54 +socket = context.socket(zmq.REP)
  55 +socket.bind("tcp://*:5555")
  56 +
  57 +while True:
  58 + # Wait for next request from client
  59 + message = socket.recv()
  60 + print(message)
  61 + if message.decode() =="PLAY":
  62 + socket.send(b"VS J2 or C?")
  63 + vs=socket.recv()
  64 + print(vs.decode())
  65 + socket.send(b"Comment vous appelez-vous?")
  66 + nom=socket.recv()
  67 + print(nom.decode())
  68 + J1.nom=nom.decode
  69 + for elem in bateaux:
  70 + question="Ou voulez-vous mettre la tete de " + elem.nom + "?"
  71 + socket.send(question.encode())
  72 + tete=socket.recv()
  73 + k=f(tete[0])
  74 + l=int(tete[1])
  75 + assert M1[k][l]==0
  76 + possibilites=[]
  77 + for possibility in range(4):
  78 + a,b,c,d=0,0,0,0
  79 + for case in range(0,elem.longueur):
  80 + if k-elem.longueur<0 or M1[k-case][l]!=0:
  81 + a+=1
  82 + if k+elem.longueur>10 and M1[k+case][l]!=0:
  83 + b+=1
  84 + if l-elem.longueur<0 and M1[k][l-case]!=0:
  85 + c+=1
  86 + if k-elem.longueur>10 and M1[k][l+case]!=0:
  87 + d+=1
  88 + if a==0:
  89 + possibilites.append(chr(96+k-elem.longueur)+'l')
  90 + if b==0:
  91 + possibilites.append(chr(96+k+elem.longueur)+'l')
  92 + if c==0:
  93 + possibilites.append('k'+chr(96+l-elem.longueur))
  94 + if d==0:
  95 + possibilites.append('k'+chr(96+l+elem.longueur))
  96 +
  97 + question="Ou voulez-vous mettre la queue de " + elem.nom + " parmis les possibilités?"
  98 + print(possibilites)
  99 + socket.send(question.encode())
  100 + queue=socket.recv()
  101 + m=f(tete[0])
  102 + n=int(tete[1])
  103 +
  104 + # Do some 'work'
  105 + time.sleep(1)
  106 +
  107 + # Send reply back to client
  108 + socket.send(b"World")
... ...