Forums/ The 7th Continent/ Stratégies & Tactiques17 messages
Posté - Edité
Le sujet principal est sur tric trac :
https://www.trictrac.net/forum/sujet/projet-cartographie-du-7eme-continent?page=1
il y a un doublon sur BGG :
https://boardgamegeek.com/thread/1828711/spoilprojectmap-7th-continent

J'en suis à environ 73 % des cartes répertoriées, une fois la base de donnée constituée, il faudra que je puisse améliorer le rendu de mon interface pour retranscrire au mieux les propriétés de la base de donnée qui y correspondent.

Je remet une vidéo d'un prototype de ce que j'ai fait sur le P&P (j'ai un peu amélioré depuis):


Et une petite image en cours de la carte simplifiée (il y a plus d'informations dans la base de données)


J'avais également commencé une série d'articles sur TT à propos de la méthode pour cartographier.

Le 7ème continent : carnet du cartographe, partie 1

Le 7ème continent : carnet du cartographe, partie 2

EDIT : j'ai passé le cap symbolique des 1000 cartes répertoriées et des 75% des cartes traitées. Ça représente pour l'instant 3500 nœuds et 12 000 relations.

EDIT 2 : Encore les 25 cartes 050 et j'aurais répertorié toute la boîte de base. (il ne reste plus que 261 cartes à faire).
Posté
J'ai hâte de voir comment l'on pourra utiliser ton incroyable boulot ! :w00t::thumb_up:
resource_fire Firebird resource_fire (ma ludothèque)
T7Continent : icon_succes DV, OG, LG --- icon_curse SI, [CD+SI] --- icon_success-left Histoire, Pénitence, Funéraille --- card_type_temporary_event [SI+TS]
T7Citadel : card_type_temporary_event
Posté
Et voilà, c'est bon pour la boîte base, les cartes 1 à 1027 sont répertoriées plus une centaine d'autre, ça fait presque 83 %. Si j'arrive à avancer à un bon rythme, ce sera fini d'ici 1 à 2 semaines.
Posté
83% du jeu de base + extensions du KS1 (all-in), c'est ça ?
resource_fire Firebird resource_fire (ma ludothèque)
T7Continent : icon_succes DV, OG, LG --- icon_curse SI, [CD+SI] --- icon_success-left Histoire, Pénitence, Funéraille --- card_type_temporary_event [SI+TS]
T7Citadel : card_type_temporary_event
Posté
Oui, 83% des 1355 cartes (KS1 all-in)
Posté
T'es un grand malade! Ou un grand passionné... des fois la limite n'est pas bien nette :thumb_up:

Quand je lis carte interactive je pense à quelque chose comme ça:
http://www.somethinglovely.net/bdo/#!/
Dans cet exemple, il y a une carte (image) de fond, sur laquelle on peut zoomer. Les icônes dessus peuvent être filtrés pour faire apparaitre ou disparaitre certains d'entre eux grâce aux filtres à gauche.
Prévois-tu in fine de faire un outil du genre?

Pour éviter les spoils, il faudrait tout masquer et permettre à l'utilisateur de faire apparaitre les éléments de terrain (ou actions dispo) en cliquant dessus (c'est juste une idée, je suis pas sur que ce soit vraiment faisable et pratique ensuite pour l'utilisateur). Par exemple en cliquant sur un numéro caché on pourrait remplacer la carte terrain en question. Autre exemple, en cliquant sur l'icone :card_pick: présente sur une carte terrain, on ferai apparaitre la carte portant ce numéro.

Tu signales dans ton article partie 1 qu'une personne a déjà réalisé le travail (lien vers BGG) mais je n'ai pas regardé (pour ne pas me faire spoil) donc je ne suis pas bien sur que ce soit vraiment interactif.
KS2 15099 | Chant du Cristal: :icon_curse::icon_succes: | Déesse Vorasse :icon_curse::icon_curse::icon_succes: | Offrande aux Gardiens :icon_curse: |
Posté
Hélas (ou pas !), comme le sait déjà Eolindel, Serious Poulp ne souhaite pas que soit diffusés des scans des cartes, pour des raisons assez évidentes. Même nous, sur le site officiel, avons dû faire sans.

En revanche, le décorticage du jeu, ses mécanismes et toutes les relations entre cartes, ce n'est pas un soucis du tout. Au contraire, SP est très fier de voir son jeu approprié par la communauté !
La cartographie de Eolindel trouvera certainement son utilité même sans le confort des illustrations officielles. :-):thumb_up:
resource_fire Firebird resource_fire (ma ludothèque)
T7Continent : icon_succes DV, OG, LG --- icon_curse SI, [CD+SI] --- icon_success-left Histoire, Pénitence, Funéraille --- card_type_temporary_event [SI+TS]
T7Citadel : card_type_temporary_event
Posté
Oui je trouve ça très intéressant également! Mais quelle quantité de travail!
Bon courage à lui pour la finalisation!
KS2 15099 | Chant du Cristal: :icon_curse::icon_succes: | Déesse Vorasse :icon_curse::icon_curse::icon_succes: | Offrande aux Gardiens :icon_curse: |
Posté - Edité
Pour l'instant, j'en suis surtout au remplissage de la base de données et pas encore à la phase d'exploitation.

J'ai pour l'instant deux vues principales :
- Une par carte qui pointe les interactions directes (celle de la vidéo youtube)

- Une globale qui donne une cartographie complète des cartes et leur interaction (les images statiques très denses avec les numéros de carte sur fond jaune et vert)

Ce sont encore des prototypes, comme je découvre le langage de la base de donnée et le langage de la représentation de la base en simultané, (sans être informaticien de métier) j'avance petit à petit.


Pour l'exploitation, je pense surtout que je pourrais faire des vues qui correspondent à certaines questions précises que vous vous poserez/que je me pose ... et que je serais capable de programmer (par exemple, les algorithmes d'optimisation de parcours, je ne suis pas sur de pouvoir aller aussi loin que souhaité, mais je pourrais au moins le faire en nombre de carte et donner des nombres de succès requis associés). Il faut bien voir que la densité du graphe est très élevée et que du coup, on tombe vite dans des données de traitement qui peuvent être assez longue, même si à priori, la solution technique que j'ai choisie est adaptée à ce genre de problèmes.

