November 25, 2008

Dookious

http://robowiki.net/cgi-bin/robowiki?Dookious

The one of the best robots at 1v1.

Really a duelist bot only, BUT - I looked at it's code and .. maybe we could transform it into a team player.

Atomicity of actions is really not his big advantage. I thought about 'hardcoded' behaviour for teams. Like avoiding each other's fire, colisions, cooperation and so on.

Dunno if is this our task?
As I said before, I don't beleive Robocode is good platform for some big planning due to lack of information about a state of world (environment).


Movement: Wave surfing
Radar: Tight lock
Aiming: GuessGun, AntiSurfer Gun

Roborumble

So, it seems that fights between bots are not as dead as I thought. Just be careful in search and you will find ... http://robowiki.net/cgi-bin/robowiki?RoboRumble!
Check page at http://robowiki.net/cgi-bin/robowiki?RoboRumble/CurrentRankings, battles are held (almost) every day.

So, problem with competitions is solved.

November 21, 2008

Too much thinking.. (or - my sceptical view)

Okay, let's sum up:

I think, that bruteforcing all possible options is not the way... Lets say we have these few possible options per turn:
move into 6 possible places (it's too few, is it?), turn gun somewhere, shoot...
we can of course do all those thing simultaneously, so ... lets just say we have 12 options per turn. Oponent has again 12 options... Thats 24.
We should think at least 10 turns ahead...that's 24^10.... incredible.

With alfa-beta pruning, we could reduce it (with really optimistict view) twice...
NOT REALIZABLE.


Ok, anyway - we don't have a full information about the current state - we do not know, where oponent shooted for example, so we do not know, where the bullet is :-/.

So we end up with probabilities anyway.

To planning with A*
We just said, we dont have a full account of situation. So.. we can't plan where to hide! We can't plan, where to shoot (we do not know the way our opponent is moving)...

I dunno, if we knew everything about situation, we could plan really well...

There're not any obstacles, so we can't even plan how to use'em.

So, we always need those low-level things like shooting prediction, movement prediction, and even radar...
We could improve wave-surfing - to choose any point achievable instead of surfing only the wave (be always perpendicular).


I tried to invent some sort of bot my supperior asked (m. Rohlik), but after a short while I realized...
This need some more discussion, I dont think we could do such things in Robocode.

November 18, 2008

Robocode repository back

Hail to the creator, the legendary Robocode repository is back up.

http://robocoderepository.com/


Feel free to share your bot :-)

November 17, 2008

Bot pub

Publishing my old Lambda 1.0 bot for any use:
http://thalie.pilsfree.cz/jaara/Robocode.rar

November 9, 2008

To choose a bot

can be suprisingly difficult. Providing we are to use A* algorithm to plan our actions, we basically do not need an advanced bot with super abilities.

We should be fine with following actions:
-(de)accelerate
-turn left/right
-turn gun left/right
-fire

Radar is an autonomous unit.

Why an advanced bot? We wouldnt be able to use his abilities anyway.

Tasks

[nejvyssi priorita -- cca tyden]
- vybrat kandidaty na naseho clena tymu (modularita, atomicita akci)
- provedte vyber nekolika (cca 3-10) kvalitnich botu, kteri
se dobre umistuji v Melee zebricich (udelejte zebricek
sam, pokud to bude treba)
- uzsi vyber, prosim, komentujte; zamerte se na duvody proc
jsou boti, kteru se dostali do uzsiho vyberu vhodnejsi
pro Vasi praci nez ostatni; sekundarne lze diskutovat
targeting, movement a (pokud je) planovani/strategie
- najit testovaci tymy na internetu
- popiste v komunite bezne typy slozeni tymu (alternativy k 3v3)
- testovaci platforma (server Vas public nebo cizi public)
- vysledky testovani cizich tymu
- zebricek s Vasim komentarem
- publikujte sveho bota (zdrojaky volne nebo s heslem

November 6, 2008

Concerning use of A* in planning approach

Elementar actions put together (in chain) to achieve a goal - use of A* algorithm.

Problem: we do not have full information about the state in every moment - caused by radar (enemy can move and we do not know that) - solution: approximation of enemy path & dividing radar to its own field = move radar with different algorithm than A*

A* - movement, targeting
other - radar (scan only suitable areas, update last enemy seen, ...)

Another approach - A* for basic movement/targeting and different algorithm for precise (wave bullets, ...)