Proyecto para la asignatura Lenguajes de Programación de la FIB (edición primavera 2020).
Bot de Telegram con el que puedes interactuar para generar y operar con skylines.
Desarrollado con Python y ANTLR.
A continuación se especifican las instrucciones para poder ejecutar el bot e interactuar con él.
Las librerias necesarias estan especificadas en el archivo requeriments.txt, para instalarlas ejecutar:
$ pip3 install -r requeriments.txt
Una vez instaladas las librerias necesarias hace falta token.
- Instalar Telegram en caso de no tenerlo.
- Visitar a @BotFather.
- Utilizar el comando /newbot y proporcionar la información requerida para obtener un token. (Para información mas detallada ver https://core.telegram.org/bots#6-botfather. )
Copia el token y pegalo en archivo token.txt en la misma carpeta que bot.py.
Ahora ya es posible ejecutar el bot:
$ python3 bot.py
Ahora con el link que @BotFather ha proporcionado podemos ir al chat del bot e interactuar con él.
- /start: Inicia la conversación conmigo.
- /help: Obten una lista de todos los comandos que me puedes enviar.
- /author: Información sobre el autor de este bot.
- /lst: Muestra los identificadores definidos y su correspondiente area.
- /clean: Borra todos los identificadores definidos.
- /save id: Guarda un skyline definido con id: id.
- /load id: Carga un skyline que hayas guardado previamente con id: id.
Para crear un skyline simple con un edificio basta con especificar: (xmin, altura, xmax)
donde xmin define la posición inicial del edificio, xmax la posición final, y altura la altura.
Para crear un skyline compuesto por diversos edificios se especifica de la siguiente manera: [(xmin, altura, xmax),...]
donde los parametros se refieren a las mismas características que en el apartado anterior.
Para generar un skyline aleatorio indicamos: {n, h, w, xmin, xmax}
donde n especifica el numero de edificios,** h** que los edificios tendrán una altura aleatoria entre 0 y h, w que los edificios tendrán una anchura aleatoria entre 1 y w, y por ultimo xmin y xmax que los edificios tendrán una posición de x aleatoria entre estos dos valores.
En caso de querer darle un nombre a un skyline y poder operar con él solamente espeficicando su ID podemos hacer una asignación de la forma: a := (1,2,3)
donde 'a' corresponderia al ID del skyline (1,2,3).
Se pueden realizar las siguientes operaciones con skylines:
- Unión:
skyline + skyline
- Intersección:
skyline * skyline
- Replicación:
skyline * N
- Desplazamiento a la derecha:
skyline + N
- Desplazamiento a la izquierda:
skyline - N
- Reflexión:
-skyline
Paula Boyano Ivars