Dans les choses envisageables par exemple, c'est de donner des "walkthrough" pour chaque malédiction en indiquant les points de passage obligés et des manières d'y aller.

Mais la carte complète avec toutes les informations, je ne pense par exemple pas être en mesure de la tracer complètement en une fois tellement le graphe est dense (3000 nœuds et 13000 lien entre eux, c'est vraiment beaucoup !).

Je pense de toute façon essayer de publier les données sous forme accessible à tous (sous forme de lien et d'interaction comme stocké dans ma base, pas les éléments du jeu en version numérique) afin de voir si d'autres peuvent en tirer quelque chose. Mais c'est dense, pas documenté et le fichier sous forme pseudo lisible fait déjà 13000 lignes.

Pour vous donner un exemple, la carte A0325 (la première de la déesse vorace) ressemble à ça en forme pseudo lisible qui est la forme sous laquelle je tape les cartes :
//CARTE A0325 var Card={'type':'Card','properties':{},'Actions' : [],'Effects' : [],'Builds':[]}; Card.properties.hid='A0325'; Card.properties.number='010'; Card.properties.resources=['stone']; Card.properties.move=['move',1,0]; Card.properties.card_type='adventure'; Card.properties.card_trait='terrain'; Card.Actions.push(basicAction(Card.properties.hid,'east','investigate',1,0,'005')); Card.Actions.push(linkZone(Card.properties.hid,'west','z1','009')); Card.Actions.push(linkZone(Card.properties.hid,'north','z1','007')); write_card(Card);


et la requête en langage machine pour insérer la carte à partir du code ci-dessus donne ça (sans chercher à l'optimiser) :
CREATE (:Card {hid : "A0325",origin : "core",number : "010",resources : "stone",move : "move,1,0",card_type : "adventure",card_trait : "terrain",colorName : "green",color : "#5a772e"});
MATCH (n:Card {hid : "A0325"}),(q:Origin {hid : "core"}) CREATE (n) -[:COMES_FROM {fr : "Viens de",en : "Comes from"}]->(q);
MATCH (n:Card {hid : "A0325"}),(q:Number {hid : "010"}) CREATE (n) -[:CARD_NUMBER_IS {fr : "Numéro de carte",en : "Card number"}]->(q);
MATCH (n:Card {hid : "A0325"}),(q:Resources {hid : "stone"}) CREATE (n) -[:HAS {fr : "a la resource",en : "has the resource"}]->(q);
MATCH (n:Card {hid : "A0325"}),(q:Move {hid : "move,1,0"}) CREATE (n) -[:MOVE {fr : "Mouvement",en : "Movement"}]->(q);
MATCH (n:Card {hid : "A0325"}),(q:Card_type {hid : "adventure"}) CREATE (n) -[:CARD_TYPE_IS {fr : "Type de carte",en : "Type of card"}]->(q);
MATCH (n:Card {hid : "A0325"}),(q:Card_trait {hid : "terrain"}) CREATE (n) -[:CARD_TRAIT_IS {fr : "Facette de la carte",en : "Trait of card"}]->(q);
CREATE (:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"});
MATCH (n:Card {hid : "A0325"}),(q:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}) CREATE (n) -[:ACTION {fr : "Action",en : "Action"}]->(q);
MATCH (n:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}),(q:Position {hid : "east"}) CREATE (n) -[:POSITION {fr : "Position",en : "Position"}]->(q);
MATCH (n:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}),(q:Action_category {hid : "investigate"}) CREATE (n) -[:ACTION_TYPE_IS {fr : "Type d'action",en : "Type of action"}]->(q);
MATCH (n:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}),(q:Card_Number {hid : "c1"}) CREATE (n) -[:NB_CARDS {fr : "Nombre de carte à prendre",en : "Number of cards to pick"}]->(q);
MATCH (n:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}),(q:Stars {hid : "s0"}) CREATE (n) -[:NB_SUCCESS {fr : "Nombre de succès à avoir",en : "Number of stars to get"}]->(q);
MATCH (n:Action {hid : "A0325_005",position : "east",cardSuccess : "005",cardFailure : "",actionCategory : "investigate",nbCards : "1",nbStars : "0"}),(q:Number {hid : "005"}) CREATE (n) -[:SUCCESS {fr : "En cas de succès",en : "If success"}]->(q);
CREATE (:Action {hid : "A0325_009w"});
MATCH (n:Card {hid : "A0325"}),(q:Action {hid : "A0325_009w"}) CREATE (n) -[:ACTION {fr : "Action",en : "Action"}]->(q);
MATCH (n:Zones {hid : "z1"}),(q:Action {hid : "A0325_009w"}) CREATE (n) -[:REPLACE_BY {fr : "Remplacer par la carte",en : "Replace by the card"}]->(q);
MATCH (n:Action {hid : "A0325_009w"}),(q:Position {hid : "west"}) CREATE (n) -[:POSITION {fr : "Position",en : "Position"}]->(q);
MATCH (n:Action {hid : "A0325_009w"}),(q:Number {hid : "009"}) CREATE (n) -[:SUCCESS {fr : "En cas de succès",en : "If success"}]->(q);
CREATE (:Action {hid : "A0325_007n"});
MATCH (n:Card {hid : "A0325"}),(q:Action {hid : "A0325_007n"}) CREATE (n) -[:ACTION {fr : "Action",en : "Action"}]->(q);
MATCH (n:Zones {hid : "z1"}),(q:Action {hid : "A0325_007n"}) CREATE (n) -[:REPLACE_BY {fr : "Remplacer par la carte",en : "Replace by the card"}]->(q);
MATCH (n:Action {hid : "A0325_007n"}),(q:Position {hid : "north"}) CREATE (n) -[:POSITION {fr : "Position",en : "Position"}]->(q);
MATCH (n:Action {hid : "A0325_007n"}),(q:Number {hid : "007"}) CREATE (n) -[:SUCCESS {fr : "En cas de succès",en : "If success"}]->(q);


