[Inform 7] Un problème incompréhensible avec les heures

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[Inform 7] Un problème incompréhensible avec les heures

Messagepar StephaneF le Ven Déc 02, 2011 1:13 pm

Voilà ce qui est affiché dans mon jeu :

Une poubelle fermée, dans un coin.

Vous pouvez aussi voir poubelle ouverte.

23:00 >attendre une heure
Une heure passe...

Le tonnerre gronde , des éclairs illuminent le ciel.

0:00 >z
Le temps passe...

L'orage se déchaîne , des éclairs zèbrent le ciel.

Les cloches sonnent 12:00 AM.

0:01 >


Les cloches sonnent 12:00 AM, à .... minuit ???

Voici mon code :

Code: Tout sélectionner
At 12:00 AM :
if player is in DansVille1, say "Les cloches sonnent 12:00 AM.".


Nulle part ailleurs dans mon code, je n'ai la phrase "Les cloches sonnent 12:00 AM"

Le problème vient donc forcément de là ... mais je ne comprends pas !!!
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar StephaneF le Ven Déc 02, 2011 1:32 pm

A noter que même en changeant légèrement le truc :

Code: Tout sélectionner
At 10:59 am: say "Les cloches sonnent onze heures du matin.".
At 11:59 am: say "Les cloches sonnent midi.".
At 12:59 am: say "Les cloches sonnent treize heures.".


ça donne la même chose :

23:00 >attendre une heure
Une heure passe...

Les cloches sonnent minuit.

0:00 >encore
Une heure passe...

Les cloches sonnent treize heures.

1:00 >
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar Eriorg le Ven Déc 02, 2011 3:18 pm

C'est normal : c'est bien comme cela que fonctionne le système d'heures avec AM et PM qu'utilisent les Anglais et Américains (voir cette page de Wikipédia, par exemple). Les heures "AM" sont avant midi (minuit inclus) et les heures "PM" après midi (midi inclus), ce qui fait qu'on passe :

* de 11 h du matin (11h AM) à midi (12h PM) puis 13 h (1h PM), etc.
* de 23 h (11h PM) à minuit (12h AM) puis 1 h du matin (1h AM), etc.
Avatar de l’utilisateur
Eriorg
Grand Ancien
 
Messages: 856
Inscription: Jeu Déc 14, 2006 8:03 am
Localisation: Suisse

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar StephaneF le Ven Déc 02, 2011 3:22 pm

merci .. j'ai le cerveau qui me coule par les oreilles et je ne suis pas sûr de tout saisir entièrement, là, mais tu dois être dans le vrai ..

sinon, quelqu'un a une méthode pour gérer le passage des jours, dans le jeu ?

histoire de pouvoir indiquer au joueur " jour 1 , jour 2 , jour 3 " , etc

et prévoir des événements dans le temps, à plusieurs jours de distance, aussi ...
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar Otto Grimwald le Sam Déc 03, 2011 8:20 am

Un exemple possible, à adapter à ton cas :

Code: Tout sélectionner
DeuxiemeJour is a scene. DeuxiemeJour begins when PremierJour ends.

TroisiemeJour is a scene. TroisiemeJour begins when DeuxiemeJour ends.

QuatriemeJour is a scene. QuatriemeJour begins when TroisiemeJour ends.

CinquiemeJour is a scene. CinquiemeJour begins when QuatriemeJour ends.
CinquiemeJour ends when journee ends.

etc.

Ending the day is a rulebook.

Ending the day rule:
   now the player is not asleep;[par exemple]
   if today is 5
      begin;   
[ta règle spéciale pour ce jour si besoin]   
      end if;
etc.
            
When PremierJour ends:
   now today is 2;
   follow the ending the day rules.
   
etc.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar StephaneF le Sam Déc 03, 2011 8:35 am

Merci pour cette idée de " scènes ".

Par contre dans ce code tu ne précises pas ce qui détermine le passage d'un jour à l'autre, or c'est tout mon problème. Il faut bien qu'il y ait une sorte de " sablier " au bout duquel le changement s'opère (que ce soit de " scènes " , ou juste d'un changement de variable du genre Day1, Day2, d'ailleurs)

A priori je pars donc là dessus

Code: Tout sélectionner
PremierJour is a scene. PremierJour begins when play begins.
When PremierJour begins : now Today is 1.

Every turn during PremierJour, say "Premier jour.".

PremierJour ends when Today is 1 for more than 1140 turns.

DeuxiemeJour is a scene. DeuxiemeJour begins when PremierJour ends.
When DeuxiemeJour begins : now Today is 2.

Every turn during DeuxiemeJour, say "Deuxieme jour.".


Mais là, problème : en stipulant que c'est le nombre de tours qui détermine le passage du temps (si l'on admet qu'un tour égale une minute), on fausse le truc qui le joueur décidé de taper 8 fois " attendre trois heures ". On aura 4 tours, pour 24 heures d'attente, et le basculement d'un jour à l'autre ne se fera pas.

Certes, il est possible de décréter que

Code: Tout sélectionner
Carry out waiting for three hours:
increase turn count by 180.


... mais s'il décide d'attendre 42 minutes, puis 56, puis 12, puis 8 ?

Il faudrait une formule du genre

Carry out waiting for M minutes:
increase turn count by M.


Si ce n'est que celle-ci ne fonctionne pas. Tu aurais une idée de la formule qui marcherait ? J'avoue n'avoir pas l'esprit assez mathématique pour ça ...
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar Otto Grimwald le Sam Déc 17, 2011 11:49 am

je ne vois pas trop, à part établir un comptage de tours parallèle (nommé, je sais pas, tics ou moments), que tu peux calquer sur des minutes, des heures ou des secondes pour plus de précision, tu décrètes par exemple que tous les tours ça fait 30 moments, toutes les heures ça fait 3600 moments, si le joueur attend 2 heures ça fera 7200 moments etc

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: [Inform 7] Un problème incompréhensible avec les heures

Messagepar StephaneF le Dim Déc 18, 2011 1:40 am

c'est ce que j'ai fait, oui ...

en allant jusqu'à 30 jours de jeu ... ça laisse de la marge :D
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron