El lenguaje se llama Mancer, no es tipado (por ahora) y abusa de las memorias caché del cpu más de lo que me gustaría (por ahora). Pero a favor suya tiene la simplicidad de su escritura y de sus estructuras. Matemáticamente es un lenguaje torpe, pero no más que el ensamblador. Las órdenes se pueden introducir de dos formas, en castellano a modo [decir(algo), usar(esto)] o en un lenguaje minimalista basado en el inglés [wrt(texto), cp(función)] ésta doble sintaxis existe principalmente para no cerrar el programa a los usuarios hispanohablantes únicamente. Un repaso rápido del lenguaje:
Reglas:
- Cada línea debe de contener al menos un parentesis, es decir los dos caracteres ( y ), éste último indica al compilador el paso a la siguiente órden.
- El bloque a ejecutar al iniciar el programa es "main" (sobre mini so ccp)
- Las operaciones con datos se hacen siempre de una en una, el contenido del paréntesis indicará la variable en la que queda el resultado [1 + 1(var_res)], siempre debe de haber un espacio antes y otro después de los operandos.
- Si se manda sumar un número con un texto por error el valor del texto será interpretado como 0.
- Si se manda una operación boleana a una variable que no es boleana (0 o 1) ésta valdrá 0 si está vacía o 1 si contiene cualquier cosa.
- Todo dato se lee de una variable o definición y siempre, tras ser transformado se guarda en otra indicada.
- Todas las variables son públicas. (si, tampoco me gusta mucho a mi... quizás en la próxima capa)
- Toda orden no reconocida será ignorada
operadores matemáticos: +, -, *, /, &(concatenación),=(declaración)
operadores boleanos: and or not
ejemplo de código mancer (adivina el número en mancer):
v(val_yo,0)
v(val_jugador,0)
v(interruptor,0)
v(val_min,1)
v(val_max,100)
llamar(iniciar_juego)
>(iniciar_juego)
rnd(val_min,val_max,val_yo)
posicion(intentar)
pedir(estoy pensando un numero de 1 a 100 intenta adivinarlo!,val_jugador)
llamar(jugada,val_jugador)
saltar(intentar)
<()
Éste código (30 líneas) genera un programa escrito en TurboTronasm de 112 líneas, no es mucho, pero aún se puede optimizar. Antes de un mes estará todo disponible, intentaré también crear una zona en el hacklab virtual con información sobre el lenguaje y la herramienta.>(jugada)-(val_jugador)
val_jugador == val_yo(interruptor)
si(interruptor)
decir(ACERTASTE)
rnd(val_min,val_max,val_yo)
saltar(finjugar)
fin()
val_jugador > val_yo(interruptor)
si(interruptor)
decir(demasiado alto)
saltar(jugada_intentar)
fin()
decir(demasiado bajo )
posicion(jugada_intentar)
decir(INTENTA OTRA VEZ)
posicion(finjugar)
<()
editado: (La herramienta ya está disponible para la descarga.) descargar
No hay comentarios:
Publicar un comentario