Dans les choses pas si simples, c'est de garder une représentation 2D de la carte qui respecte un positionnement orthogonal des cartes entres elles. Le fait d'avoir plusieurs exemplaires du même numéro rend par exemple le dessin d'une carte du 7ème continent impossible techniquement de manière rigoureuse, le mec de BGG a astucieusement contourné le problème. Il y a beaucoup de petites subtilités simple comme ça qui ont rendu assez complexe la conception de la modélisation du jeu.

Et au passage, je ne parle pas de la phase de correction des erreurs de données, il y en a clairement et les SP sont aussi moins contraints que moi car je dois coller à ma solution technique et ma modélisation alors qu'eux peuvent se permettre pas mal de libertés assez difficile à retranscrire sur le plan technique.. Autant j'ai l'intégralité des interactions entre cartes, autant je n'arrive pas à retranscrire l'intégralité du jeu.
Posté - Edité
Un petit 85 % avec le labyrinthe de glace, j'attaque le sanctuaire interdit. Pour le marais de l'épouvante, je verrais car je n'ai pas fait la malédiction. Par contre, pour les vers, la météo et la montre, je pense que je le ferai quand même. Il manquera aussi les cartes tric-trac.
Posté
C'est bon pour le sanctuaire interdit. 87,75% et 166 cartes restantes..
Posté
C'est bon pour les 1350 cartes du KS1 all-in !
Posté
Youhou ! Champagne ! 8-):thumb_up:

La relecture va être pénible par contre. Presque autant que celle qu'on dû faire Bruno et Ludo !
resource_fire Firebird resource_fire (ma ludothèque)
T7Continent : icon_succes DV, OG, LG --- icon_curse SI, [CD+SI] --- icon_success-left Histoire, Pénitence, Funéraille --- card_type_temporary_event [SI+TS]
T7Citadel : card_type_temporary_event
Posté
Pas tant que ça je pense, je suis justement en train de prendre les photos des cartes pour pouvoir checker en simultané les données de la base de données et celles des cartes sans avoir à physiquement regarder les cartes une par une. Pour les photos, j'en suis déjà à la A0695 et c'est relativement rapide (25 sec par carte pour la prise de photo). Par rapport au temps de rentrée qui se compte en dizaines voire centaine d'heures.
Posté
J'ai pris toutes les cartes de la boîte de base en photo, je vais pouvoir faire mes vérifications. Je vais aussi tenter de faire des pseudos rendus de carte et afficher certaines infos au passage.
Posté - Edité
Après une longue interruption en partie due au fait que neo4j nécessite java8 et pas java 11 pour tourner, je vais pouvoir ajouter les cartes du KS2. Du coup, il va falloir que je me lance dans les 577 nouvelles cartes :-(

J'ai des pistes pour demander des chemins optimaux et autre à la base de données, mais vu que c'est loin d'être trivial, je laisse ça de côté pour l'instant en me focalisant sur le fait de rentrer des cartes.
Posté
Je viens de tomber sur ton poste (heureusement sans douleurs)., sacré taf. Merci à toi et bonne continuation
Forums/ The 7th Continent/ Stratégies & Tactiques17 messages