<< Back to Warzone Classic Forum   Search

Posts 501 - 520 of 565   <<Prev   1  2  3  ...  14  ...  25  26  27  28  29  Next >>   
WarLight AI Challenge: 6/22/2014 07:41:56


Doushibag 
Level 17
Report
I seem to remember getting beat early in the qualifiers by SunTzu with a Europe strategy, he didn't do it half as well though and failed to climb in the ranks. Gave me some early loses though before I climbed out of his range. Then I got paired up with Blender twice and had no chance. And now he's refined it to dominate everyone until someone can update to counter-pick him and toss him out of his comfort zone. Not sure what he does when others take a spot in Europe. He's dominating right now though. Currently has a 15 win streak.
WarLight AI Challenge: 6/22/2014 12:25:45

Ikalgo
Level 50
Report
The point is that people can take a region in Europe, I will fallback to my old SA tactics (if I own less than 2 regions in Europe). It would certainly be an upgrade in odds, but that would also mean that those who counter-pick will have less chance against ALL other bots, since why would you want your choice to be in Europe against other bots, if not playing Europe yourself?

There are better ways to deal with Europe :-)

Edited 6/22/2014 15:22:04
WarLight AI Challenge: 6/22/2014 14:51:47


Norman 
Level 58
Report
Europe is a weak strategy that doesen't need to be explicitely countered since it should always lose when the opponent plays proper warlight gameplay ;)

The problem is that at present there aren't any bots with a next generation map understanding. However when the opponent bot takes Australia and he sees you not deploying in South America then he needs to find out under which circumstances he will lose. North America / Asia will give him an auto win. Also Africa is worse than his position if he takes South America. So to not lose this won position he has to go strong into North Africa before fighting in South America / taking South America. This seem to be to difficult to implement without hardcoding but I don't really think so. Even without exploiting this special map you need to realise that this is a small fighting map and have to write your code accordingly. Without stalemate situations you aren't supposed to expand at all and you need to crush the opponent instead of building your own empire.
WarLight AI Challenge: 6/22/2014 17:44:54

Ikalgo
Level 50
Report
I agree that it can be countered. That's why I chose to play 50-50 SA/EU tactics in the first place, since I wasn't trusting EU anymore (seems like that was a mistake for now). Considering that next-gen won't be around the corner (especially for the majority of bots), it might make sense to explicitly look for a counter to it, though. But hey, I'm not complaining :P

Edited 6/22/2014 19:39:27
WarLight AI Challenge: 6/22/2014 19:25:36

GreenTea 
Level 60
Report
"It's a great day for me -- first time in warlight on #1, and at the same time Poker #1 :) "
congratz :)
Its a pity that poker thematics not interesting to me..
WarLight AI Challenge: 6/23/2014 05:02:32


Doushibag 
Level 17
Report
http://theaigames.com/competitions/warlight-ai-challenge/games/53a7abda4b5ab20b4222821d

http://theaigames.com/competitions/warlight-ai-challenge/games/53a79d5a4b5ab20b42228103

Gadzbot to the rescue, dominated!

GreenTea too: http://theaigames.com/competitions/warlight-ai-challenge/games/53a7b25e4b5ab20b422282a9

Think that's why I'm so weak against the Europe strategy. Seemed a weak strategy and didn't give it much thought, but it dominates when you're not prepared to counter it.

Edited 6/23/2014 05:16:21
WarLight AI Challenge: 6/24/2014 21:13:18


Trogatog
Level 52
Report
http://theaigames.com/competitions/warlight-ai-challenge/games/53a9e1e54b5ab20b4222a7f4

What can I say, I laughed :)

There are better ways to deal with Europe :-)
I agree:

http://theaigames.com/competitions/warlight-ai-challenge/games/53a953454b5ab20b42229f3f

Although in this particular game my bot decided to check North America first, then keep on keepin' on.
WarLight AI Challenge: 6/24/2014 21:29:07

GreenTea 
Level 60
Report
WarLight AI Challenge: 6/25/2014 21:41:06


Trogatog
Level 52
Report
http://theaigames.com/competitions/warlight-ai-challenge/games/53a953454b5ab20b42229f3f
haha. here is hardcode nature at the glance.

Nope -- my bot was trying to find the other player given I only knew 1 region he had and not 2 picks in obvious locations (best super regions).

The algorithm sought out the regions in the engine's pickable starting regions given that I expected to have more income than the other bot on turn 3 (finishing SA wasn't a priority).

Although, there was a flaw there in that it didn't check Africa first, but it still worked out :)
WarLight AI Challenge: 6/26/2014 02:37:48


Norman 
Level 58
Report
@Trogtog: I don't think GreenTea meant your bot.

Anyhow, here you got crushed by a really hardcoded bot:
http://theaigames.com/competitions/heads-up-omaha/games/53ab7eeb4b5ab20b4222c400
He is called OneLiner since he only consists of one line of code (apart from the engine stuff). I never played poker in my life, don't know the poker rules and have little intention in learning them.
WarLight AI Challenge: 6/26/2014 08:10:14

GreenTea 
Level 60
Report
>> I don't think GreenTea meant your bot.
Yes. Im about Blender, when he come to North Africa with 20 army and then just stop after not seeing enemy..
WarLight AI Challenge: 6/26/2014 16:41:23


Trogatog
Level 52
Report
Yes. Im about Blender, when he come to North Africa with 20 army and then just stop after not seeing enemy..
Ahhh, gotcha. My mistake! :)

Anyhow, here you got crushed by a really hardcoded bot:
Yes, my bot is not smart by any means. I just programmed enough to (mostly) beat the starter bots that are in the queue right now.

