Final Fantasy X - Alchimie de Rikku, c'est fini !

Ce topic permet d'afficher clairement les news qui sont sur le site.
Règles du forum
Ce topic permet à tous le monde de créer ses news. Celles-ci seront directement afficher sur le site lui même. C'est pourquoi chaque news devra être validée par un modérateur ou par l'administrateur avant que celle-ci n'apparaisse. Ne vous étonnez donc pas si votre news n'est pas visible immédiatement (elle le sera dans les minutes qui suivent !).

ATTENTION: Vous ne pouvez pas poster de sujet simple. Il vous faudra obligatoirement cocher la case "Annonce" (et non pas annonce globale) qui se trouve sous votre message pour que votre news soient acceptées !

Final Fantasy X - Alchimie de Rikku, c'est fini !

Message par Martial » 19 Août 2010, 01:44

Bonsoir à toutes et à tous ! :)

Vous le savez tous, j'ai décidé de consacrer cet été au remplissage de la section Final Fantasy X du site, car il en avait grand besoin. La fin des vacances est proche, et je n'arriverai certainement pas à compléter entièrement cette section, notamment au niveau de la solution qui prend bien trop de temps...

Cela dit, j'ai bien avancé, et pour preuve, je viens tout juste de terminer de liste les combinaisons possibles de l'overdrive de Rikku : Alchimie. Pour ceux qui ne connaissent pas le jeu, sachez qu'un combat, chaque personnage possède une jauge appelée la "jauge d'overdrive". Une fois pleine, elle permet au personnage en question d'effectuer une attaque beaucoup plus puissante que d'habitude. Ces overdrives sont, en plus, différents pour chaque perso. Alors que, par exemple, l'overdrive de Tidus lui permet d'asséner une ou plusieurs attaques physiques plus puissantes, celui de Lulu lui permettra de déclencher plusieurs sorts de magie noire à la suite. Pour Rikku, c'est un peu différent. Oui, elle peut, une fois sa jauge d'overdrive pleine, combiner 2 objets pour produire un effet absolument inédit et qu'il n'est possible d'avoir que comme ça. Il existe un total de 63 effets différents que l'on peut classer dans 8 catégories. Sachant qu'il y a 112 objets dans le jeu, il me fallait rentrer 6 272 combinaisons de ce style: Potion + Potion = Ultra Potion. :wacko:

Au départ, j'ai décidé de rentrer toutes les informations dans un fichier texte. Pourquoi ? Eh bien tout simplement parce que je pars toujours de ce prince: "Si les données sont statiques (une fois qu'on les a, on a pas besoin de les modifier), on utilise des fichiers textes, rien ne sert d'utiliser une base de données et de multiplier les requêtes SQL !". Ça ressemblait alors à ça:

Code : Tout sélectionner
Ultra Potion = 'Potion|Potion, Potion|Mégapotion, ...'


C'était pas humainement faisable et les risques d'erreur étaient vraiment importants. Un simple "Poiton" à la place de "Potion", et c'était foutu. Toutefois, j'avais déjà fait un petit système de recherche, et ça fonctionnait bien. Enfin, ça, c'était avant les vacances, depuis, ça a bien changé.

Vous n'êtes pas sans savoir que je suis parti pour 2 semaines dans un endroit paumé (j'entends par là "sans internet" :p). Si je vous en parle maintenant, c'est pas simplement parce que j'adore raconter ma vie, mais c'est aussi, car grâce aux 3-4h de train, j'ai pu coder en local un petit script pour m'aider dans cette tâche ardue des 6 272 combinaisons. Oui, cette fois-ci, j'ai décidé d'utiliser la base de données. J'ai commencé par rentrer la liste des 112 objets et j'ai créé deux tables pour l'overdrive de Rikku: une pour rentrer les 63 effets avec leur description, et l'autre pour enregistrer les combinaisons (Potion|Potion|Ultra Potion). Avant de remplir la table des combinaisons, il a fallu que j'insère l'ensemble des 63 effets. Comme la totalité des objets était dans la base de données, il m'était facile de ressortir leur nom. J'ai ainsi pu me servir de 3 listes déroulantes: une pour l'objet 1, une pour l'objet 2, et la troisième pour l'effet résultant.

Voici à quoi ça ressemblait:

alchimie.jpg


Pendant ces 2 semaines de vacances, j'ai pu, durant chaque temps mort, remplir la base de données à partir des tableaux du fichier PDF fourni par PiggyBack Interactive que voici:

alchimie_tableau_effets.jpg
Ce tableau était sans doute le plus pratique. Il donnait par effet les objets qu'il fallait combiner. C'est assurément lui que j'ai utilisé pour remplir la base de données, question d'organisation.

alchimie_tableau_combinaisons.jpg
Là, c'est le contraire: on a la liste des objets, et la réunion de 2 objets nous donne un effet. Un vrai bordel pour s'y retrouver O_o


(je tiens à signaler que ces screens ne sont que d'infimes parties des tableaux réels. Pour les trouver entièrement, il vous suffit de les télécharger sur la page de l'overdrive de Rikku: ici !)

À la fin des vacances, j'avais réussi à rentrer 1000 lignes ! C'était vraiment chiant, mais petit à petit, ça passait mieux. Puis 1000 combinaisons, ce n’était pas rien ! Un grand pas était franchi, j'approchais du but, il me restait plus qu'à faire la même chose... 6 fois O_o :pinch: :drapeau:

