[Kde-games-devel] Konquest - patch for distance function

Gustavo Moura gugario at gmail.com
Sun May 20 02:03:28 CEST 2007


Hey,

I know there is probably some basic detail I'm overlooking....  But is
there a specific reason for the /2 in the end of the distance
function?  Isn't the distance between (0,0) and (1,1) sqrt(2)?
Anyways, Konquest is great!  Keep up the good work!

Gustavo

On 5/19/07, Pinaraf <pinaraf at gmail.com> wrote:
> Hi
>
> I'm maintaining Konquest (ok, problem is : I don't really know what to
> do...)
> I started maintaining it for KDE4 only, I never looked at the KDE 3.5 code
> and honestly I don't want to, I think it'd be a great waste of time to
> backport the changes : scalable graphics (even without svg), better user
> interface, better AI...
> The AI patch has been integrated in KDE4, and it was a shame it wasn't
> applied before in KDE3.5.
> The distance computation code in KDE4 is the following :
>     Coordinate  diff = p1->sector()->coord() - p2->sector()->coord();
>     return sqrt( double( ( diff.x() * diff.x() )
>                          + ( diff.y() * diff.y() ) ) ) / 2;
> And it's mathematically correct. The distance between two points is half the
> square root of the sum of square differences... (hard to explain)
> If you have two points, (0, 0) and (1, 1). The distance between them is
> sqrt(2)/2
> With your computation code, it's 1 ==> there is no difference between going
> to (1,0), (0,1) and (1,1)
>
> Also please before modifying Konquest : look at the KDE4 version.
> I don't think it's worth the effort of maintaining the KDE 3 version
> considering that KDE3 end is near, most distributions are now packaging KDE
> 4 parts (for instance Suse 10.3 will include Kdegames 4...), and KDE 4 games
> are just great.
>
> Of course, I'm open to any suggestion on Konquest, and the same apply for
> other kde games. But for konquest, please... don't care about the KDE 3
> version, I don't want to play with that code :p
>
>
>
> On 5/20/07, Jack Grahl <mnvl16 at yahoo.co.uk> wrote:
> > Hi there,
> > I've written a modification to the 'distance' function in Konquest, which
> calculates the distance between planets. The new function is essentially the
> same, but changes the order of operations to better conserve accuracy. The
> accuracy isn't critical since the number of turns ships take to travel
> between planets is obviously an integer. However the new function is more
> understandable (when using the ruler) and easier to estimate by eye (since
> it is closer to usual distance in the plane). Of course this changes the
> strategy, but not critically since the relative distances of the planets are
> more important than their layout in the plane.
> > I was also wondering whether this game is being actively maintained at the
> moment. Someone submitted a nice patch several years ago which improved the
> AI for the game and would have simplified improving it further, by
> abstracting it from the core game engine. This patch doesn't seem to ever
> have been applied. There are also several more modifications to this game
> I'd like to do gradually - mainly to do with useability. Perhaps someone
> could let me know what the situation is?
> > Best wishes,
> > Jack Grahl
> >
> >
> > --- kdegames-3.5.5/kdegames-3.5.5/konquest/gamecore.cc
> 2007-05-19 21:26:38.000000000 +0100
> > +++ kdegames-3.5.5-dist/kdegames-3.5.5/konquest/gamecore.cc     2005-09-10
> 09:18:23.000000000 +0100
> > @@ -49,10 +49,10 @@
> > double
> > CoreLogic::distance( Planet *p1, Planet *p2 )
> > {
> > -    int k = (p1->getSector().getRow() - p2->getSector().getRow());
> > -    int l = (p1->getSector().getColumn() - p2->getSector().getColumn());
> > +    int k = (p1->getSector().getRow() - p2->getSector().getRow()) / 2;
> > +    int l = (p1->getSector().getColumn() - p2->getSector().getColumn()) /
> 2;
> >
> > -    return (sqrt(double((k*k) + (l*l))) / 2);
> > +    return sqrt(double((k*k) + (l*l)));
> > }
> >
> > double
> >
> >
> >
> >
> >
> >
> ___________________________________________________________
> > Yahoo! Answers - Got a question? Someone out there knows the answer. Try
> it
> > now.
> > http://uk.answers.yahoo.com/
> > _______________________________________________
> > kde-games-devel mailing list
> > kde-games-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-games-devel
> >
>
>
> _______________________________________________
> kde-games-devel mailing list
> kde-games-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-games-devel
>
>


More information about the kde-games-devel mailing list