You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
7 months ago
|
import socket
|
||
|
import threading
|
||
|
import random
|
||
|
|
||
|
# Define las coordenadas de casillas especiales
|
||
|
casillas_especiales = [(2, 5), (3, 3), (4, 7), (5, 2), (6, 0),
|
||
|
(6, 5), (7, 8), (8, 4), (9, 1), (9, 9)]
|
||
|
|
||
|
def manejar_conexion(conn, addr):
|
||
|
print(f"Conexión establecida con {addr}")
|
||
|
|
||
|
# Envía las coordenadas de las casillas especiales al cliente
|
||
|
conn.sendall(str(casillas_especiales).encode())
|
||
|
|
||
|
intentos = 0
|
||
|
|
||
|
while intentos < 20:
|
||
|
data = conn.recv(1024).decode()
|
||
|
if not data:
|
||
|
break
|
||
|
print(f"Mensaje recibido de {addr}: {data}")
|
||
|
|
||
|
# Verifica si la casilla clicada es especial y envía la respuesta al cliente
|
||
|
fila, columna = map(int, data.split(','))
|
||
|
if (fila, columna) in casillas_especiales:
|
||
|
respuesta = "¡HAS TOCADO!"
|
||
|
else:
|
||
|
respuesta = "¡AGUA!"
|
||
|
conn.sendall(respuesta.encode())
|
||
|
|
||
|
intentos += 1
|
||
|
|
||
|
print(f"Conexión cerrada con {addr}")
|
||
|
conn.close()
|
||
|
|
||
|
def main():
|
||
|
host = '127.0.0.1'
|
||
|
port = 12345
|
||
|
|
||
|
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
|
server_socket.bind((host, port))
|
||
|
server_socket.listen(5)
|
||
|
|
||
|
print("Servidor esperando conexiones...")
|
||
|
|
||
|
while True:
|
||
|
conn, addr = server_socket.accept()
|
||
|
thread = threading.Thread(target=manejar_conexion, args=(conn, addr))
|
||
|
thread.start()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|