# L-40 MCS 260 Wed 20 Apr 2016 : mc4pi_client.py
"""
This client applies Monte Carlo simulation to
estimate Pi.  The first seed comes from the
server in the program mc2pi2.py.
"""
from random import seed, uniform
from socket import socket as Socket
from socket import AF_INET, SOCK_STREAM

HOSTNAME = 'localhost'  # on same host
NUMBER = 11267          # same port number
BUFFER = 80             # size of the buffer

SERVER_ADDRESS = (HOSTNAME, NUMBER)
CLIENT = Socket(AF_INET, SOCK_STREAM)
CLIENT.connect(SERVER_ADDRESS)

print('client is connected')
DATA = CLIENT.recv(BUFFER).decode()
print('client received %s' % DATA)

seed(int(DATA))

N = 10**7
CNT = 0
for i in range(0, N):
    xpt = uniform(0, 1)
    ypt = uniform(0, 1)
    if xpt**2 + ypt**2 <= 1:
        CNT = CNT + 1
R = float(CNT)/N
print('client computes %.12f' % R)

CLIENT.send(str(R).encode())

CLIENT.close()
