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

Jack Grahl mnvl16 at yahoo.co.uk
Sun May 20 17:31:18 CEST 2007


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 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.











       
Yahoo! Mail is the world's favourite email. Don't settle for less, sign up for your free
account today.





      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/ 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20070520/8ebc922f/attachment.html 


More information about the kde-games-devel mailing list