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

Pinaraf pinaraf at gmail.com
Sun May 20 10:59:46 CEST 2007


Hi

The problem now is : why is it half the euclidian distance ? Honestly, I
don't remember...
The distance==0 problem is different. If you divide by two, you get 0
between (0,0) and (1,1) because 1/2 and 1/2 are 0 when converted to an
integer...

On 5/20/07, Jack Grahl <mnvl16 at yahoo.co.uk> wrote:
>
> Hi Pinaraf,
> Glad to hear that you are maintaining Konquest.
> The patch that I sent you was the wrong way around! It should have
> replaced the code where you divide by 2 half way through the calculation,
> with dividing by two only at the end. According to what you told me, this
> modification has already been done. The older version of the game that I
> have actually does have the distance function such that the distance from
> (0,0) to any of (1,0), (0,1) and (1,1) is zero!
> Just to make things clear, the current function is half the correct
> Euclidean distance, or the distance if the unit is taken as being two grid
> squares.
> I'm pleased that the AI patch was also included. Sorry to bother you with
> comments about stuff that has already been fixed. Clearly I should get hold
> of the KDE4 version, and get back to you if there are any more improvements
> to be made.
>
> Best wishes, and thanks for getting back to me so quickly
> Jack Grahl
> ----- Original Message ----
> From: Pinaraf <pinaraf at gmail.com>
> To: KDE games development <kde-games-devel at kde.org>
> Cc: Jack Grahl <mnvl16 at yahoo.co.uk>
> Sent: Sunday, 20 May, 2007 12:52:45 AM
> Subject: Re: [Kde-games-devel] Konquest - patch for distance function
>
> 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
> >
>
>
>
> ------------------------------
> Web email has come of age. Don't settle for less than the All New Yahoo!
> Mail<http://us.rd.yahoo.com/mail/uk/taglines/gmail_com/nowyoucan/web_mail/*http://us.rd.yahoo.com/evt=40566/*http://uk.docs.yahoo.com/nowyoucan.html>
> .
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20070520/2b5ae82d/attachment-0001.html 


More information about the kde-games-devel mailing list