LOGO, en UCBLogo, no permite trabajar con imágenes, por
lo que los dibujos los hemos de hacer también mediante programación. Se me
ocurrió, sin embargo, que podríamos usar el propio UCBLogo y la interacción
con el ratón para poder hacer una sencilla aplicación que permitiera dibujar
con el ratón y que el resultado quedara guardado para otras aplicaciones.
Para ello sencillamente habría que transformar las operaciones del ratón en
código en LOGO y poder escribirlo a un fichero. Bueno, pues esto es lo que hace
este sencillo programa.
Cómo funciona el programa: el programa nos pregunta al
iniciar el nombre que vamos a dar a un fichero, lo crea y hace que la salida de
escritura (la que se usa con el comando print
que por defecto sale en la parte inferior en blanco de la pantalla) sea el
propio fichero. Para ello usamos estos comandos:
print
"Escribe_el_nombre_del_fichero
make "fichero
readword ;readword lee una palabra
openwrite fichero ;abrimos el fichero para escritura
setwrite fichero ;hacemos que el comando print escriba en el fichero
Veamos ahora un ejemplo visual de un dibujo en pantalla y
el código que genera en el fichero:
Salida del
programa en el fichero hola:
pendown
setxy 93+cx 90+cy
pendown
setxy 125+cx -4+cy
pendown
setxy -1+cx 0+cy
penup
setxy -39+cx -19+cy
pendown
setxy -49+cx 53+cy
pendown
setxy -130+cx 24+cy
pendown
setxy -42+cx -19+cy
penup
setxy -10+cx 31+cy
pendown
setxy -14+cx 88+cy
pendown
setxy 12+cx 95+cy
penup
setxy 12+cx 95+cy
Como vemos tenemos que escribir estas líneas. ¿Cómo lo
hacemos? Concatenando palabras con el comando word:
make "w1
"setxy| |
define una variable de nombre w1 que vale “setxy “, pues los caracteres | | sirven para poner un
espacio (el espacio va entre las líneas verticales). A continuación hacemos:
make
"rx first mousepos
make
"w2 word w1 rx
que hace que la nueva variable w2 valga lo que valía w1
con el añadido de rx. Y así
sucesivamente vamos construyendo todo el renglón añadiendo términos hasta
llegar a la variable w5 que es la
concatenación de todas ellas:
make
"w3 word w2 "+cx| |
make
"w4 word w3 ry
make
"w5 word w4 "+cy| |
print
"pendown
print w5
El programa hace uso de los dos botones del ratón y escribe
código parecido pero diferente para cada uno de ellos. También se usa una
variable puedopulsar (ya explicada en
el videojuego captura la bola) para
garantizar que sólo se escriba una vez por pulsación del botón del ratón.
Código del
programa
;
; Raultecnologia
; Este sencillo programa nos permite realizar un dibujo sencillo con el
raton
; que genera en un fichero el codigo en LOGO para el programa UCBLogo que
; nos permite dibujar dicho dibujo.
; Al hacer uso de las variables "cx" y "cy" sumadas a
las coordenadas x,y,
; disponemos de un metodo para introducir nuestro dibujo en cualquier
programa
; del UCBLogo
; Con el boton izquierdo del raton dibujamos linea y con el derecho vamos a
otro
; punto sin dibujar
; La tecla "q" acaba el dibujo
;
showturtle
to inicio
print "Escribe_el_nombre_del_fichero
make "fichero readword
openwrite fichero
setwrite fichero
make "puedopulsar 1
make "tecla "p
penup
raton
end
to raton
if keyp [make "tecla rc]
make "rx first mousepos
make "ry last mousepos
if button = 0 [make "puedopulsar 1]
if puedopulsar = 1 [if button = 1 [make
"puedopulsar 0 hideturtle pendown~
setxy rx
ry make "w1 "setxy| | make "w2 word w1 rx make "w3 word w2
"+cx| |~
make
"w4 word w3 ry make "w5 word w4 "+cy| | print "pendown
print w5]]
if puedopulsar = 1 [if button = 2 [make
"puedopulsar 0 showturtle penup~
setxy rx
ry make "w1 "setxy| | make "w2 word w1 rx make "w3 word w2
"+cx| |~
make
"w4 word w3 ry make "w5 word w4 "+cy| | print "penup print
w5]]
if tecla = "q [close fichero]
raton
end