Puis d'un coup, je me suis réveillé ! Un bon informaticien n'a, en théorie, pas besoin de faire des tâches répétitives. Il s'arrange toujours pour contourner le problème et obtenir le même résultat plus rapidement. Certes, c'est ce que j'avais fait en utilisant la base de données plutôt que d'écrire à la main dans un fichier texte, mais ça n'était pas suffisant, il fallait penser un peu plus loin.

Puis en regardant bien, on voit clairement que les tableaux provenant du PDF sont extraits d’Excel. Ne serait-il pas possible de les récupérer tels quels ? Je pense que vous le savez déjà, mais il est impossible de copier puis de coller du contenu à partir d'un PDF, mais il existe des éditeurs qui ne sont pas forcément toujours payants. C'est la voie que j'ai utilisée, mais malheureusement, ça n'a pas donné de résultat concluant. Il faut savoir que le format PDF n'est pas un fichier image, mais que c'est l'un des formats qui s'en rapproche le plus. Ce qu'on voit dans un PDF, par exemple, c'est ce que l'on pourra voir sur une feuille si on décider de l'imprimer, avec la même mise en page. L'éditeur PDF, bien qu'il permette de copier et coller du texte, ne sélectionnait jamais le tableau en entier, seulement des moitiés de colonnes, voire pire... Ce n'était donc pas la solution.

Je n'ai cependant pas abandonné. Si on voit des tableaux Excel dans ce PDF, c'est sans doute qu'il est possible de les trouver au format XLS (extension des fichiers MS Excel). Mon premier réflexe fut d'aller voir sur le site officiel de PiggyBack Interactive, et là, qu'est-ce que je trouve ? Le fichier XLS ! Je n'ai même pas réussi à retrouver le fichier PDF O_o En tout cas, vous ne pouvez pas imaginer à quel point j'étais heureux ! :yahoo:

Maintenant, j'ai le fichier Excel, mais à quoi ça va me servir ? Eh bien mon but était de faire en sorte que j'ai un tableau à trois colonnes comme ceci:

Code : Tout sélectionner
Objet n°1 | Objet n°2 | Effet


Comme d'habitude quoi. Mais là, le classement n'était pas de ce type là. Il a donc fallu user d'un peu de logique et de beaucoup de macros. Mais ce fut rapide, même si c'est la première fois, ce n’est pas vraiment difficile à comprendre une fois qu'on sait comment programmer.

À partir de ces 3 colonnes, j'ai pu exporter le tout en HTML puis à coup d'expressions régulières et de Rechercher - Remplacer, j'ai pu atteindre le résultat que je voulais, un fichier texte de ce type là:

Code : Tout sélectionner
Potion|Potion|Ultra Potion
Potion|Mégapotion|Ultra Potion
...


Ensuite, c'était très simple. Grâce à PHP, j'ai pu lire le fichier ce fichier texte et effectué une requête SQL d'insertion dans la base de données. En quelques minutes, c'était torché ! O_o Si j'avais continué à rentrer les combinaisons avec les listes déroulantes, j'y serais certainement encore, et il y aurait eu de fortes chances que j'en ressorte avec quelques centaines de neurones en moins... :embarasse:

Bref, il ne restait plus qu'à coder le système de recherche. J'ai pensé à 2 choix: la fusion ou la fission.

La fusion permet à l'utilisateur de choisir dans la liste 2 objets de son choix, et, ainsi, de voir l'effet que produit leur combinaison. A savoir qu'il est possible de sélectionner qu'un seul objet. Dans ce cas, la liste des 112 objets qu'il est possible de fusionner avec l'objet choisi s'affiche, le tout avec les effets correspondants.

La fission, en revanche, vous permet de choisir un effet et vous montre toutes les combinaisons qui permettent d'y arriver.

Voilà, une grosse partie de cette section est terminée, et je suis vraiment soulagé ! Pour accéder à cette nouvelle page dont je vous ai parlé depuis tout à l'heure, cliquez sur le lien:


Pfiou, je ne pensais vraiment pas m'étaler autant... Moi qui voulais seulement dire que cette page était terminée, je n’ai pas pu m'empêcher de partir dans mon délire et vous raconter toutes mes mésaventures... Bof, ça me fera un souvenir au moins ^^

Bonne soirée ;)

PS1: Un module de téléchargement a aussi été mis en place. Désormais, à chaque fois que vous téléchargerez un fichier sur le site, l'équipe sera mise au courant et un compteur s'occupera de compter combien de fois a été téléchargé chaque fichier !

PS2: Je suis relà, pour ceux qui n'auraient pas suivi ! lol
L'important n'est pas de connaître mais de savoir trouver !
La gentillesse ou la franchise ? Que choisir ?
Vive les otakus !!
Retourner sur le site
Avatar de l’utilisateur
Martial
Administrateur
Administrateur
 
Message(s) : 2520
Inscription : 10 Nov 2006, 23:41
Localisation : Rambouillet
Meilleurs scores: 12

Re: Final Fantasy X - Alchimie de Rikku, c'est fini !

Message par Shaolan » 19 Août 2010, 10:24

Tu as osé avoir eu l'idée de tout saisir à la main ? Bouh l'informaticien ! XD

Dommage que je ne joue plus à FF X, car ça m'aurait bien servi
Avatar de l’utilisateur
Shaolan
Maitre
Maitre
 
Message(s) : 1710
Inscription : 25 Déc 2006, 21:37

Re: Final Fantasy X - Alchimie de Rikku, c'est fini !

Message par Amathlog » 19 Août 2010, 10:56

Ouha tu m'impressionnes :)
Beau boulot ;) et beau pavé aussi :p
Et sinon bon retour, même si c'est de courte durée (et oui rentrée dans 15 jours)
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2


Retour vers News

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)

cron