Bots and Simulations > Bot Tavern

The amazing Antbot

<< < (6/17) > >>

bacillus:
That's a whole lot of memory locations. I played around with the idea of these pheromone highways, but the paths could only be followed by individuals and not shred with others. Why remember places where there is no food? Maybe tracking the ant's position when coming back from food may help.

Numsgil:
It depends on how difficult it is to navigate.  If you were to add dozens of shapes to the world, for instance, than simply remembering where food is might not be enough, because you have a whole maze to navigate.

gymsum:

--- Quote from: bacillus ---That's a whole lot of memory locations. I played around with the idea of these pheromone highways, but the paths could only be followed by individuals and not shred with others. Why remember places where there is no food? Maybe tracking the ant's position when coming back from food may help.
--- End quote ---

Say the bot needs to maneuver around another hive, it is important that it remembers the waypoint to get around the hive, and not cause tensions. Since your ant bots are very good at being agressive, it is the best interest of your bots to remember important information such as how to avoid other hives and not infringe on their food collecting. The idea is so no matter what your bot decides to do, it will always have a return point. I have detailed the conditions more for the 20 waypoints, now it only counts to the timer when the bot is facing away from the hive, so you dont get overlaps in waypoints, and it uses a comparison for distance instead of timers to activate the intial timer of 200 cycles now reduced to 50. Every 200 botwidths could be recorded as safety points. You already have a complex mechanism for communication, its a matter of genetic language. ''I/O 7-X coordinate of last food sighting ''I/O 8-Y coordinate of last food sighting and I/O 3 are for commands of some sort. So I/O 3 allows your btos to say something meaning the 8 and 7 I/Os should be stored here, or whatever. Say you want the waypoints to be used by everyone, limit scout repoduction to one until the queen is given a highway, make all default births dormant for 30 cycles, so the queen can write the locations in their memory, having them all tie together to exchange the missing pieces will make this faster for the queen. Now you have 20 waypoints, where scouts and warriors can go, search for food, protect each other and maintain the perimeters near food. THe protocols for when and what btos communicate can be determined using I/O 2 since all types are there. Warriors and Scouts could exhange information on enemies and veggies to make sure both are taken care of for the queen, and I/O 3 could also be used as an override to make all bots active for war with I/O 7 and 8 giving them the coordinates of the enemy's last position, and it might be useful for I/O 9 to tell how long ago the enemy was spotted near the queen. THis information is vital, the bots could fan out to cover all possible locations of the enemy, and communicate locations with ties, a wall of ants if you will, all capable of moving for the queen. I like the idea of a super inteligent ant, even tho it will require 90 memory locations, this also means your bot will still do something with mutations later on; as the locations and values change, the bots will exhibit different behaviors as a result of it. Keep mutations chances very low in occurance, so it doesn't fall apart everywhere, that could be detrimental.

Ideally you would store 500 waypoints, but the genetic coding would have to be broken up since the customizable sysvars are sparatic. Other than that, you wouldn't need Slim Evo's bot id gene, its too big for this project, use something like;

cond
*.robage 0 =
start
40 .memloc store
0 .memval store
stop

cond
*.robage 32000 sub 2 mod 4
start
.memloc inc
.memval inc
stop

something for how a waypoint array counter would work wiht only a handful ogf smaller genes. for comparison purposes, make a gene to check that you dont overlap certain waypoint types, and check always enemy waypoints with all your waypoints to make decisions based on safety, or need for food.

bacillus:
I thought about this a while and came up with a reasonable solution: A block of sysvars for X and Y is set, the max and min values noted. A variable is used to control whether the location is incremented or decremented. It cycles through all its waypoints, telling other bots the coords and the waypoint number. So say the xpos starts at 900 and y at 930, the pseudocode would look something like this:
Xpos - > 900 cycle add
Ypos - > 930 cycle add
900 cycle add -- -> outX
930 cycle add -- -> outY
cycle -- -> outC
If control = 0 then increment cycle else decrement cycle

gymsum:
Ok, so that gives your bot a way to communicate valid waypoints between eachother, but you should think about adding a distanmce comparator to find the closet points. Since you'll also store several points leading to food, another comparison can be used to find the shortest, the most lucrative, and the greatest distance. Set Control to 1, for write, 0 for hold, and -1 for erase, you can also use the control as a multiplier. I'm going to tinker with some waypoint memory stores and recalls.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version