I. Description
Version 1.1
Poids de l'archive : 8ko
Herobook est un interpréteur codé en python 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 est normalement compatible avec Windows, GNU/Linux et Mac. Cependant, n'ayant pas de quoi tester sur un autre support que Windows il est possible de rencontrer des bugs inattendus sur d'autres plateformes. Merci de me le signaler le cas échéant.
Voici un screenshot réalisé à partir d'un projet test :
II. Installation
Lien du programme
L'archive contient deux versions du programme, une première avec un template et une seconde avec un projet test (dont sont tirés les screnshots.
Le python étant un langage interprété il vous faudra installer la bibliothèque python :
Si vous êtes sur windows
Si vous êtes sur mac
Si vous êtes sur linux
Si vous êtes assez grand pour chercher vous-même
III. Utilisation
Voici un tutoriel écrit :
- Spoiler:
1. Faite 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:
-
# -*- coding: utf8 -*-
import HellStuff
##################################################################
##Création des fonctions
##################################################################
##Charge un fichier .txt et le retourne sous forme d'une liste (en utilisant les / comme séparation)
def load(a) :
a += ".txt"
ofi = open(a, "r")
return ofi.read().split("/")
##Met en forme le texte à afficher pour éviter les retours à la ligne au milieu d'un mot
def afficher(a) :
a = a.split("_")
for b in a :
HellStuff.autoRN(b)
c = input(i[0])
##Pour savoir si la page poitée existe
def exist(a) :
a += ".txt"
try :
ofi = open(a, "r")
return ("", True)
except :
return (i[5], False)
##Affiche des choix disponibles
def choice(a) :
b = 1
print("0. " + i[1])
for c in a :
c = c.split("§")
print (str(b) + ". " + c[0] + " " + exist(c[1])[0])
b += 1
##Demande de rentrer un entier entre deux points
def intOnlyBetween(mini, maxi) :
a = False
c = mini - 1
while not a or c < mini or c > maxi :
try :
print (i[2])
b = input()
c = int(b)
a = True
except :
pass
if not a :
print (i[3].format(mini, maxi))
elif c < mini or c > maxi :
print (i[3].format(mini, maxi))
a = False
return b
##################################################################
##Code du jeu
##################################################################
global i
i = load("vocab")
b = "MainPage"
while True :
room = load(b)
choix = room[1].split("_")
afficher(room[0])
choice(choix)
c = int(intOnlyBetween(0, len(choix)))
if c == 0 :
break
d = choix[c-1].split("§")
if not exist(d[1])[1] :
print (i[4])
else :
b = d[1]