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

Pinaraf pinaraf at gmail.com
Mon May 21 00:57:43 CEST 2007


Then I'll revert my "fix" with a comment in the code to prevent any further
discussion about this :)


On 5/20/07, Jack Grahl <mnvl16 at yahoo.co.uk> wrote:
>
>
> It is half the distance because the ships travel two squares in 1 turn,
> IOW
> 2 squares = 1 'light years' =  1 turn.
> This is desirable behaviour in my opinion, otherwise if ships took twice
> as many turns to move the same distance the game would be much slower and
> more boring.
>
> ----- Original Message ----
> From: Pinaraf <pinaraf at gmail.com>
> To: Jack Grahl <mnvl16 at yahoo.co.uk>
> Cc: KDE games development <kde-games-devel at kde.org>
> Sent: Sunday, 20 May, 2007 9:59:46 AM
> Subject: Re: [Kde-games-devel] Konquest - patch for distance function
>
> 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 distancefrom (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.5code 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>
> > .
> >
>
>
>
> ------------------------------
> Yahoo! Mail is the world's favourite email. Don't settle for less, sign up
> for your free account today<http://uk.rd.yahoo.com/evt=44106/*http://uk.docs.yahoo.com/mail/winter07.html>
> .
>
>
> ------------------------------
> What kind of emailer are you? Find out today - get a free analysis of your
> email personality. Take the quiz at the Yahoo! Mail Championship<http://uk.rd.yahoo.com/mail/uk/taglines/default/championships/quiz/*http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk/>
> .
>
> _______________________________________________
> kde-games-devel mailing list
> kde-games-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-games-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20070521/f84d7082/attachment-0001.html 


More information about the kde-games-devel mailing list