Está en la página 1de 4

program {Mover (Norte)}

IrAlBorde(Oeste)
}
program {
program { Poner(Rojo) } DibujarLineaColorida()
}
procedure DibujarCuadradoNegroDeLado3() {
Poner(Negro) procedure DibujarCuadradoColorido(){
Mover(Este) DibujarLineaColorida()
Poner(Negro) Mover(Norte)
Mover(Este) DibujarLineaColorida()
Poner(Negro) Mover(Norte)
Mover(Norte) DibujarLineaColorida()
Poner(Negro) Mover(Norte)
Mover(Oeste) DibujarLineaColorida()
Poner(Negro) IrAlBorde(Oeste)
Mover(Oeste) Mover(Sur)
Poner(Negro) Mover(Sur)
Mover(Norte) Mover(Sur)
Poner(Negro) }
Mover(Este) program {
Poner(Negro) DibujarCuadradoColorido()
Mover(Este) }
Poner(Negro)
} procedure MoverOeste10() {
repeat(10) {
program { Mover(Oeste)
DibujarCuadradoNegroDeLado3() }
} }

program { procedure DibujarLineaNegra6() {


IrAlBorde(Este) repeat(6) {
} Poner(Negro)
Mover(Este)
procedure PonerGuirnalda(){ }
Poner3Verdes() }
Poner3Rojas()
} procedure Poner21Azul() {
procedure DecorarTablero(){ repeat(21) {
IrAlBorde(Norte) Poner(Azul)
IrAlBorde(Este) }
PonerGuirnalda() }
IrAlBorde(Norte)
IrAlBorde(Oeste) procedure DiagonalPesada4Azul() {
PonerGuirnalda() repeat(4) {
} Poner21Azul()
program { Mover(Norte)
DecorarTablero() Mover(Este)
} }
}
procedure PonerCeldaColorida(){
Poner(Verde) procedure LineaNegra4EsteOeste(){
Poner(Rojo) LineaNegra4Este()
Poner(Azul) repeat(3) {
Poner(Negro) Mover(Oeste)
} }
procedure DibujarLineaColorida(){ }
PonerCeldaColorida()
Mover(Este) procedure CuadradoNegro4() {
PonerCeldaColorida() repeat(3){
Mover(Este) LineaNegra4EsteOeste()
PonerCeldaColorida() Mover(Norte)
Mover(Este) }
PonerCeldaColorida() LineaNegra4Este()
}

procedure DibujarCuadradoNegroDeLado3(){
repeat(2){
DibujarLineaNegra3()
Mover(Norte)
}
DibujarLineaNegra3()
}
program {
DibujarCuadradoNegroDeLado3()
}

procedure DibujarLinea3(color) {
repeat(2) {
Poner(color)
Mover(Este)
}
Poner(color)
VolverAtras()
}

procedure DibujarCuadradoDeLado3(color) {

repeat(2) {

DibujarLinea3(color)

Mover(Norte)

DibujarLinea3(color)

}
}

procedure DibujarReloj(radio){

MoverN(radio, Norte)

PonerN(12, Rojo)

MoverN(radio,Sur)

procedure Triada(color1, color2, color3) { MoverN(radio, Este)

Poner(color1) PonerN(3, Rojo)

Mover(Este) MoverN(radio, Oeste)

Poner(color2) MoverN(radio, Oeste)

Mover(Este) PonerN(9, Rojo)

Poner(color3) MoverN(radio, Este)

} MoverN(radio, Sur)

PonerN(6, Rojo)

procedure PonerN(cantidad, color){ MoverN(radio, Norte)

repeat(cantidad){ }

Poner(color)

} procedure LineaEstePesada(peso, color, longitud){

} repeat (longitud){

PonerN(peso, color)

procedure Fecha(dia, mes, anio){ Mover(Este)

PonerN(dia, Azul) }

Mover(Este) MoverN(longitud, Oeste)

PonerN(mes, Verde) }

Mover(Este)

PonerN(anio, Negro) procedure CrearAzulejo(){

} PonerN(5, Negro)

PonerN(9, Rojo)

procedure MoverN(cantidad, direccion){ PonerN(1, Verde)

repeat(cantidad){ }

Mover(direccion) procedure GuardaDe5(){


repeat (4){ Poner (Rojo)
CrearAzulejo() Mover (opuesto(direccion))
Mover(Este) Mover (previo(direccion))
} Poner (Rojo)
CrearAzulejo() Mover (siguiente(direccion))
} Mover (siguiente(direccion))
Poner (Rojo)
Procedure Guarda(longitud, direccionida, direccionvuelta) { Mover (previo(direccion))
repeat(longitud){ }
Mover(direccionida)
PonerAzulejo() nroBolitas(color). Lo que hace es simple: nos retorna la
} cantidad de bolitas de un color determinado en la
MoverN(longitud, direccionvuelta) posición actual.
}
procedure GuardaEnL(){ procedure CopiarVerdesEnRojas(){
PonerAzulejo() PonerN(nroBolitas(Verde), Rojo)
Guarda(2, Este, Oeste) }
Guarda(2, Norte, Sur)
} procedure SacarN(cantidad, color) {
repeat(cantidad) {
Sacar(color)
}
 Aritméticas: +, -, *, div. }
 De direcciones: opuesto, siguiente, previo. procedure SacarTodas(color){
 Númericas: nroBolitas. SacarN(nroBolitas(color), color)
}

procedure SacarAzulConMiedo() {
procedure PonerSuma(x, y){
if (hayBolitas(Azul)) {
PonerN(x+y, Rojo)
Sacar(Azul)
}
}
}
procedure ContarGente(micros, autos, bicicletas){
PonerN(micros*40+autos*4+bicicletas, Verde)
procedure SacarRojoConMiedo() {
}
if (hayBolitas(Rojo)) {
Sacar(Rojo)
procedure MoverComoSalmon(direccion) {
}
Mover(opuesto(direccion))
}
}
program{ if (puedeMover(Este)){ Mover (Este) }}
procedure Linea(direccion, color, longitud) {
repeat(longitud) {
program{ if (nroBolitas(Negro) < 5){ Poner (Negro) }}
Poner(color)
Mover(direccion)
procedure AsegurarUnaBolitaVerde(){ if (not
}
hayBolitas(Verde)){ Poner(Verde) }}
MoverN(longitud, opuesto(direccion))
}
procedure MoverComoSea(){ if (puedeMover(Oeste))
{ Mover(Oeste) } else { Mover(Norte) }}
 además de opuesto, Gobstones nos provee dos
funciones más para operar sobre las procedure PrenderOApagarLuz(){ if (hayBolitas(Verde)) {
direcciones, siguiente y previo. siguiente(direccion) retorn Sacar(Verde)
a la dirección siguiente a la especificada, mientras Poner(Negro) } else {
que previo(direccion) retorna la anterior, siempre Sacar(Negro)
pensándolo en el sentido de las agujas del reloj: Poner(Verde) } }

procedure Ele(direccion) {
Linea(direccion, Azul, 3)
Linea(siguiente(direccion), Azul, 3)
}

procedure Flecha(direccion){
Mover (direccion)

También podría gustarte