Está en la página 1de 4

Ejemplos de uso Gobstone

Mover cabezal
program {
Mover(Norte)
}

Poner bolita
program{
Poner(Rojo) // Rojo, Azul, Negro, verde
}

Sacar bolita
program{
Sacar(Rojo)
}
Mover Bolita
program{
Mover(Este)
}
IrAlBorde
program{
IrAlBorde(Norte)
}
Repetir una operación
program{
repeat(3) {
Poner(Rojo) //tener en cuenta casos de borde dejar la última acción
} //fuera del repeat
Parámetros
procedure Poner3(color){
repeat(3){
Poner(color)
}
}
program{
Poner3(Negro)
Poner3(Rojo)
}
Mas parámetros
procedure PonerN(cantidad, color){
repeat(cantidad){
Poner(color)
}
}
procedure MoverN(cantidad, direccion){
repeat(cantidad){
Mover(direccion)
}
}
Parámetros como expresiones
procedure PonerSuma(x, y){
PonerN(x + y, Rojo)
}
Mover opuesto
procedure PonerAl(direccion, color){
Mover(direccion)
Poner(color)
Mover(opuesto(direccion))
}
Sacar todas de un color (usando el contador de bolitas nroBolitas)
procedure SacarTodas(color){
SacarN(nroBolitas(color), color)
}
If y operador not
procedure AsegurarUnaBolitaVerde(){
if(not hayBolitas(Verde)){
Poner(Verde)
}
}
If else
procedure PrenderOApagarLuz(){
if(hayBolitas(Negro)){
Sacar(Negro)
Poner(Verde)
}else{
Sacar(Verde)
Poner(Negro)
}
}
Funciones
function rojoEsDominante(){
return (nroBolitas(Rojo) > todasExcepto(Rojo))// retorna true o false
}
&& conjunción , and
function esLibreCostados(){
return( puedeMover(Este) && puedeMover(Oeste))
}
|| disyunción, or
function hayAlgunaBolita(){
return (hayBolitas(Negro) || hayBolitas(Azul) || hayBolitas(Rojo) || hayBolitas(Verde))
}

También podría gustarte