Python Bots v1.0

15:04 0 Comments A+ a-



Python Bots 1.0 es un juego de programacion en el cual deberemos crear desde 0 un bot utilizando el modulo gamefile del cual nos provee la aplicacion y lanzarlo a la batalla.

La API es muy sencilla de usar asi que paso a mostrarles algunas funciones que pueden usar para comenzar a construir sus propias maquinas.

Primero y antes que nada a descargar el juego.

DESCARGA: http://ufpr.dl.sourceforge.net/project/pythonrobocode/pythonbots-v1.zip

El bot requiere de la creacion de las siguientes funciones:

Código: Python
  1. name()
  2.  
  3. startDirection()  #Opcional
  4.  
  5. color()
  6.  
  7. commands()
  8.  
  9. target_spotted(direction)

name() debera retornar el nombre de nuestro bot:


Código: Python
  1. def name():
  2.     return "[Q]3rV[0]"

color() obviamente nos pinta la carroceria

el formato va de la siguiente manera (0,0,0) al (255,255,255)

Como yo lo quiero negro


Código: Python
  1. def color():
  2.     return (0,0,0)
  3.  

startDirection() es opcional y podremos indicarle en que posicion se encuntre le robot cuando el juego inicie.


Código: Python
  1. def startDirection():
  2.     return 90
  3.  

commands() Sobre esta funcion se definiran las acciones que realizara nuestro robot.


Código: Python
  1. gamefile.robotHealth() #Retorna el valor de la salud del robot entre 1-82
  2. gamefile.move(frames) #Se movera determinada cantidad de cuadros
  3. gamefile.stop(frames) #Se parara cada tantos frames
  4. gamefile.fire() #Para realizar disparos
  5. gamefile.turn_left(grados) #Para girar tantos grados a la izquierda
  6. gamefile.turn_right(grados) #Para girar tantos grados a la derecha
  7. gamefile.done() #Este metodo es necesario ya que indica el final de bucle para que las demas acciones puedan seguir repitiendose.
  8. gamefile.spinradar(direction) #Seteamos la direccion en la que girara el radar "RIGHT" o "LEFT"
  9. gamefile.lockradar(TEXT) #Podemos especificar 3 opciones ("GUN" "FREE" "BASE")

target_spotted(direction)

Con esta funcion manejaremos el radar de nuestro tanquesito. Cuando un blanco es detectado por este, la funcion es llamada.

gamefile.pointgun(direction)


Código: Python
  1. def target_spotted(direction):
  2.     gamefile.pointgun(direction)

Para culminar les dejo el motor de un bot que arme, junto con un video de muestra.


Código: Python
  1. import gamefile
  2.  
  3. def name():
  4.     return "[Q]3rV[0]"
  5.  
  6. def colour():
  7.     return (0, 0, 0)
  8.  
  9. def commands():
  10.     gamefile.spinradar("FREE")
  11.     gamefile.lockradar("FREE")
  12.     gamefile.move(200)
  13.     gamefile.fire()
  14.     gamefile.turn_left(100)
  15.     gamefile.fire()
  16.     gamefile.move(300)
  17.     gamefile.fire()
  18.     gamefile.turn_left(100)
  19.     gamefile.fire()
  20.     gamefile.done()
  21.     if gamefile.robotHealth() < 41:
  22.         gamefile.move(200)
  23.         gamefile.fire()
  24.         gamefile.turn_right(100)
  25.         gamefile.fire()
  26.         gamefile.move(300)
  27.         gamefile.fire()
  28.         gamefile.turn_right(100)
  29.         gamefile.fire()
  30.         gamefile.done()
  31.  
  32. def target_spotted(direction):
  33.         gamefile.pointgun((direction)*1.4)
  34.         gamefile.fire()
  35.         gamefile.fire()
  36.         gamefile.fire()