Hellper
Messages : 179
| Sujet: Herobook Dim 21 Juin - 17:29 | |
| I. Description Version 1.0 Poids de l'archive : 1,63Mo Herobook est un interpréteur codé en ruby permettant de créer facilement un livre à embranchement sous forme numérique. Il est basé un système de pages et une syntaxe simple, gère la mise en forme et détecte automatiquement si un choix mène vers une page inexistante. La version actuelle utilise la console, mais les versions futures devraient inclure une GUI et de fait plus de possibilités. HeroBook disponible sur Windows. D'autres version sortiront plus tard pour GNU/Linux et Mac. Voici un screenshot réalisé à partir d'un projet test : II. Installation Lien du programme L'archive contient le programme avec un template (pour se faire une idée de comment ça fonctionne). III. Utilisation Voici un tutoriel écrit : - Spoiler:
1. Faites une copie d'un des dossiers de l'archive et renommez-le comme vous voulez 2. Ouvrez le dossier et retirez tous les fichiers texte. 3. Créez un fichier texte nommé "MainPage". 4. Écrivez dedans le contenu de votre première page et terminez-la par un /. N'utilisez pas de saut de ligne. 5. Si vous jugez votre texte trop long ou que vous voulez changer son rythme, vous pouvez le séparer en paragraphes en plaçant un symbole _ à chaque séparation. 6. Écrivez après le / les choix qui seront offerts au joueurs et séparez-les par un _. Évitez de proposer plus de 15 choix mais mettez-en au moins un. 7. Après chaque choix, insérez un | suivit d'un identifiant pour la prochaine page à charger. 8. Créez un autre fichier texte et donnez-lui le nom que vous voulez (aka l'identifiant nécessaire pour que l'interpréteur charge le fichier à partir d'un autre). 9. Écrivez dedans le contenu de la page. N'utilisez pas de saut de ligne. 10. Revenez à l'étape 5 et continuez autant de fois que vous le souhaitez.
IV. Code source - Code:
-
# encoding: UTF-8 def loadeur(nom) fichier = File.open("Pages/#{nom}.txt", "r").read.split("/") fichier end def afficher(texte) texte = texte.split("_") texte.each do |i| autoRN(i) puts $vocab[0] passage = gets end end def autoRN(chaine) if chaine.length < 80 puts chaine else caractere = 79 while not chaine[caractere] == " " caractere -= 1 end puts (chaine[0..caractere]) autoRN(chaine[(caractere+1)..-1]) end end def inputMinMax(min, max) inpute = min - 1 while not inpute.between?(min, max) inpute = gets.chomp.to_i if not inpute.between?(min, max) puts sprintf($vocab[3], min, max) end end inpute end def exist?(file) File.file?("Pages/#{file}.txt") end def existTell?(file) if File.file?("Pages/#{file}.txt") "" else $vocab[5] end end $vocab = File.open("Vocab/vocab.txt", "r").read.split("/") toload = "MainPage" while true page = loadeur(toload) texte = page[0] suite = page[1] afficher(texte) suite = suite.split("_") puts "0. #{$vocab[1]}" #~ suite.each do |i| #~ i = i.split("|") #~ end 0.upto(suite.length - 1) do |index| suite[index] = suite[index].split("|") puts "#{index+1}. #{suite[index][0]}" + existTell?(suite[index][1]) end while true puts $vocab[2] choix = inputMinMax(0, suite.length) if exist?(suite[choix-1][1]) || choix == 0 break else puts $vocab[4] end end if choix == 0 break else toload = suite[choix-1][1] end end
| |
|
Léo
Messages : 6241
| Sujet: Re: Herobook Lun 22 Juin - 16:03 | |
| Je ne pense pas un jour avoir l'utilité de ce genre d'outil, mais ça a l'air très sympa pour ceux que ça intéresse, bien joué ! | |
|
tfkmaster
Messages : 2011
| Sujet: Re: Herobook Lun 22 Juin - 16:04 | |
| Oh tiens je crois me souvenir d'avoir vu tes travaux là dessus sur le Funky Faudrais que je me re-penche sur mon truc en online (un jour peut-être) Tu bosses actuellement sur la version avec GUI ? Ou d'autres projets en cours ? | |
|
Hellper
Messages : 179
| Sujet: Re: Herobook Lun 22 Juin - 16:14 | |
| Léo : À vrai dire il existe des alternatives à mon truc bien plus performantes :F mais merci ^^
TFK : yep d'ailleurs j'ai aussi mis à jour sur la funky. Actuellement j'ai reécrit le programme en ruby parce que je sais pas convertir un script python en .exe alors qu'en ruby je sais faire. Actuellement je bosse sur l'encodage parce qu'en fait les fichiers .txt sont chargés en Ascii ce qui veut dire pas de caractères accentués :/ Pour la version avec GUI il faudra attendre encore pas mal de temps du coup ^^ | |
|
tfkmaster
Messages : 2011
| Sujet: Re: Herobook Lun 22 Juin - 19:35 | |
| Je vois, bonne chance du coup pour l'avancée du HeroBook | |
|
Hellper
Messages : 179
| Sujet: Re: Herobook Lun 22 Juin - 19:47 | |
| | |
|