Tinselcity

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
pensando-en-programar:diseno-de-tipos [2018/11/24 08:05]
flynn
pensando-en-programar:diseno-de-tipos [2018/11/29 06:46] (actual)
flynn consistencia
Línea 13: Línea 13:
 Tomemos el ejemplo de [[pensando-en-programar:​extras:​mastermind|Mastermind]]. Hemos identificado que existen varios elementos que manejaremos en nuestra solución: Fichas de colores, combinaciones de dichas fichas, fichas de pista, combinaciones de estas otras pistas, el concepto //partida// con sus 12 //turnos//. Poco más en el dominio del problema. En la interfaz seguramente tendremos alguna cosa más, como el tablero, quizá una clasificación de jugadores con el número de partidas o lo que queramos añadir. Por ahora nos centramos en el dominio del juego en sí mismo. Tomemos el ejemplo de [[pensando-en-programar:​extras:​mastermind|Mastermind]]. Hemos identificado que existen varios elementos que manejaremos en nuestra solución: Fichas de colores, combinaciones de dichas fichas, fichas de pista, combinaciones de estas otras pistas, el concepto //partida// con sus 12 //turnos//. Poco más en el dominio del problema. En la interfaz seguramente tendremos alguna cosa más, como el tablero, quizá una clasificación de jugadores con el número de partidas o lo que queramos añadir. Por ahora nos centramos en el dominio del juego en sí mismo.
  
-<wrap lo><​wrap hi>​Nota:</​wrap>​ Como sabemos en JavaScript el sistema de //tipos de datos// es bastante... digamos que //no es gran cosa//​((Sí,​ como un ornitorrinco)). Voy a poner una especie de definición genérica, en ningún lenguaje en particular. Dependiendo de las características de nuestro lenguaje real, adaptaremos esto con mayor o menos fortuna.</​wrap>​+<wrap lo><​wrap hi>​Nota:</​wrap>​ Como sabemos en JavaScript el sistema de //tipos de datos// es bastante... digamos que //no es gran cosa//​((Sí,​ como un ornitorrinco)). Voy a poner una especie de definición genérica, en ningún lenguaje en particular. Dependiendo de las características de nuestro lenguaje real, adaptaremos esto con mayor o menor fortuna.</​wrap>​
  
 <sxh pascal> <sxh pascal>
Línea 49: Línea 49:
 <sxh javascript>​ <sxh javascript>​
 class Pista { class Pista {
-    posicionados: ​integer(0..4)+    posicionados:​ 0..4; 
-    sinposicion: ​integer(0..4);+    sinposicion:​ 0..4;
     constructor(posicionados,​ sinposicion) {     constructor(posicionados,​ sinposicion) {
         if (posicionados + sinposicion > 4) throw DataRestrictionException("​Una Pista no puede sumar más de 4");         if (posicionados + sinposicion > 4) throw DataRestrictionException("​Una Pista no puede sumar más de 4");