CONDICIONES

JUGADOR

(jugador) está en nombreDeLugar
(jugador) no está en nombreDeLugar
zona (jugador) > númeroDeZona
zona (jugador) < númeroDeZona

OBJETOS

presente nombreDeObjeto
ausente nombreDeObjeto
lleva puesto nombreDeObjeto
nolleva puesto nombreDeObjeto
lleva nombreDeObjeto
no lleva nombreDeObjeto
nombreDeObjeto está en nombreDeLugar
nombreDeObjeto no está en nombreDeObjeto

VARIABLES

nombreDevariable = 0
nombreDevariable <> 0
nombreDevariable = número
nombreDevariable <> número
nombreDevariable > número
nombreDevariable < número
nombreDevariable = nombreDevariable
nombreDevariable <> nombreDevariable

PALABRAS

adjetivo = nAdj
adverbio = nAdv
preposicion = nPrep
nombre2 = nNom
adjetivo2 = nAdj

VARIOS

aleatorio > número
fuera de tiempo
confirmar sí o no

ACCIONES

INICIALIZACION

indicador <- cad
maximo número objetos y peso número

ENTRADA

analizar entrada
limpiar buffer de ordenes

MOVIMIENTO

comprobar movimiento desde nombreDeLugar
ir a nombreDeLugar

TIEMPO

esperar pulsación
esperar número 1/50s
temporizar número en modo número

ALMACENAMIENTO

almacenar
recuperar
almacenar en memoria
recuperar de memoria hasta nombreDevariable
reiniciar en nombreDeLugar

ASIGNACION Y EXPRESIONES

nombreDevariable <- sí/verdad/255
nombreDevariable <- no/mentira/0
nombreDevariable <- nombreDevariable + número / incrementar nombreDevariable en número nombreDevariable <- nombreDevariable - número / decrementar nombreDevariable en número
nombreDevariable <- número / asignar número a nombreDevariable
nombreDeVariable <- nombreDeObjeto / asignar nombreDeObjeto a nombreDevariable
nombreDevariable <- nombreDevariable
nombreDevariable <- nombreDevariable + nombreDevariable / sumar nombreDevariable a nombreDevariable / incrementar nombreDevariable en nombreDevariable
nombreDevariable <- nombreDevariable - nombreDevariable / restar nombreDevariable a nombreDevariable / decrementar nombreDevariable en nombreDevariable
nombreDevariable <- peso total de nombreDeObjeto
nombreDevariable <- peso total transportado
nombreDevariable <- aleatorio

IMPRESION

imprimir inventario
imprimir turnos
imprimir puntuacion
limpiar pantalla
imprimir cad fin de linea
imprimir fin de linea
imprimir nombreDevariable
imprimir nSis
imprimir objetos
imprimir objetos de nombreDeLugar
imprimir cad
imprimir modo número

FLUJO DE PROGRAMA

ejecutar proceso nP
ejecutar externo
imprimir descripción y salir
volver hecho
volver vale
volver no hecho
terminar

OBJETOS

repetir con los objetos de nombreDeLugar
coger nombreDeObjeto / auto
dejar nombreDeObjeto / auto
ponerse nombreDeObjeto / auto
quitarse nombreDeObjeto / auto
meter nombreDeObjeto en nombreDeLugar / auto
sacar nombreDeObjeto de nombreDeLugar / auto
crear nombreDeObjeto
destruir nombreDeObjeto
intercambiar nombreDeObjeto y nombreDeObjeto
mover nombreDeObjeto a nombreDeLugar
mover nombreDeObjeto a nombreDevariable
mover nombreDeObjeto a posicion de nombreDeObjeto
poner objeto en número
analizar objeto
dejar todo

VARIOS

pitar

------------------ E J E M P L O -------------------------------

/Respuestas

"inventario *"
	imprimir inventario

"toma inventario"
	imprimir inventario

"coge ticket"
	¿locPajaro = locJugador?
		¿ausente ticket?
			estadoPajaro <- 5
			volver no hecho

"saca todo de bolsa"
	repetir con los objetos de bolsa

"coge todo"
	repetir con los objetos de aqui

"saca * de bolsa"
	¿presente bolsa?
	sacar auto de bolsa
	volver hecho

"coge *"
	coger auto
	volver hecho

"deja todo"
	repetir con los objetos llevados

"pon correa a perro"
	¿lleva correa?
		¿locPerro = locJugador?
			estadoPerro <- 1
			destruir correa
			imprimir 'Confiado, el perro me deja atarlo con la correa.' fin de linea
			volver hecho

"mete * en bolsa"
	¿presente bolsa?
		meter auto en bolsa
		volver hecho

"deja *"
	¿jugador está en rama?
		analizar objeto
		¿objetoIndicado < 255?
			¿lugarObjetoIndicado = llevado?
				imprimir 'El _ cae al suelo al pie del árbol.' fin de linea
				poner objeto en alPieDelArbol
				volver hecho

"deja *"
	dejar auto
	volver hecho

"quita todo"
	repetir con los objetos puestos

"quita *"
	quitar auto
	volver hecho

"pon todo"
	repetir con los objetos llevados

"pon *"
	poner auto
	volver hecho

"redescribe"
	imprimir descripción y salir

"fin"
	¿confirmar sí o no?
		imprimir turnos
		terminar

"almacena en memoria"
	almacenar en memoria
	imprimir descripción y salir

"recupera de memoria"
	recuperar de memoria hasta ultimaVariable
	imprimir descripción y salir

"almacena"
	almacenar

"recupera"
	recuperar

"examina manzana"
	¿está manzana?
		imprimir 'La manzana está verde y jugosa.' fin de linea
		volver hecho

"examina bocadillo"
	¿está bocadillo?
		imprimir 'Es un bocadillo de jamón.' fin de linea
		volver hecho

"examina billete"
	¿está billete?
		imprimir 'El billete tiene impreso "E.M.T."' fin de linea
		volver hecho

"examina banco"
	¿jugador está en juntoABanco?
		imprimir 'El banco está firmemente atornillado a su base de hormigón.' fin de linea
		volver hecho

"mira en bolsa"
	imprimir 'En la bolsa hay:' fin de linea
	imprimir objetos de bolsa
	volver hecho

"mira"
	imprimir descripción y salir

"ata perro"
	nombreIntroducido <- correa

"ata correa a banco"
	¿jugador está en juntoABanco?
		¿posPerro = posJugador?
			¿estadoPerro = conCorrea?
				estadoPerro <- estadoPerro + 1
				imprimir 'Ato la correa al banco.' fin de linea
				volver hecho

"ata"
	imprimir '¿Atar qué a qué?' fin de linea

"desata perro"
	nombreIntroducido <- correa

"desata correa"
	¿jugador está juntoABanco?
		¿estPerro = atado?
			estPerro <- libre
			imprimir 'He desatado al perro del banco.' fin de linea
			crear correa
			coger correa
			volver hecho

"desata"
	imprimir '¿Atar qué a qué?' fin de linea

"di perro"
	¿locPerro = locJugador?
		ejecutar proceso hablarAPerro
		volver hecho

"di pájaro"
	¿locPajaro = locJugador?
		imprimir 'El pájaro pasa de mí.' fin de linea
		volver hecho

"di"
	imprimir '¿Con quién quieres que hable?' fin de linea
	volver hecho

"enciende linterna"
	¿jugador lleva linterna?
		intercambiar linterna y linternaEncendida
		volver vale

"apaga linterna"
	¿jugador lleva linternaEncendida?
		intercambiar linterna y linternaEncendida
		volver vale