Está en la página 1de 12

operaciones

mover
poner
sacar
---------------------------------------------------------
primitiva ir al borde ejemplo

IrAlBorde(Este)

---------------------------------------------------------

(MOVER N)

procedure MoverN(cantidad, direccion) {


repeat(cantidad) {
Mover(direccion)
}
}
---------------------------------------------------------

(LINEA UTILIZANDO MOVER N)

procedure Linea(direccion, color, longitud) {


repeat(longitud) {
Poner(color)
Mover(direccion)
}

MoverN(longitud, opuesto(direccion))
}
---------------------------------------------------------

comando (como Mover, Poner, DibujarLineaNegra, etc) un


cierto n�mero de veces, en lugar de copiar y pegar como
ven�amos haciendo hasta ahora, podemos utilizar la
sentencia repeat.

ejemplo

procedure MoverOeste10() {
repeat(10) {
Mover(Oeste)
}
}
----------------------------------------------------------
cuadradoc colorido

procedure DibujarLinea3(color, direccion) {


Poner(color)
Mover(direccion)
Poner(color)
Mover(direccion)
Poner(color)
}
program{
Mover(Norte)
DibujarLinea3(Azul,Norte)
Mover(Este)
DibujarLinea3(Negro,Este)
Mover(Sur)
DibujarLinea3(Rojo,Sur)
Mover(Oeste)
DibujarLinea3(Verde,Oeste)
}

-----------------------------------------------------------

diagonal azul

procedure Diagonal4Azul(){
repeat(4){
Poner(Azul)
Mover(Este)
Mover(Norte)
}
}
------------------------------------------------------------

procedure Diagonal4AzulVolviendo(){
Diagonal4AzulAvanzando()
repeat(4){
Mover(Sur)
Mover(Oeste)
}
}

procedure Diagonal4AzulAvanzando(){
repeat(4){
Poner(Azul)
Mover(Este)
Mover(Norte)
}
}

------------------------------------------------------------------

procedure PonerN(cantidad, color){


repeat(cantidad){
Poner(color)
}
}

------------------------------------------------------------------
procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}

procedure DiaDeLaMemoria(){
PonerN(24,Azul)
Mover(Este)
PonerN(3,Verde)
Mover(Este)
PonerN(1976,Negro)
}
---------------------------------------------------------------------
procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}

procedure Fecha(dia,mes,anio){
PonerN(dia,Azul)
Mover(Este)
PonerN(mes,Verde)
Mover(Este)
PonerN(anio,Negro)
}

------------------------------------------------------------------

procedure MoverN(cantidad,direccion){
repeat(cantidad){
Mover(direccion)
}
}
------------------------------------------------------------------
procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}

procedure MoverN(cantidad,direccion){
repeat(cantidad){
Mover(direccion)
}
}

procedure DibujarReloj(radio){
MoverN(radio,Norte)
PonerN(12,Rojo)
MoverN(radio,Sur)
MoverN(radio,Este)
PonerN(3,Rojo)
MoverN(radio,Oeste)
MoverN(radio,Sur)
PonerN(6,Rojo)
MoverN(radio,Norte)
MoverN(radio,Oeste)
PonerN(9,Rojo)
MoverN(radio,Este)
}
--------------------------------------------------------------------

procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}

procedure MoverN(cantidad,direccion){
repeat(cantidad){
Mover(direccion)
}
}

procedure LineaEstePesada(peso,color,longitud)
{
repeat(longitud){

PonerN(peso,color)
MoverN(1,Este)
}
MoverN(longitud,Oeste)
}
----------------------------------------------------------------------
procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}

procedure Cuadrito(){
PonerN(1,Verde)
PonerN(5,Negro)
PonerN(9,Rojo)
}
procedure GuardaDe5(){
repeat(4){
Cuadrito()
Mover(Este)
}
Cuadrito()
}
-----------------------------------------------------------------------

procedure PonerAzulejo(){
Poner(Verde)
PonerN(5,Negro)
PonerN(9,Rojo)
}

