Complete.Org: Mailing Lists: Archives: freeciv-ai: August 2004:
[freeciv-ai] (PR#9846) AI should count other players in it's territory
Home

[freeciv-ai] (PR#9846) AI should count other players in it's territory

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [freeciv-ai] (PR#9846) AI should count other players in it's territory
From: "Mateusz Stefek" <mstefek@xxxxxxxxx>
Date: Sun, 29 Aug 2004 00:40:15 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=9846 >

> [per - Sat Aug 28 17:52:04 2004]:
> 
> On Sat, 28 Aug 2004, Mateusz Stefek wrote:
> > This is improved version of James Camente's patch in PR#9006.
> > I think it's better to count units of allies too, because AI is too
> naive.
> >
> > I have tested it. With 3 units in ally's territorylove is about 50
> > (Enthusiastic)
> 
>     /* Reduce love by number of units in our territory.
> +     * AI is so naive, that we have to count it even if players are
> allied */
> +    pplayer->ai.love[aplayer->player_no] -=
> +      MIN(player_in_territory(pplayer, aplayer),
> +          pplayers_allied(aplayer, pplayer) ? 10 : BIG_NUMBER);
> 
> BIG_NUMBER here is pretty dumb. Use some lower and more sensible
> number
> instead, like, say, 50.
> 
>   - Per
Ok. There's also a better limit if players are allied
(diplomacy.love_incr - 1).
--
mateusz
> 
> 

Index: ai/advdiplomacy.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/advdiplomacy.c,v
retrieving revision 1.27
diff -u -r1.27 advdiplomacy.c
--- ai/advdiplomacy.c   30 Jul 2004 20:40:49 -0000      1.27
+++ ai/advdiplomacy.c   29 Aug 2004 07:38:24 -0000
@@ -707,6 +707,13 @@
       }
       pplayer->ai.love[aplayer->player_no] -= ai->diplomacy.love_incr;
     }
+    /* Reduce love by number of units in our territory.
+     * AI is so naive, that we have to count it even if players are allied */
+    pplayer->ai.love[aplayer->player_no] -=
+      MIN(player_in_territory(pplayer, aplayer),
+          pplayers_allied(aplayer, pplayer) ? 
+           ai->diplomacy.love_incr - 1 : 50);
+         
     /* Massage our numbers to keep love and its opposite on the ground. 
      * Gravitate towards zero. */
     pplayer->ai.love[aplayer->player_no] -= 

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