| Deutsch English Français Italiano |
|
<9c3cf5cf0a38a15c6eb2a3d6086658b9dfa4774d@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail
From: fir <profesor.fir@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: logically weird loop
Date: Thu, 21 Nov 2024 12:12:56 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <9c3cf5cf0a38a15c6eb2a3d6086658b9dfa4774d@i2pn2.org>
References: <0e1c6d2e74d44a715bf7625ca2df022d169f878a@i2pn2.org>
<vhl32r$66a2$1@dont-email.me>
<df2c4dd068f2eb05132d61d12b37228faa46dffe@i2pn2.org>
<fbe6358f0891b9257d731a66633b80c2b31606dc@i2pn2.org>
<46766e2699a76a0336d5d49c442a2b2de2964070@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Nov 2024 11:13:00 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="3479647"; mail-complaints-to="usenet@i2pn2.org";
posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:91.0) Gecko/20100101
Firefox/91.0 SeaMonkey/2.53.19
In-Reply-To: <46766e2699a76a0336d5d49c442a2b2de2964070@i2pn2.org>
X-Spam-Checker-Version: SpamAssassin 4.0.0
Bytes: 3039
Lines: 62
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