Here some thoughts about how to implement random maps:

What are your ideas? More rules? Change percentages? Other things to consider?

- Decide the game mode: Elimination (50%), Best score (50%)
- Decide the symmetry: reflectional vertical (10%), reflectional horizontal (10%), reflectional diagonal top left to bottom right (10%), reflectional diagonal top bottom left to top right (10%), rotational symmetry (40%), no symmetry at all (20% - unfair! - could be skipped if you don't like it)
- Decide rule set #1 - Bots of different teams
**can**be placed: only out of range of each other (34%), also within long range of each other (33%), also within mid range of each other (33%) - Decide rule set #2 - Bases can only be placed: within mid range of any bot of their team (80%), also out of range of bots of their team (20%)
- Decide rule set #3 - All map objects need a distance of 3 meters to each other
- Decide rule set #4?
- If best score map decide count of resources 1 (5%), 3 (10%), 5 (35%), 7 (35%), 9 (10%), 11 (5%)
- If best score map decide count of bases: 1 (75%), 2 (20%), 3 (5%)
- If elimination map decide count of bases: 0 (70%), 1 (30%)
- Decide count of bots: 3 (15%), 4 (30%), 5 (30%), 6 (15%), 7 (5%), 8 (5%)
- Decide if bots are placed in one group (50%), two groups (25%) or separately (25%)
- Decide if resources (beside the 1 resource that must be on the reflectional symmetry axe in the map mid in case of rotational symmetry) are placed in 1 group (50%), 2 groups (25%) or separately (25%)
- If bots or resources are considered to be placed as groups decide the geometrical form: line (50%), circle (50%), randomize the length of the line, the circumference of the circle and the orientation
- For each bot group select a random position [10..40][10..40] and place the bot group of the other team according to symmetry. If there are violations in any rule above. Reselect a random position until no rules are violated.
- For each resource group select a random position [10..40][10..40] and place the resource group of the other team according to symmetry. If there are violations in any rule above. Reselect a random position until no rules are violated.
- For each base select a random position [10..40][10..40] and place the base of the other team according to symmetry. If there are violations in any rule above. Reselect a random position until no rules are violated.

What are your ideas? More rules? Change percentages? Other things to consider?