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()