Battlecode 2014 Team
Final submission is teams/team050
Battlecode 2014 Team
License: Other
If a pastr/nt dies, clan doesn't know to rebuild it.
make hq compute especially during early turns
Once the scrim server is set up, we will want to know which bots to not include for certain. Also, it would be helpful to have a description of where each bot leaves off
team050 v donothin on seige
Create a continuously running scrimmage server to help evaluate our bots
We should not necessarily be pulling in as fast as we do
Consider this conundrum:
team050 v doNothing on siege
COMPARED TO
team050 v pastr_attacker on siege
against doNothing, bugnav works normally, but against pastr_attacker, they clump in a corner because they are attracted to the enemy's radio transmissions.
We need to decide what the expected behavior is for attacking on enemy radio transmisisons.
We should return a map if the target is a coarse match, not just exact match
Port and improve the map editor tool
Should terminate bug if it gets too far off course or loops
This issue also includes reinforcing the defense units when they die and the clan logic to create raiders after the defender clan is full
create a fibonacci heap or something similar to improve dijkstra
see if that could help. at least we should be doing some kind of memory of what has been seen to help other robots
Naive first implementation was at about 200 turns to compute 30x30, the optimized fibheap was finishing at turn 55, the current "stringHeap" finishes on round 31 with about 9 of those rounds being from sensing the map and 2 from initialization that I can avoid by compiling properly.
So it runs in ~20 turns now. I have not checked correctness in a while, but if it is, I still see some improvements possible. This if it works would be a candidate for general navigation of cowboys if it got a little faster.
[java] [A:SOLDIER#3642@868] java.lang.ArrayIndexOutOfBoundsException: 4869
[java] [A:SOLDIER#3642@868] at team050.rpc.Clans.getClanMode(Clans.java:61)
[java] [A:SOLDIER#3642@868] at team050.CowboyRobot.doAction(CowboyRobot.java:244)
[java] [A:SOLDIER#3642@868] at team050.BaseRobot.loop(BaseRobot.java:30)
[java] [A:SOLDIER#3642@868] at team050.RobotPlayer.run(RobotPlayer.java:37)
[java] [A:SOLDIER#3642@868] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] [A:SOLDIER#3642@868] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[java] [A:SOLDIER#3642@868] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] [A:SOLDIER#3642@868] at java.lang.reflect.Method.invoke(Method.java:622)
[java] [A:SOLDIER#3642@868] at battlecode.engine.RobotRunnable.run(RobotRunnable.java:65)
[java] [A:SOLDIER#3642@868] at battlecode.engine.scheduler.ScheduledRunnable.run(ScheduledRunnable.java:37)
[java] [A:SOLDIER#3642@868] at java.lang.Thread.run(Thread.java:701)
It seems to favor direction 7, the last direction seen for some reason
it wont let me push now
play defense
We should be monitoring the IRC channel
This could happen when we update the state of a robot. We need a cheap and amortized way of determining if we see any enemy cowboys and need to fight
(12:01:23 AM) [PaddleGoats]u_: lol duck your pastr distress signal is a little too late
(12:01:52 AM) The_Duck_: it's not calling for reinforcements
(12:01:57 AM) The_Duck_: it's calling for a quick death
(12:02:31 AM) jiangty: "kill me plz"
(12:03:01 AM) The_Duck_: I have a function in my soldier class called "mercyKillPastrs()." But the pastrs have to ask for it first
(12:03:10 AM) jiangty: rofl
(12:03:20 AM) jiangty: wait I thought denying was nerfed
(12:03:31 AM) The_Duck_: you can still shoot your own pastr
(12:03:37 AM) jiangty: and they don't get the milk?
(12:03:42 AM) The_Duck_: right
Investigate the usefulness of noise towers
Dijkstra is almost ready. We need to post and receive the paths computed at pastrs
Need to write this by Sunday night.
We need to formulate a big strategy
Also, note that there is no longer an advantage to suicide your pastr
Make the robots able to start to learn from each others paths
we need to attack
They do not work on the editor
IDLE cowboys should be allowed to just leave and join a defender clan and injured cowboys should be able to retreat into an idle clan
Cannot spawn and play on map Blocky. Throwin exceptions all over the place.
make bug and improved bug navigation into a method in a static class, so we can combine it into other bots
(n-1)th clan clan has capacity for 10 people and won't release newspawns from hq when in idle mode until they have 10, which will never happen.
expected behavior should that they release after like 3 or 4 newspawns. roughly.
Short distance navigation should use sight
Map editor does not enforce this yet
Write BFS for short range cowboy nav
team050 v doNothing on TEMPLE
On Temple, BUILDER clan tries go to build its stuff in corner. But when they hit the wall, 3/5 of the clan decide the fastest way to get two squares over is to bug around the entire rest of the map, splitting up the clan and leaving PASTR + NT with no defenders.
They should all run into the corner and defend the PASTR and NT.
We are locked into C=2 or C=3. It would be preferable for this to be a general field, as Dijkstra computations are still taking too long to compute.
I would ideally like to be able to add new features without worrying about hitting the limit. This means that I am going to try to reduce by maybe 25% or so in bugnav and micro
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.