CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 12 Ago 2020 22:14

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 18 mensajes ]  Ir a página Anterior  1, 2
Autor Mensaje
NotaPublicado: 14 Dic 2011 20:32 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 27 Ene 2010 20:38
Mensajes: 1524
presi escribió:
¿Soy el único al que esta sintaxis le parece poco intuitiva y/o fácil de olvidar?

En la mayoría de sistemas esos atributos se definen con propiedades separadas (en este caso de tipo lista) identificadas con un nombre, ejemplo:

Código:
nombres=nombre1,nombre2,nombre3
adjetivos=adjetivo1,adjetivo2,adjetivo3
plurales=plural1,plural2,plural3


Lo que facilita a quién lee el código saber qué es exactamente lo que se está definiendo.

Se puede, la cadena es sólo parte de una plantilla para tener que escribir menos.

presi escribió:
Aparte si por alguna razón queremos cambiar esos atributos en tiempo de ejecución, con el sistemas de la cadena única, ¿se podría cambiar esa cadena?, ¿habría que parsearla para cambiar una palabra por otra? A priori lo veo más inflexible.

Se puede añadir, modificar o lo que se quiera. No tengo los datos aquí, pero vamos, está más que preparado para ello.

presi escribió:
Por supuesto si es por ser fiel al formato original de TADS, creo que no hay nada más que discutir pero no deja de sorprenderme que esto sea así en un sistema que tiene bastante buena fama.

TADS3 tiene la ventaja, o el inconveniente, de que tiene plantillas para generar todo tipo de objetos, amén de muchos otros atajos, lo que a veces vuelve el código un poco ilegible. Pero también se puede hacer a la antigua si se quiere, aunque una vez aprendido nadie lo hace, porque lleva más trabajo. No es un lenguaje a priori fácil, si alguien está buscando eso se equivoca de sitio. Aunque yo lo vea bastante más claro que inform :)


Arriba
 Perfil  
 
NotaPublicado: 14 Dic 2011 20:53 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 27 Ene 2010 20:38
Mensajes: 1524
Respecto a lo que preguntabas antes, extraído del fenomenal Learning TADS3 de Eric Eve:

Citar:
The second way we can adjust vocabulary at run time is through manipulating the
game’s dictionary. This will be of the intrinsic class Dictionary, and will usually be
called cmdDict. The two methods most useful for manipulating a Dictionary are:

● addWord(obj, str, vocabProp) – adds the string str to the dictionary as a
reference to the object obj associated via vocabProp (&noun, &adjective,
&plural, etc.). str can also be a list of strings. If we try to add a combination
that already exists, it’ll simply be ignored.

● removeWord(obj, str, vocabProp) – removes the association of str from obj
as vocabProp, where these parameters have the same meaning as in
addWord(). If the word association defined by the parameters does not exist in
the dictionary, calling this method has no effect.

For example, an alternative way of adding the vocabulary in our previous examples
would be to call cmdDict.addWord(fox, 'dead', &adjective);
cmdDict.addWord(vase, 'broken', &adjective); and cmdDict.addWord(bob,
'bob', &noun). If the fox had previously been described as 'lively' we might also
want to call cmdDict.removeWord(fox, 'lively', &adjective).

Vamos, más fácil imposible. Te pongo el "second way" porque puedes usarlo sin la cadena si ésta no te gusta.


Arriba
 Perfil  
 
NotaPublicado: 23 Dic 2011 03:45 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Comely escribió:
dddddd escribió:
Seguro que hay decisiones de diseño y ventajas en casos extremos (corner-cases) que sólo podremos entender conociendo la historía que llevó a esa sintaxis. Lo interesante sería saber si es flexible para castellano...

No conozco la historia que llevó a Michael a usar este formato (de hecho el original no es igual, ya que los adjetivos se colocan delante). Supongo que es el que le gustaba.


Lo que pasa es que esa sintaxis no es una sintaxis de parseado de los elementos de la cadena propiamente tales. Quiero decir que no es una sintaxis "estricta", por decirlo de alguna manera.

Esa sintaxis tan singular corresponde a un metalenguaje para describir "objetos de la aventura" utilizando pocas lineas de código. La sintaxis básicamente se corresponde con un "template". Un "template" describe la forma en que puede reducirse (y expresarse) el código de un objeto de la aventura, evitando así largas lineas de...

atributo = valor

... y los templates son programables. Eso le da una capacidad metalinguística bastante rica al TADS3, pero puede ser un poquito chocante para quien no esté acostumbrado (como es mi caso). xD

Y pues eso.

Saludos. :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 18 mensajes ]  Ir a página Anterior  1, 2

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM