Python específico para robots#
El VR Rover tiene acceso a los comandos estándar de VR Drivetrain, Eventos, Control, Variables y Funciones.
Transmisión#
tren motriz.drive_to()#
El comando drivetrain.drive_to(object, wait)
se utiliza para conducir el VR Rover la distancia entre él y un objeto específico.
Este puede ser un comando sin espera o en espera dependiendo de si se utiliza el parámetro wait
.
Parámetros |
Descripción |
---|---|
objeto |
El objeto al que conducirá el VR Rover: |
esperar |
Opcional. El parámetro wait determina si el comando bloqueará los comandos subsiguientes ( |
Si no se detecta un mineral o un enemigo en el rango visual del VR Rover cuando se llama al comando drivetrain.drive_to()
, el robot no se conducirá.
Sin embargo, cuando se utiliza el parámetro BASE
, el robot avanzará la distancia entre él y la base.
Devoluciones: Ninguna.
def main():
# Drive the VR Rover to the nearest mineral.
drivetrain.drive_to(MINERALS)
tren motriz.go_to()#
El comando drivetrain.go_to(object, wait)
se utiliza para girar y conducir el VR Rover hacia un objeto específico.
Este puede ser un comando sin espera o en espera dependiendo de si se utiliza el parámetro wait
.
Parámetros |
Descripción |
---|---|
objeto |
El objeto al que girará y conducirá el VR Rover: “BASE”, “ENEMIGO” o “MINERALES”. |
esperar |
Opcional. El parámetro wait determina si el comando bloqueará los comandos subsiguientes ( |
Si no se detecta un mineral o un enemigo en el rango visual del VR Rover cuando se llama al comando drivetrain.go_to()
, el robot no se conducirá.
Sin embargo, cuando se utiliza el parámetro BASE
, el robot siempre girará hacia la base y luego se conducirá hacia ella.
Devoluciones: Ninguna.
def main():
# Turn the VR Rover towards the base and drive to it.
drivetrain.go_to(BASE)
tren motriz.turn_to()#
El comando drivetrain.turn_to(object, wait)
se utiliza para girar el VR Rover hacia un objeto específico.
Este puede ser un comando sin espera o en espera dependiendo de si se utiliza el parámetro wait
.
Parámetros |
Descripción |
---|---|
objeto |
El objeto al que se dirigirá el VR Rover: |
esperar |
Opcional. El parámetro wait determina si el comando bloqueará los comandos subsiguientes ( |
Si no se detecta un mineral o un enemigo en el rango visual del VR Rover cuando se llama al comando drivetrain.drive_to()
, el robot no se conducirá.
Sin embargo, cuando se utiliza el parámetro BASE
, el robot girará para mirar hacia la base.
Devoluciones: Ninguna.
def main():
# Turn the VR Rover towards the nearest mineral.
drivetrain.turn_to(MINERALS)
Comportamiento#
rover.pickup()#
El comando rover.pickup(object)
se utiliza para recoger minerales en el patio de juegos.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
objeto |
El objeto que el VR Rover puede recoger: ‘MINERALES’. |
Devoluciones: Ninguna.
def main():
# Turn and drive the VR Rover to the nearest minerals.
drivetrain.go_to(MINERALS)
# Pick up the minerals.
rover.pickup(MINERALS)
rover.drop()#
El comando rover.drop(object)
se utiliza para dejar caer minerales en el patio de juegos.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
objeto |
El objeto que el VR Rover puede dejar caer: ‘MINERALES’. |
Devoluciones: Ninguna.
def main():
# Pick up the minerals.
rover.pickup(MINERALS)
# Drive in reverse for 200 millimeters.
drivetrain.drive_for(REVERSE, 200, MM)
# Drop the minerals.
rover.drop(MINERALS)
rover.use()#
El comando rover.use(object)
se usa para consumir minerales almacenados para recargar su nivel de energía y obtener XP. Los minerales deben estar en el suelo para ser consumidos.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
objeto |
El objeto que el VR Rover puede consumir: |
Devoluciones: Ninguna.
def main():
# Turn and drive the VR Rover to the nearest minerals.
drivetrain.go_to(MINERALS)
# Consume the minerals.
rover.use(MINERALS)
rover.absorb_radiación()#
El comando rover.absorb_radiation(object)
se utiliza para absorber la radiación de los enemigos en el campo de juego Rover Rescue.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
objeto |
El objeto del cual el VR Rover puede absorber radiación: “ENEMIGO”. |
Devoluciones: Ninguna.
def main():
# Turn and drive the VR Rover to the nearest enemy.
drivetrain.go_to(ENEMY)
# Absorb radiation from the enemy once.
rover.absorb_radiation(ENEMY)
rover.standby()#
El comando rover.standby(percent)
se utiliza para poner el VR Rover en modo de espera hasta que se alcance el umbral de batería especificado.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Cuando esté en modo de espera, el VR Rover utilizará su batería más lentamente, pero el contador de Número de días de supervivencia aumentará a un ritmo mayor.
Una vez que se alcanza el umbral del nivel de batería, el VR Rover saldrá del modo de espera, volverá a consumir su batería y aumentará el contador de Número de días de supervivencia al ritmo normal.
Si el umbral superado es igual o superior al nivel actual de la batería, el VR Rover no entrará en modo de espera.
Parámetros |
Descripción |
---|---|
por ciento |
El umbral de batería en el que el VR Rover saldrá del modo de espera, de |
Devoluciones: Ninguna.
def main():
# Go into standby mode until battery reaches 35%.
rover.standby(35)
Aspecto#
El VR Rover no tiene acceso al VR Pen, pero aún puede imprimir en su consola de monitor.
Eventos#
Cuando Rover está bajo ataque#
El comando rover.on_under_attack(callback)
ejecuta la función de devolución de llamada cuando el VR Rover recibe daño de un enemigo.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devoluciones: Ninguna.
# Define a new function for when the rover is under attack.
def under_attack():
# The rover will print that it is under attack in the Print Console.
brain.print("The rover is under attack!")
def main():
# Register the under_attack() function to trigger
# when the rover is under attack.
rover.on_under_attack(under_attack)
# Wait .15 seconds to allow the function time to register in the event.
wait(.15, SECONDS)
Cuando Rover sube de nivel#
El comando rover.on_level_up(callback)
ejecuta la función de devolución de llamada cuando el VR Rover se mueve de un nivel al siguiente.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devoluciones: Ninguna.
# Define a new function for when the rover levels up.
def level_up():
# The rover will print that it leveled up in the Print Console.
brain.print("The rover leveled up!")
def main():
# Register the level_up() function to trigger
# when the rover levels up.
rover.on_level_up(level_up)
# Wait .15 seconds to allow the function time to register in the event.
wait(.15, SECONDS)
Detección#
El VR Rover tiene acceso a los comandos estándar de cerebro, tren motriz y detección de distancia.
rover.batería()#
El comando rover.battery()
informa el nivel actual de batería del VR Rover.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor numérico.
def main():
# Print the current battery level.
brain.print(rover.battery())
rover.minerales_almacenados()#
El comando rover.minerals_stored()
informa la cantidad actual de minerales que el VR Rover tiene en su almacenamiento.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor numérico.
def main():
# Print the current amount of minerals in the VR Rover's storage.
brain.print(rover.minerals_stored())
rover.level()#
El comando rover.level()
informa el nivel actual del VR Rover.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor numérico.
def main():
# Print the current level of the VR Rover.
brain.print(rover.level())
rover.exp()#
El comando rover.exp()
informa la cantidad de puntos de experiencia (XP) que tiene el VR Rover en el nivel actual.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor numérico.
def main():
# Print the current amount of XP that the VR Rover has.
brain.print(rover.exp())
rover.capacidad_de_almacenamiento()#
El comando rover.storage_capacity()
informa la capacidad de carga del VR Rover.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor numérico.
def main():
# Print the carrying capacity of the VR Rover.
brain.print(rover.storage_capacity())
rover.bajo_ataque()#
El comando rover.under_attack()
informa si el VR Rover está siendo atacado por un enemigo.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto informa un valor booleano.
def main():
# Continuously check the if statement every 5 milliseconds.
while True:
wait(5, MSEC)
# Check if the rover has come under attack.
if rover.under_attack() = True:
# Print a message to the Print Console.
brain.print("The rover is under attack!")
rover.detects()#
El comando rover.detects(object)
informa si el VR Rover detecta un enemigo o minerales en su rango de olfato.
Parámetros |
Descripción |
---|---|
objeto |
El elemento del juego a detectar: |
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El radio de detección del VR Rover es de 800 milímetros (MM). Esto se puede ver en el minimapa del Patio de Juegos, indicado por el círculo amarillo alrededor del VR Rover.
Devuelve: Esto informa un valor booleano.
def main():
# Continuously check the if statement every 5 milliseconds.
while True:
wait(5, MSEC)
# Check if the rover has detected any minerals.
if rover.detects(MINERALS) = True:
# Turn and drive to the closest minerals.
drivetrain.go_to(MINERALS)
# Pick up the minerals.
rover.pickup(MINERALS)
rover.ve()#
El comando rover.sees(object)
informa si el VR Rover ve objetos detectables en su rango de visión.
Parámetros |
Descripción |
---|---|
objeto |
Los elementos del juego a ver: |
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El rango de visión del VR Rover es de 1000 milímetros (mm) desde el Rover y dentro de su campo de visión.
El campo de visión del VR Rover es de 40 grados. Esto se puede ver en el minimapa del Patio de Juegos, indicado por el cono gris translúcido en la parte frontal del VR Rover.
Devuelve: Esto informa un valor booleano.
def main():
# Continuously check the if statement every 5 milliseconds.
while True:
wait(5, MSEC)
# Check if the rover can see any minerals.
if rover.sees(MINERALS) = True:
# Turn and drive to the closest minerals.
drivetrain.go_to(MINERALS)
# Pick up the minerals.
rover.pickup(MINERALS)
rover.ángulo()#
El comando rover.angle(object)
informa la dirección en grados del objeto especificado más cercano dentro del rango de visión del VR Rover (1000 milímetros) y dentro de su campo de visión.
Parámetros |
Descripción |
---|---|
objeto |
El elemento del juego para informar la dirección de: |
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El rango de visión del VR Rover es de 1000 milímetros (mm) desde el Rover y dentro de su campo de visión.
El campo de visión del VR Rover es de 40 grados. Esto se puede ver en el minimapa del Patio de Juegos, indicado por el cono gris translúcido en la parte frontal del VR Rover.
Devuelve: Esto informa un valor numérico.
def main():
# Print the direction in degrees of the closest minerals.
brain.print(rover.angle(MINERALS))
rover.get_distance()#
El comando rover.get_distance(object, units)
informa la distancia desde el VR Rover a los minerales, enemigos, obstáculos, peligros o la base si están dentro de su rango de visión.
Parámetros |
Descripción |
---|---|
objeto |
Elemento del juego para informar las distancias desde VR Rover: |
unidades |
Las unidades para informar la distancia son: milímetros ( |
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El rango de visión del VR Rover es de 1000 milímetros (mm) desde el Rover y dentro de su campo de visión.
El campo de visión del VR Rover es de 40 grados. Esto se puede ver en el minimapa del Patio de Juegos, indicado por el cono gris translúcido en la parte frontal del VR Rover.
Si se pasa BASE
como parámetro objeto
, el VR Rover siempre informará la distancia, incluso si la Base no está a la vista.
Si se pasa OBSTÁCULO
o PELIGRO
como parámetro objeto
, pero no hay ningún obstáculo o peligro a la vista, el comando rover.get_distance()
devolverá 1000
milímetros o 39.37
pulgadas.
Devuelve: Esto informa un valor numérico.
def main():
# Print the distance between the VR Rover and the base.
brain.print(rover.get_distance(BASE))
rover.ubicación()#
El comando rover.location(object, axis, units)
informa la ubicación de las coordenadas X o Y de los minerales, enemigos, obstáculos, peligros o la base si están dentro de su rango de visión.
Parámetros |
Descripción |
---|---|
objeto |
Elemento del juego para informar las ubicaciones de: |
eje |
El eje en el que se devolverán valores: |
unidades |
Las unidades para informar la distancia son: milímetros ( |
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Si se pasa BASE
como parámetro objeto
, el VR Rover siempre informará la ubicación, incluso si la Base no está a la vista.
Devuelve: Esto informa un valor numérico.
def main():
# Print the current location of the VR Rover on the Y axis in millimeters.
brain.print(rover.location(ROVER, Y, MM))
rover.nivel_enemigo()#
El comando rover.enemy_level()
informa el nivel del enemigo más cercano detectado en la visión del VR Rover.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El radio de detección del VR Rover es de 800 milímetros (MM). Esto se puede ver en el minimapa del Patio de Juegos, indicado por el círculo amarillo alrededor del VR Rover.
Si no se detecta ningún enemigo, rover.enemy_level()
devolverá 0
.
Devuelve: Esto informa un valor numérico.
def main():
# Print the level of the closest detected enemy.
brain.print(rover.enemy_level())
rover.radiación_enemiga()#
El comando rover.enemy_radiation()
informa la radiación del enemigo más cercano detectado en la visión del VR Rover.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
El radio de detección del VR Rover es de 800 milímetros (MM). Esto se puede ver en el minimapa del Patio de Juegos, indicado por el círculo amarillo alrededor del VR Rover.
Si no se detecta ningún enemigo, rover.enemy_radiation()
devolverá 0
.
Devuelve: Esto informa un valor numérico.
def main():
# Print the radiation of the closest detected enemy.
brain.print(rover.enemy_radiation())