Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fundamentos
Fundamentos
mover
poner
sacar
---------------------------------------------------------
primitiva ir al borde ejemplo
IrAlBorde(Este)
---------------------------------------------------------
(MOVER N)
MoverN(longitud, opuesto(direccion))
}
---------------------------------------------------------
ejemplo
procedure MoverOeste10() {
repeat(10) {
Mover(Oeste)
}
}
----------------------------------------------------------
cuadradoc colorido
-----------------------------------------------------------
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 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()
}
------------------------------------------------------------------------
---------------------------------------------------------------------
--------------------------------------------------------------------
}
----------------------------------------------------------------------
ele en todas direcciones
MoverN(longitud, opuesto(direccion))
}
}
-------------------------------------------------------------------
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 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)
}
}
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)
}
}
function hayBolitasLejosAl(direccion,color,distancia){
MoverN(distancia,direccion)
return(hayBolitas(color))
}
-----------------------------------------------------------------------------------
---------------
procedure PonerN(n, color) {
repeat(n) {
Poner(color)
}
}