serveur.py 1.95 KB
Newer Older
Mestari Yousra's avatar
Mestari Yousra committed
1
2
3
4
5
6
#   Hello World server in Python
#   Binds REP socket to tcp://*:5555
#   Expects b"Hello" from client, replies with b"World"
#

import time
Mestari Yousra's avatar
Mestari Yousra committed
7
import zmq
Mestari Yousra's avatar
Mestari Yousra committed
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
import numpy as np
import builtins
import grille_serveur.py
import frappe_serveur.py

class Bateau:
    "definition de la classe bateau"

porte_avion=Bateau()
porte_avion.longueur=5
porte_avion.nom="Porte-avion"

croiseur=Bateau()
croiseur.longueur=4
croiseur.nom="Croiseur"

contre_torpilleur=Bateau()
contre_torpilleur.longueur=3
contre_torpilleur.nom="Contre-torpilleur"

sous_marin=Bateau()
sous_marin.longueur=3
sous_marin.nom="Sous-marin"

torpilleur=Bateau()
torpilleur.longueur=2
torpilleur.nom="Torpilleur"

bateaux=[porte_avion, croiseur, contre_torpilleur, sous_marin, torpilleur]

class Joueur:
    "definition d'un joueur"

J1=Joueur()
M1=np.zeros((10,10))
J1.grille=M1
J2=Joueur()
M2=np.zeros((10,10))
J2.grille=M2
Mestari Yousra's avatar
Mestari Yousra committed
47
48

context = zmq.Context()
Mestari Yousra's avatar
Mestari Yousra committed
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
socket = context.socket(zmq.ROUTER)
socket.bind("tcp://*:5555")

while True:
    #  Wait for next request from client
	addr,empty,message=socket.recv_multipart()
	print(message.decode())
	if message.decode() =="PLAY":
		socket.send_multipart([addr,b'',b"VS P or C?"])
		J1.addr,empty,vs=socket.recv_multipart()
		print(vs.decode())
		[M1,position1]=grille_serveur(J1,bateaux)
		if vs.decode()== "P":
			J2.addr,empty,vs=socket.recv_multipart()
			[M2,position2]=grille_serveur(J2,bateaux)
			message="jeu en cours"
			socket.send_multipart([J1.addr,b'',message.encode()])
			while message!="jeu fini":
				message,victoire, M2, position2=frappe_serveur(J1,M2,position2)
				socket.send_multipart([J1.addr,b'',message.encode()])
				if message!="jeu fini":
					message,victoire, M1, position1=frappe_serveur(J2,M1,position1)
					socket.send_multipart([J1.addr,b'',message.encode()])
			socket.recv_multipart([J1.addr,b'',victoire.encode()])
		elif vs.decode()=='C':
			#appeler l'IA
		else:
			quit
    #  Do some 'work'
	time.sleep(1)
Mestari Yousra's avatar
Mestari Yousra committed
79

Mestari Yousra's avatar
Mestari Yousra committed
80
81
    #  Send reply back to client
	socket.send(b"World")