procedure PonerN(cantidad,color){
repeat(cantidad){
Poner(color)
}
}
procedure MoverN(cantidad,direccion){
repeat(cantidad){
Mover(direccion)
}
}

procedure Norte(){
repeat(2){
PonerAzulejo()
Mover(Norte)
}
PonerAzulejo()
}

procedure Este(){
Mover(Este)
PonerAzulejo()
Mover(Este)
PonerAzulejo()

procedure VolverALSur(){
MoverN(2,Sur)
}
procedure VolverALOeste(){
MoverN(2,Oeste)

}
procedure GuardaEnL(){
Este()
VolverALOeste()
Norte()
VolverALSur()

}
------------------------------------------------------------------------

procedure PonerN(cantidad, color) {


repeat(cantidad) {
Poner(color)
}
}
procedure PonerSuma(x, y){
PonerN(x+y,Rojo)
}
-------------------------------------------------------------------------
procedure PonerN(cantidad, color) {
repeat(cantidad) {
Poner(color)
}
}
procedure ContarGente(micros, autos, bicicletas){
PonerN(micros*40+autos*4+bicicletas*1,Verde)
}
------------------------------------------------------------------------

procedure MoverN(cantidad, direccion) {


repeat(cantidad) {
Mover(direccion)
}
}
procedure CaminarDesconfiado(pasos){
MoverN(pasos div 2,Este)
}

---------------------------------------------------------------------

procedure PonerAl(direccion, color){


Mover(direccion)
Poner(color)
Mover(opuesto(direccion))

--------------------------------------------------------------------

procedure MoverN(cantidad, direccion) {


repeat(cantidad) {
Mover(direccion)
}
}procedure Linea(direccion, color, longitud) {
repeat(longitud) {
Poner(color)
Mover(direccion)
}
MoverN(longitud,opuesto(direccion))

}
----------------------------------------------------------------------
ele en todas direcciones

procedure Linea(direccion, color, longitud) {


repeat(longitud) {
Poner(color)
Mover(direccion)
}

MoverN(longitud, opuesto(direccion))
}

procedure MoverN(cantidad, direccion) {


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

}
-------------------------------------------------------------------
procedure Flecha(direccion){
Mover (direccion)
Poner (Rojo)
Mover (opuesto(direccion))
Mover (siguiente(direccion))
Poner(Rojo)
Mover(previo(direccion))
Mover(previo(direccion))
Poner(Rojo)
Mover(siguiente(direccion))
}
----------------------------------------------------------------------
procedure PonerN(cantidad, color) {
repeat(cantidad) {
Poner(color)
}
}
procedure CopiarVerdesEnRojas(){
PonerN(nroBolitas(Verde),Rojo)
}
-----------------------------------------------------------------------

procedure SacarN(cantidad, color) {


repeat(cantidad) {
Sacar(color)
}
}
procedure SacarTodas(color){
SacarN(nroBolitas(color), color)
}
------------------------------------------------------------------------
procedure SacarAzulConMiedo() {
if (hayBolitas(Azul)) {
Sacar(Azul)
}
}

-----------------------------------------------------------------------
-------------------------------------------------------------------------
procedure CompletarCelda(){
if(hayBolitas(Negro)){
Poner(Rojo)
Poner(Verde)
Poner(Azul)

} }
------------------------------------------------------------------------
program{
if(puedeMover(Este)){
Mover(Este)
}
}
------------------------------------------------------------------------
program{
if(nroBolitas(Negro)<5){
Poner(Negro)
}
}
-------------------------------------------------------------------------
procedure AsegurarUnaBolitaVerde(){
if (not hayBolitas(Verde)){
Poner(Verde)
}
}
-------------------------------------------------------------------------
procedure MoverComoSea() {
if (puedeMover(Oeste)) {
Mover(Oeste)
} else {
Mover(Norte)
}
}

---------------------------------------------------------------------------
procedure PrenderOApagarLuz(){
if (hayBolitas(Verde)){
Sacar(Verde)
Poner(Negro)
}else{
Poner(Verde)
Sacar(Negro)
}
}
----------------------------------------------------------------------------------
procedure MoverSegunBolitas() {
if (nroBolitas(Azul) + nroBolitas(Negro) + nroBolitas(Rojo) + nroBolitas(Verde) >
10) {
Mover(Este)
} else {
Mover(Norte)
}
}
-----------------------------------------------------------------------------------
--
function nroBolitasTotal() {
return (nroBolitas(Azul) + nroBolitas(Negro) + nroBolitas(Rojo) +
nroBolitas(Verde))
}

-----------------------------------------------------------------------------------
------
procedure MoverSegunBolitas() {
if (nroBolitasTotal()> 10) {
Mover(Este)
} else {
Mover(Norte)
}
}
-----------------------------------------------------------------------------------
---------
function todasExcepto(color){
return (nroBolitasTotal() - nroBolitas(color))
}
-----------------------------------------------------------------------------------
----------
procedure PonerN(n, color) {
repeat(n) {
Poner(color)
}
}

procedure SacarN(n, color) {


repeat(n) {
Sacar(color)
}
}

procedure MoverN(n, dir) {


repeat(n) {
Mover(dir)
}
}

function nroBolitasTotal() {
/*
...
*/
}

/*
Nos dice cuantas bolitas hay si no contamos el color recibido por par�metro. Por
ejemplo, si tenemos un casillero con 1 bolita roja, 2 verdes, 3 negras y 4 azules
todasExcepto(Negro) nos retornar�a 7 (1 + 2 + 4).
*/

function todasExcepto(color) {
/*
...
*/
}

function rojoEsDominante(){
return(nroBolitas(Rojo)>todasExcepto(Rojo))
}
-----------------------------------------------------------------------------------
---------------------

function esLibreCostados(){
return(puedeMover(Este)&&puedeMover(Oeste))
}
-----------------------------------------------------------------------------------

function hayAlgunaBolita(){
return
(hayBolitas(Verde)||hayBolitas(Rojo)||hayBolitas(Negro)||hayBolitas(Azul))
}
-----------------------------------------------------------------------------------
-
function estoyEnUnBorde(){
return (not puedeMover(Norte)||not puedeMover(Este)|| not puedeMover(Sur)||not
puedeMover(Oeste))
}
-----------------------------------------------------------------------------------
-----
function hayBolitasAl(direccion, color){
Mover(direccion)
return(nroBolitas(color)>0)
}
-----------------------------------------------------------------------------------
-----
function hayBolitasAl(direccion, color) {
Mover(direccion)
return (hayBolitas(color))
}
-----------------------------------------------------------------------------------
----
procedure PonerN(n, color) {
repeat(n) {
Poner(color)
}
}

procedure SacarN(n, color) {


repeat(n) {
Sacar(color)
}
}

procedure MoverN(n, dir) {


repeat(n) {
Mover(dir)
}
}

function hayBolitasLejosAl(direccion,color,distancia){
MoverN(distancia,direccion)
return(hayBolitas(color))
}
-----------------------------------------------------------------------------------
---------------
procedure PonerN(n, color) {
repeat(n) {
Poner(color)
}
}

procedure SacarN(n, color) {


repeat(n) {
Sacar(color)
}
}

procedure MoverN(n, dir) {


repeat(n) {
Mover(dir)
}
}
function hayBolitasAl(direccion, color) {
Mover(direccion)
return (hayBolitas(color))
}
function estoyRodeadoDe(color){
return(hayBolitasAl(Norte,color)&&hayBolitasAl(Este,color)&&hayBolitasAl(Sur,color)
&&hayBolitasAl(Oeste,color))
}
-----------------------------------------------------------------------------------
-------------------------------
function hayLimite() {
return (estoyRodeadoDe(Rojo)||estoyEnUnBorde())
}
-----------------------------------------------------------------------------------
---------------------

También podría gustarte