waleska404 / SkylineBot

:city_sunset: Telegram Bot: SkylineBot. Create skylines and play with them.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SkylineBot

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.

Antes de empezar

A continuación se especifican las instrucciones para poder ejecutar el bot e interactuar con él.

Prerequisitos

Las librerias necesarias estan especificadas en el archivo requeriments.txt, para instalarlas ejecutar:

$ pip3 install -r requeriments.txt

Instalación

Una vez instaladas las librerias necesarias hace falta token.

  1. Instalar Telegram en caso de no tenerlo.
  2. Visitar a @BotFather.
  3. 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.

Interacciones con el bot

Comandos

  • /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.

Lenguaje

Creación de skylines

Simple

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.

Compuesto

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.

Aleatorio

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.

Asignación

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

Operaciones

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

Autora

Paula Boyano Ivars

About

:city_sunset: Telegram Bot: SkylineBot. Create skylines and play with them.


Languages

Language:Python 99.0%Language:ANTLR 1.0%