Edited 6/26/2014 16:42:53
WarLight AI Challenge: 6/26/2014 20:41:55

Ikalgo
Level 50
Report
Norman, there are currently 4 exact same bots like your "OneLiner" bot in that competition :P

On the contrary, having learned from this competition (thanks guys!) I wrote my bot in the most general way with some opponent modelling and it really works well!

Edited 6/26/2014 20:45:51
WarLight AI Challenge: 6/29/2014 05:18:26


Norman 
Level 58
Report
Hello

I just uploaded my bot at github:
https://github.com/Norman1/SupremeDalek

You can use my code to write your own bot or improve your bot. The code should be relatively easy to understand and I wrote lot's of comments.

Those who followed the AI challenge might have noticed that I stopped updating my bot long before the finals. It was to time consuming for me. However I'm still interested in designing a warlight AI capable of beating an average human player. For me it's about the beauty of seeing my bot play not primarily about the competition. If you wrote a hardcoded bot your bot does exactly as you tell him. However SupremeDalek consists of lot's of small heuristics and when working together they result in smart warlight play capable of solving situations that I haven't thought about when writing my bot.
WarLight AI Challenge: 6/29/2014 21:43:28

GreenTea 
Level 60
Report
https://github.com/Norman1/SupremeDalek/blob/master/src/model/MapModel.java
method calculateEnemySuperRegionsFromDeploymentInput
nice for loops xD
WarLight AI Challenge: 6/29/2014 23:09:48

GreenTea 
Level 60
Report
https://github.com/Norman1/SupremeDalek/blob/master/src/basicAlgorithms/DistanceToOpponentBorderCalculator.java

Much easy to implement this functionality using general breadth-first search with passing callback which will be triggered on every visited region (pattern visitor).
WarLight AI Challenge: 6/29/2014 23:11:40

GreenTea 
Level 60
Report
WarLight AI Challenge: 6/29/2014 23:56:01


Norman 
Level 58
Report
Hello

Yes, the nested for loops are poorly implemented to get all possible permutations. However I think the MapModel class is the only class difficult to understand while the other code is super simple.

With the code duplication you are also correct but this should be the only code duplication that you find. I'm not an expert on all possible shortest path algorithms and I only thought about my algorithm for a couple minutes and then implemented it.
I'm not sure about other algorithms but my implementation suits my needs fine and has following benefits:
- Only needs to calculate the shortest paths once a turn for the whole board.
- If there are two ways to move fastest from A to B then I can use this for order delay moves. (wanted to implement but didn't)
- If region A is better than region B (while both on shortest path) then I can move to region A (didn't implement)
- If a region has opponent presence I can exclude that region to move around the opponent (also possible with other algorithms)

Edited 6/29/2014 23:57:50
WarLight AI Challenge: 7/1/2014 23:03:58

GreenTea 
Level 60
Report
Some random remarks

https://github.com/Norman1/SupremeDalek/blob/master/src/evaluation/RegionAndSuperRegionAnnotator.java
subRegion.getPlayerName().equals("neutral")
Many such magic string constant usage. Could be replaced with static final variable.

Also comparing string is slow operation. For my bot I had replaced owner with just integer number.

https://github.com/Norman1/SupremeDalek/blob/master/src/evaluation/GameStateCalculator.java
in method isStalemateSituation2 used magic constant number 4 for number of neutral regions of bonus. What about unusual maps with, for example 10 regions per bonus?

https://github.com/Norman1/SupremeDalek/blob/master/src/evaluation/RegionValueCalculator.java
if (region.getSuperRegion().getId() == 6) {
					region.setAttackRegionValue(region.getAttackRegionValue() + 4);
				}
				if (region.getSuperRegion().getId() == 2) {
					region.setAttackRegionValue(region.getAttackRegionValue() + 3);
				}

Hardcode not usable on other maps. Also what if on same map ids of regions will be changed?

Also in many classes (BotState state) is passed as argument to static methods. In this case Better to make methods not static, and put BotState state as field of corresponding class. And then access methods via instance of class without need to pass BotState every time.

https://github.com/Norman1/SupremeDalek/blob/master/src/evaluation/SimpleHeuristics.java
calculateMostDesirableSuperregion - income of region is not taked into account.
Imagine that you have one bonus with 5 regions and 10 income.
and other bonus with 4 regions and 1 income. And in both bonuses you have 1 captured region.
Then your method will return second bonus as more desirable.
WarLight AI Challenge: 7/2/2014 06:42:00


Norman 
Level 58
Report
Hello

The class RegionAndSuperRegionAnnotator isn't used and neither isStalemateSituation2.

Also in many classes (BotState state) is passed as argument to static methods. In this case Better to make methods not static, and put BotState state as field of corresponding class. And then access methods via instance of class without need to pass BotState every time.
I probably think of those classes as utility classes. However if performance was an issue with my bot eliminating BotState as a parameter wouldn't help since BotState is stored on the heap.

Anyhow, I didn't upload my bot to discuss low level coding stuff nor did I claim that he was completely properly coded. I also never claimed that my bot works on all maps nor do I think that your bot does. A test would be if your bot can defeat the warlight AI at the Big Europe map map and if yes, if he can also defeat the warlight AI on this map with 0 neutrals.

I think my bot can help other warlight players who want to write a bot or improve their bot. It's not about whether I used Integers or Strings as parameters but for example my way to determine the move order or my thoughts when evaluating a region.
Posts 501 - 520 of 565   <<Prev   1  2  3  ...  14  ...  25  26  27  28  29  Next >>