Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2002:
[Freeciv-Dev] Re: [RFC] Path finding implementation.
Home

[Freeciv-Dev] Re: [RFC] Path finding implementation.

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Gregory Berkolaiko <Gregory.Berkolaiko@xxxxxxxxxxxx>
Cc: Freeciv Development List <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: [RFC] Path finding implementation.
From: Raimar Falke <rf13@xxxxxxxxxxxxxxxxx>
Date: Wed, 31 Jul 2002 15:13:24 +0200

On Wed, Jul 31, 2002 at 01:11:59PM +0100, Gregory Berkolaiko wrote:
> > > in plain_map1 the only value of ECOT that plays a role is the forbidding 
> > > PF_IGNORE_COST.  Otherwise the sorting is done wrt the time to dest.  
> > > Fine.
> > > 
> > > Suppose we found that tile b is reachable from a in exactly one turn.  We 
> > > use plain_map2 to read off the path a->b.  But now the ECOT plays full 
> > > role and there is no guarantee that the selected path a->b will not take 
> > > longer than one turn.  So although b _is_ reachable in one turn the 
> > > recorded path will take longer.
> > 
> > This code
> > 
> >     if (pf_last_position(&possible_neighbour->path_from_prev)->turn >
> >         turn) {
> >       freelog(DISCARDED_DIRS_LOG_LEVEL, "  pos=(%d,%d): too long", 
> > tmp_pos.x,
> >               tmp_pos.y);
> >       continue;
> >     }
> > 
> > was put there to catch these.
> 
> But that would mean that there will not be any paths from a->b, when there 
> exists one, which is even worse.

I don't understand.

>  At least do
>   plain_get_path(plain_map1, ..., &possible_neighbour->path_from_prev)
> that'd give maybe a suboptimal but still possible path.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Sit, disk, sit. Good boy. Now spin up. Very good. Here's a netscape
  cookie for you. Fetch me some data. Come on, you can do it. No, not that
  data. Bad disk. Bad." 
    -- Calle Dybedahl, alt.sysadmin.recovery


[Prev in Thread] Current Thread [Next in Thread]