Aquileo | Recent changes to Adaptation mechanismshttps://sourceforge.net/p/nullbot2100/wiki/Adaptation%2520mechanisms/Recent changes to Adaptation mechanismsenFri, 24 Feb 2012 08:03:02 -0000Aquileo | WikiPage Adaptation mechanisms modified by NoQhttps://sourceforge.net/p/nullbot2100/wiki/Adaptation%2520mechanisms/<pre>--- v2
+++ v3
@@ -15,6 +15,8 @@
This function figures out the parameters for **adaptationMatrix()**, calls it and then sets four variables based on its return value, RATE_AP, RATE_AT, RATE_AB, and RATE_AA respectively.
+This function is called by a timer defined in **eventStartLevel()**.
+
**produceTanks()**
This function makes factories produce tanks of one of the four classes in a ratio defined by RATE_AP, RATE_AT, RATE_AB, and RATE_AA.
</pre>NoQFri, 24 Feb 2012 08:03:02 -0000https://sourceforge.netdb9c32cf1ad4ba5ff95a2cb5c5884c72e4de5759Aquileo | WikiPage Adaptation mechanisms modified by NoQhttps://sourceforge.net/p/nullbot2100/wiki/Adaptation%2520mechanisms/<pre>--- v1
+++ v2
@@ -1,11 +1,34 @@
-NullBot contains a simple adaptation mechanism that makes desicions based on the following parameters of the current game situation:
-
-* How many oil derricks we control;
-* How many anti-tank droids we have;
-* How many anti-personnel droids we have;
-* How many anti-structure tanks we have;
-* How many anti-air tanks and defenses we have;
+**adaptationMatrix()**
+
+This function is the heart of the whole adaptation mechanism. This is a purely arithmetical function that returns the priorities for using anti-tank, anti-personnel, anti-building or anti-air tanks based on the following parameters of the current game situation:
+
+* How many anti-tank droids we already have;
+* How many anti-personnel droids we already have;
+* How many anti-building tanks we already have;
+* How many anti-air tanks and anti-air defenses we already have;
* How many tanks an opponent has;
* How many cyborgs an opponent has;
* How many defenses an opponent has;
* How many VTOLs an opponent has.
+
+**adapt()**
+
+This function figures out the parameters for **adaptationMatrix()**, calls it and then sets four variables based on its return value, RATE_AP, RATE_AT, RATE_AB, and RATE_AA respectively.
+
+**produceTanks()**
+
+This function makes factories produce tanks of one of the four classes in a ratio defined by RATE_AP, RATE_AT, RATE_AB, and RATE_AA.
+
+**produceCyborgs()**
+
+This function makes cyborg factories produce cyborgs of one of the two classes in a ratio defined by RATE_AP and RATE_AT.
+
+**addTankToSomeGroup()**
+
+This function adds a newly-produced tank or cyborg to one of the combat groups. The decision is based on how effective the tank will be against the enemy this group is ordered to fight against. This function calls **adaptationMatrix()**, giving it stats of a particular enemy rather than stats of all enemies at once.
+
+**doResearch()**
+
+This function is responsible for research. It uses its own built-in adaptation matrix, because it doesn't need to take into account the amounts of tanks we already have. It also decides how much fundamental research we require based on how much oil derricks we currently control, for it is known that on high-oil games fundamental research is usually much more important.
+
+In fact, **doResearch()** randomly picks one of the five research branches picked by the personality: fundamental research, anti-personnel weapon research, anti-tank weapon research, anti-building weapon research and anti-air weapon research, with probabilities defined by the adaptation algorithm. There is also a pre-defined primary research path that is a priority until it is completed.
</pre>NoQFri, 24 Feb 2012 08:02:26 -0000https://sourceforge.nete592a9979a4ee5a2516a4c8855707c68c49ca751Aquileo | WikiPage Adaptation mechanisms modified by NoQhttps://sourceforge.net/p/nullbot2100/wiki/Adaptation%2520mechanisms/NullBot contains a simple adaptation mechanism that makes desicions based on the following parameters of the current game situation:
* How many oil derricks we control;
* How many anti-tank droids we have;
* How many anti-personnel droids we have;
* How many anti-structure tanks we have;
* How many anti-air tanks and defenses we have;
* How many tanks an opponent has;
* How many cyborgs an opponent has;
* How many defenses an opponent has;
* How many VTOLs an opponent has.NoQFri, 24 Feb 2012 07:48:27 -0000https://sourceforge.net942d3aaa368941f13270fadd2fc877c7a124cfee