Giter VIP home page Giter VIP logo

battlecode-caddar's Introduction

battlecode-caddar

Battlecode 2014 Team

Final submission is teams/team050

battlecode-caddar's People

Contributors

brittcyr avatar

Watchers

James Cloos avatar  avatar  avatar

battlecode-caddar's Issues

Create table of bots

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

Scrimmage Server

Create a continuously running scrimmage server to help evaluate our bots

Intended behavior of enemy radio tracking

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.

search for nav fix

We should return a map if the target is a coarse match, not just exact match

Distracted bug

Should terminate bug if it gets too far off course or loops

Determine if a robot is alive

This issue also includes reinforcing the defense units when they die and the clan logic to create raiders after the defender clan is full

Investigate D* navigation

see if that could help. at least we should be doing some kind of memory of what has been seen to help other robots

Dijkstra

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.

Exception

 [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)

Debug Dijkstra

It seems to favor direction 7, the last direction seen for some reason

Detect engagement

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

Pastr mercy kill?

(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

Macro Strategy

We need to formulate a big strategy

Also, note that there is no longer an advantage to suicide your pastr

Blocky

Cannot spawn and play on map Blocky. Throwin exceptions all over the place.

Improve bug and modularize

make bug and improved bug navigation into a method in a static class, so we can combine it into other bots

Release last Clan

(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.

Use sight

Short distance navigation should use sight

BFS

Write BFS for short range cowboy nav

Pathing Fail on Temple

Reproduce

team050 v doNothing on TEMPLE

Problem

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.

Expected Behavior

They should all run into the corner and defend the PASTR and NT.

Save bytecode

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.