Re: logically weird loop

Liste des GroupesRevenir à col advocacy 
Sujet : Re: logically weird loop
De : profesor.fir (at) *nospam* gmail.com (fir)
Groupes : comp.lang.c
Date : 21. Nov 2024, 12:13:00
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <9c3cf5cf0a38a15c6eb2a3d6086658b9dfa4774d@i2pn2.org>
References : 1 2 3 4 5
User-Agent : Mozilla/5.0 (Windows NT 10.0; WOW64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.19
fir pisze:
fir pisze:
void ProcessMicroturnsUntilHuman()
   {
      if( game_time < character[HUM].action_end)
      {
       while(game_time < character[HUM].action_end)
       {
           DispatchActions();
            game_time++;
       }
       if(game_time == character[HUM].action_end)     //**
          DispatchActions();
      }
>
   }
 so the loop code in simplification look like
       if( game_time < 300) //this is only to not alllow re-enter the loop if you reach turn 300
      {
       while(game_time < 300) //game time starts form 0
       {
           DispatchActions();
            game_time++;
       }
          DispatchActions();  //this runs for turn 300
      }
 im not sure if there is no bug here as when i press space and 300
turns into 600 then the dispatch on turn 300 would be executed
second time (?) (though in present state of things it wouldnt spoil
probably the things as dispatch if called on turn 300 starters would change the values and they woil not fiore twice
 
after considering that bug it seem that the game_time should always be increased after this dispatch to disallow making this dispatch twice co
i could maybe just
while(game_time <= character[HUM].action_end)
{
DispatchActions();
game_time++;
}
and on key handler
void ProcessKeyDown(int key)
{
if(game_time>character[HUM].action_end )
{
if(key==VK_LEFT) AddAction(HUM, 'movl', rand2(300,300));
         }
}
this roughly seem to work so probbaly this is simply more proper though i must rethink it yet

but it all show trubles in what should be 'simple' loop

Date Sujet#  Auteur
8 Apr 25 o 

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal