2011-11-19T00:00:35 *** delt0r_ has joined #aichallenge 2011-11-19T00:00:45 http://ants.fluxid.pl/replay.5288 lol, need to fix that 2011-11-19T00:01:59 coachbudka actually has collisions 2011-11-19T00:02:13 he must be making moves and then stopping them for combat 2011-11-19T00:05:38 *** datachomper has left #aichallenge 2011-11-19T00:08:11 bluegaspode pointed out on the forum that xathis has a collision in a fluxid game. End of this thread: http://forums.aichallenge.org/viewtopic.php?f=24&t=1634&start=50 2011-11-19T00:08:20 *** u_ has quit IRC (Quit: u_) 2011-11-19T00:09:21 *** avdg has quit IRC (Quit: Leaving.) 2011-11-19T00:09:53 yeah, I think my combat code can cause collisions but I have 2011-11-19T00:09:57 haven't seen any* 2011-11-19T00:11:31 *** twymer has joined #aichallenge 2011-11-19T00:12:07 *** avdg has joined #aichallenge 2011-11-19T00:16:42 *** Antimony has quit IRC (Ping timeout: 245 seconds) 2011-11-19T00:24:12 *** twymer has quit IRC (Ping timeout: 245 seconds) 2011-11-19T00:24:55 *** Antimony has joined #aichallenge 2011-11-19T00:28:43 *** Nbooo has quit IRC (Remote host closed the connection) 2011-11-19T00:36:31 *** Euphony has joined #aichallenge 2011-11-19T00:46:56 *** amstan has quit IRC (Ping timeout: 244 seconds) 2011-11-19T01:00:10 *** Antimony has quit IRC (Ping timeout: 260 seconds) 2011-11-19T01:02:26 *** retybok_ has quit IRC (Ping timeout: 252 seconds) 2011-11-19T01:04:20 *** Antimony has joined #aichallenge 2011-11-19T01:16:22 *** sigh has quit IRC (Remote host closed the connection) 2011-11-19T01:19:02 *** sigh has joined #aichallenge 2011-11-19T01:20:32 *** sigh has quit IRC (Remote host closed the connection) 2011-11-19T01:22:25 *** JorgeB has quit IRC (Quit: Computer has gone to sleep.) 2011-11-19T01:29:19 *** Scryer has quit IRC (Quit: Page closed) 2011-11-19T01:39:56 *** bmh has joined #aichallenge 2011-11-19T01:40:47 *** bmh has joined #aichallenge 2011-11-19T01:40:54 evening 2011-11-19T01:58:01 *** smiley1983 has joined #aichallenge 2011-11-19T02:02:49 *** HaraKiri has joined #aichallenge 2011-11-19T02:07:01 *** Antimony has quit IRC (Ping timeout: 240 seconds) 2011-11-19T02:09:21 *** kara has joined #aichallenge 2011-11-19T02:11:09 *** HaraKiri has quit IRC (Ping timeout: 244 seconds) 2011-11-19T02:13:02 *** Flort has quit IRC (Read error: Operation timed out) 2011-11-19T02:18:16 month left, and i haven't worked on my bot in weeks 2011-11-19T02:19:09 *** flag has quit IRC (Ping timeout: 252 seconds) 2011-11-19T02:19:31 a month is a long time :) 2011-11-19T02:20:20 yea, but there's a reason i haven't worked on it 2011-11-19T02:20:21 lol 2011-11-19T02:20:25 i haven't had time 2011-11-19T02:28:49 *** Flort has joined #aichallenge 2011-11-19T02:32:12 I got my bot working last weekend and decided to abandon the technique it uses 2011-11-19T02:32:18 a1k0n: you awake? 2011-11-19T02:33:09 i got my first tcp win aha 2011-11-19T02:33:10 http://ants.fluxid.pl/replay.5436 2011-11-19T02:33:17 that bot is literally just collecting food and exploring 2011-11-19T02:33:34 it ignores the existence of enemies and their hills 2011-11-19T02:33:53 *** kaemo has quit IRC (Ping timeout: 244 seconds) 2011-11-19T02:35:25 I've been reading about TSP solvers in hopes of making a smart bot 2011-11-19T02:41:40 *** kaemo has joined #aichallenge 2011-11-19T02:42:13 testing is so sloooow :P 2011-11-19T02:42:41 faster code? 2011-11-19T02:43:43 on tcp 2011-11-19T02:44:30 faster internet? Moving from cable/DSL to ftth will gain another ~15-20ms 2011-11-19T02:44:37 lol 2011-11-19T02:44:43 ftth? 2011-11-19T02:44:55 fiber to the home 2011-11-19T02:45:25 it'll be unbearable once i get game trees going 2011-11-19T02:45:34 i'll pretty much be using the turn limit each turn 2011-11-19T02:46:04 antimatroid: game trees? As in you'll be doing A-B pruning? 2011-11-19T02:46:22 haven't done it yet but the plan is to use game trees for battles 2011-11-19T02:46:35 i might try and do some kind of pruning with an n-player tree 2011-11-19T02:46:42 and backward induction on that to pick move 2011-11-19T02:46:43 s 2011-11-19T02:47:15 i would do me vs. rest and assume they are ganging up on me but one might be able to prune better if you treat it as n-player 2011-11-19T02:47:21 i haven't gone through and worked out all the details yet 2011-11-19T02:47:38 what about big battles? 2011-11-19T02:47:51 max size for each battle partition :) 2011-11-19T02:47:56 then just do them incrementally 2011-11-19T02:48:01 not sure what else to do about it 2011-11-19T02:48:49 the only strategy that still makes any sense to me is to have a LOS ring around my hill, anoint everyone within the ring as a forager and everyone on the ring as a fighter 2011-11-19T02:48:58 I'm trying to get really basic combat logic working well and very fast and then I'll do a proper implementation which will try to do as much as possible in the remaining time 2011-11-19T02:49:01 then grow the ring while minimizing forager density 2011-11-19T02:52:17 my bot is terrible at foraging on large open maps :( 2011-11-19T02:52:32 how do you forage? 2011-11-19T02:53:18 atm I just revisit locations that haven't been seen in a while (they slowly gain weight the longer I haven't seen them) 2011-11-19T02:53:28 it's terrible on the open maps because my ants spread out way too far 2011-11-19T02:53:38 and then get zerged? 2011-11-19T02:53:45 yeah 2011-11-19T02:54:02 they just get picked off and I forage slower than the other bots most of the time 2011-11-19T02:54:10 what weight do you assign to squares you've never seen? 2011-11-19T02:54:40 exploration is basically separate from foraging 2011-11-19T02:55:57 ok, so you're only weighting squares you've seen. Do you end up with a surplus of ants? got any fluxid links? 2011-11-19T02:56:26 well, my surplus ants will explore/attack 2011-11-19T02:56:41 I mean, do you end up with ants in the birthing queue? 2011-11-19T02:56:47 http://ants.fluxid.pl/player/strcat_combatzones there's my current bot 2011-11-19T02:57:05 foraging is definitely a major weak point :) 2011-11-19T02:57:43 your fighting looks solid 2011-11-19T02:57:44 on 2-player maze maps there's the illusion that it works well b/c trading ants with the opponent is fine 2011-11-19T02:57:52 I assume enemies don't move atm 2011-11-19T02:58:13 so if they're cautious, it works 2011-11-19T02:58:22 if they just run around unaware of combat, my ants basically do the same :P 2011-11-19T02:58:43 I still don't get combat. The explanation in the 'specific' seems incoherent 2011-11-19T02:58:44 *** epicmonkey has joined #aichallenge 2011-11-19T02:59:37 http://aichallenge.org/specification_battle.php the pseudo code and python code at the bottom of this page are good 2011-11-19T02:59:54 reading all the text is pointless - it confused me a lot and I put off implementing any combat stuff for a long time 2011-11-19T03:00:07 reading code… pah 2011-11-19T03:00:54 I basically turned the python code at the bottom into a simulate() function that lets me see which ants will die in a situation 2011-11-19T03:01:15 just had to rewrite it in C++ and change it a tiny bit 2011-11-19T03:01:19 they should stick the 'math' at the top. It's actually very clear. 2011-11-19T03:01:38 yeah, the math/pseudo-code is very clear 2011-11-19T03:01:57 the super long explanation didn't really work for me 2011-11-19T03:02:59 it's gross that attackradius is non-manhattan 2011-11-19T03:03:50 I think it's fine 2011-11-19T03:04:09 inconsistent :) 2011-11-19T03:04:44 I'm out, it's midnight 2011-11-19T03:04:47 *** bmh has quit IRC (Quit: bmh) 2011-11-19T03:08:47 *** retybok_ has joined #aichallenge 2011-11-19T03:15:05 *** chridi has joined #aichallenge 2011-11-19T03:15:05 *** chridi has joined #aichallenge 2011-11-19T03:16:27 hmmm, pruning for enemies sort of assumes that enemies are playing optimally 2011-11-19T03:16:34 which matters if the game isn't zero sum 2 player 2011-11-19T03:24:10 *** Jak_o_Shadows has joined #aichallenge 2011-11-19T03:28:22 *** chridi has quit IRC (Ping timeout: 245 seconds) 2011-11-19T03:32:05 has anyone thought much about pruning n player game trees? 2011-11-19T03:32:36 well since there is no way you can get close to working out what optimal is with the recourses you have... i have my doubts 2011-11-19T03:33:05 i can work out a pruning method if i assume players are playing optimally 2011-11-19T03:33:07 first of all you would need global state 2011-11-19T03:33:10 but i don't think that's a very good assumption 2011-11-19T03:33:34 you can't work out what a optimal move is... so i don't think so... 2011-11-19T03:33:48 unless you define optimal as some non optimal whatever 2011-11-19T03:33:51 define optimal move? 2011-11-19T03:34:10 maximizes the final point outcome 2011-11-19T03:34:10 *** retybok_ has quit IRC (Ping timeout: 260 seconds) 2011-11-19T03:34:21 one didn't get optimal moves using a game tree in tron but you still got bloody good ones 2011-11-19T03:34:40 there is no hidden state in that game 2011-11-19T03:34:47 there is alway far less state 2011-11-19T03:34:51 also 2011-11-19T03:35:16 lossing ants in a 1:1 ratio is optimal at some stages of the game 2011-11-19T03:35:19 or even worse 2011-11-19T03:35:56 yeah but that's a matter of tweaking the evaluation function 2011-11-19T03:36:13 i still want a way to prune the tree so that i can maximise the number of ants i can do in each battle partition 2011-11-19T03:36:41 I have just use a trail method only one move ahead 2011-11-19T03:36:55 its working ok... not debuged enough for live yet 2011-11-19T03:37:42 as in i cluster ants that could die/kill next turn... then try everything --hope to hell the clusters are small enough 2011-11-19T03:37:50 i can of course cap the clusters 2011-11-19T03:38:07 new plan, back to two player zero sum 2011-11-19T03:38:12 i'm going to force it to fit that 2011-11-19T03:38:22 you and your game theory ;D 2011-11-19T03:39:18 I did potential maps! 2011-11-19T03:39:23 it kinda works... 2011-11-19T03:39:43 the problem always is global stratagy... ie defend your nest idiots! 2011-11-19T03:40:09 Or just *charge* death and Glory... 2011-11-19T03:40:50 game theory rules 2011-11-19T03:40:57 i think i have something kind of decent to go on here actually :D 2011-11-19T03:41:05 i'll try and write up a game tree tonight 2011-11-19T03:41:08 and get battles going 2011-11-19T03:41:48 trees have timeout isses 2011-11-19T03:41:57 so i hope you can write fast C++ 2011-11-19T03:42:04 which is not that easy IMO 2011-11-19T03:42:55 i do a game tree iteratively 2011-11-19T03:43:00 and stop once i run out of time 2011-11-19T03:43:14 then make a decision based off what is generated 2011-11-19T03:43:26 although in this game i intend to do multiple trees for multiple battle partitions 2011-11-19T03:43:36 and cap the number of ants that can be in each battle partition 2011-11-19T03:44:24 yea... but the final performance will depend on how much of the tree space you get to "see" so faster code will make a big difference 2011-11-19T03:44:44 aka chess programs in the amiga days vers now! 2011-11-19T03:44:50 ok little extreme 2011-11-19T03:57:40 *** Fandekasp has joined #aichallenge 2011-11-19T04:04:16 *** UncleVasya has joined #aichallenge 2011-11-19T04:05:31 *** speakeasy has joined #aichallenge 2011-11-19T04:05:46 Hi. Who was talking about 'HAHA, GOTCHA!' tactic about 2 weeks ago? 2011-11-19T04:06:29 *** Euphony has quit IRC (Ping timeout: 265 seconds) 2011-11-19T04:09:36 *** UncleVasya has quit IRC (Read error: Connection reset by peer) 2011-11-19T04:12:30 *** foRei has joined #aichallenge 2011-11-19T04:16:05 *** jasox has joined #aichallenge 2011-11-19T04:19:22 hi guys 2011-11-19T04:19:30 can i have a hand here? 2011-11-19T04:19:41 my java is messed up 2011-11-19T04:20:10 and therefore when i try to follow the tutorial when i first run the tutorial.cmd file all i get is an error 2011-11-19T04:20:56 python tools/playgame.py "java -jar MyBot.jar" "python tools/sample_bots/python/HunterBot.py" --map_file tools/maps/example/tutorial1.map --log_dir game_logs --turns 60 --scenario --food none --player_seed 7 --verbose -e 2011-11-19T04:21:04 is in the file 2011-11-19T04:21:27 *** retybok_ has joined #aichallenge 2011-11-19T04:21:48 hi retybok 2011-11-19T04:22:05 can you give me a hand? 2011-11-19T04:45:11 *** retybok_ has quit IRC (Ping timeout: 252 seconds) 2011-11-19T04:48:14 *** speakeasy has quit IRC (Ping timeout: 252 seconds) 2011-11-19T04:53:53 *** Redgis has joined #aichallenge 2011-11-19T04:56:24 *** g0llum has joined #aichallenge 2011-11-19T05:00:47 *** g0llum has quit IRC (Ping timeout: 248 seconds) 2011-11-19T05:04:46 *** g0llum has joined #aichallenge 2011-11-19T05:06:22 *** antimatroid has quit IRC (Quit: Leaving.) 2011-11-19T05:06:46 *** antimatroid has joined #aichallenge 2011-11-19T05:17:19 *** antimatroid has quit IRC (Ping timeout: 258 seconds) 2011-11-19T05:17:19 *** antimatroid1 has joined #aichallenge 2011-11-19T05:22:45 *** jasox has quit IRC (Quit: Leaving) 2011-11-19T05:26:17 *** ikaros has joined #aichallenge 2011-11-19T05:27:48 *** retybok_ has joined #aichallenge 2011-11-19T05:34:12 *** retybok_ has quit IRC (Ping timeout: 245 seconds) 2011-11-19T05:35:48 *** ALplus has quit IRC (Ping timeout: 276 seconds) 2011-11-19T05:38:16 *** pairofdice has joined #aichallenge 2011-11-19T05:42:34 *** Anilm3 has joined #aichallenge 2011-11-19T05:42:50 wow 8 servers today 2011-11-19T05:45:19 i can make my own binary python extensions, right? will they be compilled or do i need to upload package with so binaries? 2011-11-19T05:49:06 *** Jak_o_Shadows has quit IRC (Read error: Connection reset by peer) 2011-11-19T05:50:55 *** Jak_o_Shadows has joined #aichallenge 2011-11-19T05:57:48 how to find a way to area of the lowest ant density? :D 2011-11-19T06:00:01 *** nle85 has joined #aichallenge 2011-11-19T06:02:34 Fluxid: I'm stuck with that too 2011-11-19T06:06:01 *** scribble has quit IRC () 2011-11-19T06:06:08 i think to replace my method of exploration and keeping stuff visible with something completely different, only based on keeping ant density across whole map equal 2011-11-19T06:07:14 atleast you have an idea... 2011-11-19T06:07:28 rough one 2011-11-19T06:09:02 http://aichallenge.org/visualizer.php?game=101229&user=757 here at the end i have ants not doing stuff becuase there is nothing to explore around 2011-11-19T06:09:08 around the hive 2011-11-19T06:11:13 your ants are cooler than mine 2011-11-19T06:11:38 not cool enough 2011-11-19T06:12:20 my actual submission uses some sort of random exploration, works fine, but not good enough 2011-11-19T06:12:39 I am developing a new version trying diffusion maps 2011-11-19T06:14:56 diffusion, i heard, sucks 2011-11-19T06:15:14 *** cr7 has joined #aichallenge 2011-11-19T06:15:43 my first version was done in 10 minutes and worked great following targets, but not for exploration 2011-11-19T06:15:52 i'm maybe halfway to having battle code for 1 ply minimax 2011-11-19T06:17:06 I think minimax won't be that good when your opponent may be doing some random stuff 2011-11-19T06:17:31 *** cr7 has left #aichallenge ("Leaving") 2011-11-19T06:17:34 top bot's won't do random stuff ;) 2011-11-19T06:17:39 bots* 2011-11-19T06:17:56 that's true 2011-11-19T06:18:14 maybe that's why my bots suck so much :( 2011-11-19T06:23:11 what are the conditions for ordering terminal nodes for alpha beta? I'm assuming that they be a total weak order? 2011-11-19T06:23:51 are all total weak orders isomorphic to the real numbers? 2011-11-19T06:24:00 or even the integers? 2011-11-19T06:24:52 my evaluation (I hope) takes into account that opponents may not play optimally 2011-11-19T06:27:33 Hello. Does anyone has same issue: every game always ends in timeout for my bot. I've using python3 and check in every iteration that I've have enough time to do decision (e.g. time_remaining() > 50). And it everytime goes into timeout. On my local machine everything works well even with smaller turn time. 2011-11-19T06:28:29 seletskiy: is that on the official servers or on a tcp server? 2011-11-19T06:28:40 seletskiy: you use turntime you get from manager, right? 2011-11-19T06:28:40 Yexo: official server 2011-11-19T06:28:46 Fluxid: yes 2011-11-19T06:28:57 do you flush stdout after every turn? 2011-11-19T06:29:44 Yexo: yes, I've using API from starter package for python3 2011-11-19T06:32:35 *** UncleVasya has joined #aichallenge 2011-11-19T06:35:28 *** Blkt has joined #aichallenge 2011-11-19T06:37:08 *** Conorach has joined #aichallenge 2011-11-19T06:39:15 *** xathis has joined #aichallenge 2011-11-19T06:40:48 good morning everyone 2011-11-19T06:40:54 hi 2011-11-19T06:48:28 *** lorill has joined #aichallenge 2011-11-19T06:49:31 :D 2011-11-19T06:57:22 *** mcstar has joined #aichallenge 2011-11-19T07:02:31 *** mj41 has joined #aichallenge 2011-11-19T07:12:13 seletskiy: you may need to just use a higher value 2011-11-19T07:15:39 *** Anilm3 has quit IRC (Quit: Page closed) 2011-11-19T07:16:29 Minthos: Higher than 50ms? 2011-11-19T07:17:40 yes 2011-11-19T07:18:49 http://aichallenge.org/visualizer.php?game=103339&user=757 daaaaaaaaamn 2011-11-19T07:19:47 Fluxid: you cant movewhole lines of ants to attack? 2011-11-19T07:20:42 i didn't program such stuff 2011-11-19T07:21:01 i move ants individually 2011-11-19T07:21:26 you could have beaten his defence by advancing a line of ants 2011-11-19T07:21:32 well, two actually 2011-11-19T07:22:04 Fluxid: actually this is good news 2011-11-19T07:22:43 *** Jak_o_Shadows has quit IRC (Read error: Connection reset by peer) 2011-11-19T07:23:01 mcstar: why? 2011-11-19T07:23:10 because you know how to beat me? ;P 2011-11-19T07:23:26 it shows your attack isnt perfect so i still stand a chance against you if i shape up 2011-11-19T07:24:03 haha, i know my combat sucks, but i plan to rework it :) 2011-11-19T07:24:11 Fluxid: was there a conclusion in the lost command fiasco? 2011-11-19T07:25:14 mcstar: you mean lost commands from Yexo's bot? 2011-11-19T07:25:20 yep 2011-11-19T07:25:28 yeah, he did a fix and pull request, i merged it in 2011-11-19T07:25:41 but did it eliminate his problem? 2011-11-19T07:25:49 mcstar: the tcpserver used a python list instead of a thread-safe Queue to store incoming commands 2011-11-19T07:25:54 dunno, Yexo didn't say anythin since then ;) 2011-11-19T07:25:58 k 2011-11-19T07:26:01 after the merge I haven't seen the problem 2011-11-19T07:26:02 *** speakeasy has joined #aichallenge 2011-11-19T07:26:05 Yexo: cool 2011-11-19T07:26:06 thats good 2011-11-19T07:26:16 mcstar: want to talk game trees? :P 2011-11-19T07:26:23 antimatroid1: hey 2011-11-19T07:26:26 hey 2011-11-19T07:26:29 dunno, might be 2011-11-19T07:26:46 you're doing minimax yeah? 2011-11-19T07:26:55 sort of i dont call it that 2011-11-19T07:27:12 i always say a tree isnt a tree without branches 2011-11-19T07:27:12 are you doing an n player game tree or just you vs. opponents? 2011-11-19T07:27:21 *** TheLinker has joined #aichallenge 2011-11-19T07:27:22 n 2011-11-19T07:27:24 and what are you pruning by? 2011-11-19T07:27:29 heh 2011-11-19T07:27:33 *** grwip has joined #aichallenge 2011-11-19T07:27:36 who said i prune? 2011-11-19T07:27:36 :p 2011-11-19T07:27:40 you don't prune? 2011-11-19T07:27:46 what's your max number of ants per partition? 2011-11-19T07:27:51 10 2011-11-19T07:27:57 and that calculates? 2011-11-19T07:28:00 no 2011-11-19T07:28:04 that's up to like 5^n possible moves 2011-11-19T07:28:05 :D 2011-11-19T07:28:12 5^10* 2011-11-19T07:28:19 i could do 5^13 in 4 secs 2011-11-19T07:28:27 with my new combinatorics 2011-11-19T07:28:36 so 5^10 was perfectly ok 2011-11-19T07:28:36 what's your combinatorics? :P 2011-11-19T07:28:47 *** mj41 has quit IRC (Ping timeout: 245 seconds) 2011-11-19T07:28:49 but turned out my evaluation function is very costly 2011-11-19T07:29:01 its the same battle resolution as the one in ants-fight 2011-11-19T07:29:02 ohh, i hope mine isn't too bad 2011-11-19T07:29:20 so i have to tweak that 2011-11-19T07:29:26 what do you do? i track which ants i've moved then find ants that are battling based off those locations 2011-11-19T07:29:45 then work out outcomes like razed hills and number of friend/enemy ant deaths 2011-11-19T07:29:46 well thats too general 2011-11-19T07:29:49 and order state outcomes 2011-11-19T07:29:52 oh 2011-11-19T07:29:54 wait 2011-11-19T07:30:09 well yeah 2011-11-19T07:30:20 thats basically enumerating outcomes 2011-11-19T07:30:31 yeah 2011-11-19T07:30:46 so i'm setting it up like a kind of 1-ply minimax of me vs them 2011-11-19T07:31:08 if((len-mineCount)>0 and len<=5) 2011-11-19T07:31:11 where 1st layer has non-colliding moves from some of my ants and 2nd layer has non-friendly colliding moves from some enemy ants 2011-11-19T07:31:15 this is when my battle code kicks in 2011-11-19T07:31:35 and i don't bother checking states if alpha-beta would prune them 2011-11-19T07:31:54 alpha-beta sort of lost its meaning here 2011-11-19T07:32:03 i don't think it has how i've set it up 2011-11-19T07:32:06 the tree is tooo shallow 2011-11-19T07:32:35 you consider different player moves as different plies, sort of 2011-11-19T07:32:37 right? 2011-11-19T07:32:43 can still help skip checking outcomes for lots of states when doing enemy moves 2011-11-19T07:33:11 first layer is my ants non-colliding moves, second layer is enemy ants moves where friendly enemy ants don't collide 2011-11-19T07:33:38 i want a different optimization 2011-11-19T07:33:47 i dont know if i should say it 2011-11-19T07:33:52 then i sort of go through that dfs style and don't bother running the simulation if alpha beta would throw it out already 2011-11-19T07:33:58 lets go private 2011-11-19T07:34:02 :p 2011-11-19T07:35:05 I do it near the same way: 2011-11-19T07:35:16 1. Generate my [possible moves. 2011-11-19T07:35:40 2. For every my move generate enemy moves (here the alpha-beta is involved). 2011-11-19T07:38:31 If material evaluation is the same, I use position evaluation. 2011-11-19T07:40:01 If my_battle_ants count >= enemy_battle_ants count then I try to come closer, else to step back. 2011-11-19T07:40:27 Also I plan to use super_move and good_ove prunning. 2011-11-19T07:41:34 yep i sum up those variables for every move of mine 2011-11-19T07:41:36 and decide 2011-11-19T07:41:45 but my becomes very defensive 2011-11-19T07:41:57 for example i turned everything off after turn 100 2011-11-19T07:41:59 so i get many ants 2011-11-19T07:42:08 and watched how it evades the attacking ants 2011-11-19T07:42:18 it was very interesting 2011-11-19T07:42:33 everything except battle code* 2011-11-19T07:43:27 *** sigh has joined #aichallenge 2011-11-19T07:43:43 Super move is a move that one of the bests in this battle (like I killed all battle enemies without losses so I don't need to generate my other moves). 2011-11-19T07:44:07 *** speakeasy has quit IRC (Ping timeout: 260 seconds) 2011-11-19T07:44:13 how deep do you look ? 2011-11-19T07:44:18 more than one turn ? 2011-11-19T07:44:29 no 2011-11-19T07:45:14 Good move will be involved in big fights or if low time. There can be better moves but I must be pleased with this one. 2011-11-19T07:45:55 *** Harpyon has joined #aichallenge 2011-11-19T07:45:57 Also I must insert a little check to not be traped near the water. 2011-11-19T07:46:40 Also I plan to sort battles before solving them. 2011-11-19T07:47:36 So I can be sure that for every small battle I will find best solution and. 2011-11-19T07:47:52 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-11-19T07:48:14 * sort by ants involved 2011-11-19T07:49:17 Some people solves only battles with This is the purpos of Good move. 2011-11-19T07:49:39 *purpose 2011-11-19T07:52:50 antimatroid1: Are you trying to come up with some interesting ideas and alhorithms or to increase the tree sarch productivity? 2011-11-19T07:53:20 *search 2011-11-19T07:53:21 UncleVasya: pretty much, trying to make it so i can squeeze as many ants into each partition as possible 2011-11-19T07:53:37 i'm still working on my first implementation 2011-11-19T07:53:41 i have no idea how good it's going to work 2011-11-19T07:55:48 *** Anilm3 has joined #aichallenge 2011-11-19T07:59:39 *** lorill has quit IRC (Quit: Page closed) 2011-11-19T08:00:31 *** delt0r_ has joined #aichallenge 2011-11-19T08:01:16 *** Anilm3_ has joined #aichallenge 2011-11-19T08:12:27 *** NotABug has joined #aichallenge 2011-11-19T08:18:08 *** Fandekasp has quit IRC (Quit: leaving) 2011-11-19T08:18:55 *** Anilm3 has quit IRC (Quit: Page closed) 2011-11-19T08:19:17 *** Anilm3 has joined #aichallenge 2011-11-19T08:19:22 *** besh has joined #aichallenge 2011-11-19T08:21:06 *** Fandekasp has joined #aichallenge 2011-11-19T08:25:48 *** besh has quit IRC (Quit: Page closed) 2011-11-19T08:29:12 *** speakeasy has joined #aichallenge 2011-11-19T08:29:26 currently rewriting my complete AI logic.. 2011-11-19T08:29:40 done with food gathering, exploration next 2011-11-19T08:32:20 *** kilae has joined #aichallenge 2011-11-19T08:34:18 jix: lucky you, not much to rewrite than 2011-11-19T08:36:29 oops, my ants know if an enemy is within 29 steps 2011-11-19T08:43:22 39 2011-11-19T08:44:09 make it 42 2011-11-19T08:45:25 mcstar: if I will deactivate current submission than my new will have more priority? 2011-11-19T08:45:43 i dont think so 2011-11-19T08:46:05 you mean if you let your bot rest now 2011-11-19T08:46:13 your next ubmission will get more games? 2011-11-19T08:46:18 s* 2011-11-19T08:47:00 actually i dont know 2011-11-19T08:47:08 but i still dont think so 2011-11-19T08:47:19 Yep, I've heard this idea far before these buttons were made so I don't know if this implemented or not. 2011-11-19T08:47:57 Will you share your code after deadline? 2011-11-19T08:48:17 I hope to find a lot of your famous jokes there :) 2011-11-19T08:48:41 :S 2011-11-19T08:48:56 you will be disappointed 2011-11-19T08:49:11 i dont really comment my code 2011-11-19T08:49:33 and the labels are more or less named logically 2011-11-19T08:49:55 *** speakeasy has quit IRC (Ping timeout: 244 seconds) 2011-11-19T08:50:03 Oh the shame 2011-11-19T08:53:39 exp++, writing C extension to Python 2011-11-19T08:53:54 for* 2011-11-19T08:56:10 Fluxid: ? 2011-11-19T08:56:31 *** chridi has joined #aichallenge 2011-11-19T08:56:31 *** chridi has joined #aichallenge 2011-11-19T08:57:00 mcstar: i want to do something time consuming so i'm writing it in C 2011-11-19T08:57:27 i hope it will solve my problems, if not then i'll get a huge demotivational hit ;) 2011-11-19T08:57:44 ah, lucky you 2011-11-19T08:57:48 *** twymer has joined #aichallenge 2011-11-19T08:58:10 why lucky? 2011-11-19T08:58:31 you gonna get that "demotivational hit" and can get on with your real life 2011-11-19T08:59:06 this contest is interfering with mine quite much 2011-11-19T08:59:08 Fluxid: its always bugs that get you in C/C++ ...what i call "soft" bugs that do thing like only exist when you don't do a debug build 2011-11-19T08:59:18 mcstar: i had my real life for a long time, since my last upload 2011-11-19T08:59:20 or when a client uses it 2011-11-19T08:59:23 ;) 2011-11-19T08:59:28 *** epicmonkey has quit IRC (Ping timeout: 240 seconds) 2011-11-19T08:59:56 delt0r_: oh, i had this problem yesterday! 2011-11-19T09:00:03 lol 2011-11-19T09:00:09 something segfaulted in my system 2011-11-19T09:00:12 delt0r_: hai, have you checked my battle resolver? might come handy to you 2011-11-19T09:00:25 mcstar: nope 2011-11-19T09:00:35 so i started to recompile stuff with debugging symbols (i have gentoo) but then it stopped to crash! 2011-11-19T09:01:02 Fluxid: yea happens a lot... to do with how much more bad pointers you can get away with in a debug build 2011-11-19T09:01:04 Fluxid: lol, just like when i run my problematic code under valgrind, and it stops being problematic 2011-11-19T09:01:09 i think it's cosmic radiation influence on my RAM fault 2011-11-19T09:02:09 delt0r_: if you want to you can build it from source or download a binary 2011-11-19T09:04:12 uh 2011-11-19T09:04:27 how do i find local minimums in 2d array? 2011-11-19T09:04:54 *** valydo has joined #aichallenge 2011-11-19T09:05:00 some kind of gradient descent? 2011-11-19T09:05:44 *** TheLinker has quit IRC (Quit: Bye) 2011-11-19T09:05:52 i.e. you start on a cell, then goes to the lowest one in the neighborhood, and reiterate until you can't move anymore 2011-11-19T09:06:27 i need maek mkae mkea commands besides make 2011-11-19T09:06:31 argh just after that rewrite I have an even better idea for gathering food 2011-11-19T09:06:49 grwip: ok, i understand this in 2d 2011-11-19T09:06:51 1d 2011-11-19T09:07:04 but no idea how to optimally apply this to 2d 2011-11-19T09:07:11 maybe i'll google this first 2011-11-19T09:07:46 Fluxid: there is not much to google 2011-11-19T09:07:48 Fluxid: in 2d you have 8 or 4 neighbors (depending on the connectivity you choose) instead of 2 in 1d I guess 2011-11-19T09:08:02 that is a good way to find local minimums from a starting position 2011-11-19T09:08:09 minima* 2011-11-19T09:08:28 the only way to find global is by checking everything 2011-11-19T09:08:45 yeah, loop over row and col 2011-11-19T09:08:56 its fast for 100x100 2011-11-19T09:09:12 or even a bit bigger 2011-11-19T09:09:12 Fluxid: of course you can compute partial derivatives 2011-11-19T09:09:40 max map size is 256x256, I guess even for that iterating through each cell is really fast 2011-11-19T09:10:21 Fluxid: if your function behaves nicely, i.e. smooth enough, you might not want to "pixelate" it 2011-11-19T09:10:33 and just do it analytically 2011-11-19T09:10:37 mcstar: nice idea 2011-11-19T09:11:07 mcstar: would converge faster right? 2011-11-19T09:11:26 converge? 2011-11-19T09:11:39 to the local minima 2011-11-19T09:11:39 *minimum 2011-11-19T09:12:07 you mean like a conjugate gradient method? 2011-11-19T09:12:18 that would be fast yes 2011-11-19T09:12:39 hmm, maybe I just don't understand what you mean by analytically 2011-11-19T09:13:09 i dont know what is his function that he evaluates at the grid points 2011-11-19T09:13:23 he can do it fully analytically 2011-11-19T09:13:55 http://stackoverflow.com/questions/3684484/peak-detection-in-a-2d-array 2011-11-19T09:14:13 or he can write the \partial_x f(), \partial_y f() to the borad 2011-11-19T09:14:15 board* 2011-11-19T09:14:24 and look for double 0's 2011-11-19T09:14:34 and get all the local minimas by one sweep of the board 2011-11-19T09:14:45 so there are many possibilities 2011-11-19T09:15:04 mcstar, grwip i stopped to understand after partial derivatives 2011-11-19T09:15:12 i need to read on terms 2011-11-19T09:15:42 mcstar: ok I see know 2011-11-19T09:16:57 Fluxid: if it's for some kind of influence map and you just want to find the nearest peak for a particular ant then I guess the pseudo "gradient descent" I described before should run well 2011-11-19T09:17:07 Fluxid: probably the easies is to check every pixel, if it is lower than all of its nbors, it is a local minimum 2011-11-19T09:17:20 thats all there is to it 2011-11-19T09:17:34 mcstar: problems - there can be blobs of equal values 2011-11-19T09:17:43 so? 2011-11-19T09:17:48 that is not a local minimum 2011-11-19T09:18:09 hm, right 2011-11-19T09:18:15 there would be trouble with the derivatives in an analytical sense 2011-11-19T09:18:23 so it would lost its meaning 2011-11-19T09:18:32 but you can apply a little noise to it 2011-11-19T09:18:59 it really depends on what you are plannign to do with the extracted values 2011-11-19T09:19:04 what is the prupose of all this 2011-11-19T09:19:12 so pick the right one 2011-11-19T09:19:15 then, in ants terms - i need to find edges to the "blobs" of lowest values in area 2011-11-19T09:19:51 edges are no problem, but what about blobs ;) 2011-11-19T09:20:11 flood algorithm? 2011-11-19T09:20:13 i thought that what i want to do would be simpler 2011-11-19T09:20:18 are you adding manhattan distance from multiple sources? 2011-11-19T09:20:43 mcstar: what do you mean? 2011-11-19T09:21:15 board[row,col]=md(pos1,row,col)+md(pos2,row,col)+... 2011-11-19T09:21:40 because this leads to regions of equal values 2011-11-19T09:21:45 just a guess 2011-11-19T09:25:08 yeah, a rather complicated flood fill could do it... 2011-11-19T09:26:15 we still dont know WHAT it could do 2011-11-19T09:26:21 not that i want you to tell me 2011-11-19T09:26:31 its just hard to help if you dont know the parameters 2011-11-19T09:26:33 mcstar: i'm afraid i'm not able to explain 2011-11-19T09:26:39 k 2011-11-19T09:27:12 i'm bad with words in my native language, and i'm worse in english so.. 2011-11-19T09:27:45 where are you from? 2011-11-19T09:28:09 italy? 2011-11-19T09:28:56 i'd flood fill from one position, when i find a lower value i "cancel" all the filled cells and further filling of given value, and continue filling the lower value... 2011-11-19T09:29:00 mcstar: poland 2011-11-19T09:29:11 ants.fluxid.pl, im stupid 2011-11-19T09:29:16 ;) 2011-11-19T09:29:54 Fluxid: thats not a compilcated alg 2011-11-19T09:29:56 i have it too 2011-11-19T09:30:06 and i have a more complicated version of it 2011-11-19T09:30:15 it just coputes the voronoi regions 2011-11-19T09:30:20 computes* 2011-11-19T09:30:28 by a given distanec metric 2011-11-19T09:31:19 but then i thought if i want to move ants to area of lower density... there will be local minimum between three ants close to each other, so those ant would be attracted to each other, ignoring larger blobs of seriously unhabited areas 2011-11-19T09:32:00 i see 2011-11-19T09:32:08 i useit for a completely different purpose 2011-11-19T09:32:15 not for exploration 2011-11-19T09:33:07 so i need a way to determine if given minimum is interesting... or maybe i'll just look for global minimum 2011-11-19T09:33:12 mcstar: what method do you use for exploration? 2011-11-19T09:33:24 daaaamn, it's all useless, along with my c extension 2011-11-19T09:33:30 :( 2011-11-19T09:33:40 grwip: first i used diffusion 2011-11-19T09:33:47 but i dont anymoew 2011-11-19T09:33:51 re 2011-11-19T09:33:52 mcstar: I use that now 2011-11-19T09:33:56 or maybe not 2011-11-19T09:34:12 I started with some more complex stuff but diffusion seems to works well 2011-11-19T09:34:14 grwip: i use the Ant's algorithm now 2011-11-19T09:34:30 mcstar: hmm what's that? 2011-11-19T09:34:38 i cant say 2011-11-19T09:34:41 :D 2011-11-19T09:34:46 why dont you google a bit 2011-11-19T09:35:37 I thought about that, but I thought this algorithm would not work if the ants don't have to come back to the hill 2011-11-19T09:35:45 I have to read a bit further I think... 2011-11-19T09:36:13 ant colony? 2011-11-19T09:36:35 not ant colony optimization 2011-11-19T09:36:47 ant terrain exploration 2011-11-19T09:36:59 really the simplest possible but works real well 2011-11-19T09:37:30 There's surprisingly many results for ant related algos 2011-11-19T09:39:53 Just finished ai-class midterm :F 2011-11-19T09:40:09 pairofdice: hehe me too 2011-11-19T09:40:37 pairofdice: I don't like the first question 2011-11-19T09:40:58 pairofdice: but the rest was ok 2011-11-19T09:41:02 Me neither, it's too ambiguous 2011-11-19T09:43:19 *** raemde has joined #aichallenge 2011-11-19T09:53:11 Next week topics look like they should be ant-relevant 2011-11-19T09:53:27 and again rewrote the path finding... now it'll use the ants beautifully efficient _and_ is fast 2011-11-19T09:55:50 jix: dont jinx that 2011-11-19T09:56:09 *** rmmh has quit IRC (Quit: IL->CO) 2011-11-19T10:01:57 not sure why so many have problems with path finding... 2011-11-19T10:02:17 this isn't about path finding 2011-11-19T10:02:33 it's about selecting the righ pairs of poins to find paths inbetween 2011-11-19T10:02:36 *** mjwhitt has left #aichallenge 2011-11-19T10:02:36 *right 2011-11-19T10:02:43 finding the path from all ants to any/all of the closest food is only O(n) 2011-11-19T10:02:56 yeah and a bad policy 2011-11-19T10:03:13 if there are two foods next to each other why send two ants? 2011-11-19T10:03:20 gives you o(1) stabing quires too 2011-11-19T10:03:25 queries 2011-11-19T10:03:40 it won't do that... well it easy not too 2011-11-19T10:03:56 the first ant is closer to both... so only send one... 2011-11-19T10:04:08 delt0r_: so you're searching from all foods to the closest ants 2011-11-19T10:04:09 its the stratagy that is hard 2011-11-19T10:04:16 (the opposite of what you wrote) 2011-11-19T10:04:24 same thing 2011-11-19T10:04:26 still that alone is worse than what I do now 2011-11-19T10:04:35 delt0r_: certainly not... try it for some examples 2011-11-19T10:04:37 its O(n) where n is the number of tiles 2011-11-19T10:04:44 delt0r_: yeah but the result is different 2011-11-19T10:04:47 wiich is the same as worst case A* 2011-11-19T10:04:54 jix: no ? 2011-11-19T10:05:11 Isn't it O(n^2) 2011-11-19T10:05:11 a closest to b is impies b closest to a 2011-11-19T10:05:15 no 2011-11-19T10:05:33 you only need to vist each tile once only 2011-11-19T10:05:53 delt0r_: if b is the closest food of ant a it doesnt mean a is the closest ant of food b 2011-11-19T10:05:58 you are only finding the Closest ant to food or visa versa 2011-11-19T10:06:03 delt0r_: because you have two seperate classes and are only interested into the differences between them 2011-11-19T10:06:05 *** nle85 has quit IRC (Ping timeout: 265 seconds) 2011-11-19T10:06:21 delt0r_: example: F f A 2011-11-19T10:06:27 i find the closest PAIRS 2011-11-19T10:06:29 A is the closest ant to F but F isn't the closest food to A 2011-11-19T10:06:39 ie if i find ant a is closest to food f 2011-11-19T10:06:50 then yes its is the closest GLOBALY 2011-11-19T10:06:59 its not a pairwise comparason 2011-11-19T10:07:04 comparason 2011-11-19T10:07:09 :D 2011-11-19T10:07:11 whatever you get the idea 2011-11-19T10:07:35 delt0r_: ok so you'd completly ignore F in my example then? 2011-11-19T10:07:56 so search from all ants at once to all food at once... I get the pairs of ants and food that are closest 2011-11-19T10:08:47 in fact you don't need to have the "food" since you can just set up a map that is O(1) for stabing quires .. gives the closest ant/food and path to from it 2011-11-19T10:09:26 *** UncleVasya has quit IRC () 2011-11-19T10:11:42 *** u_ has joined #aichallenge 2011-11-19T10:12:04 *** besh has joined #aichallenge 2011-11-19T10:12:26 *** u__ has joined #aichallenge 2011-11-19T10:14:11 sorry jix didn't notice your reply 2011-11-19T10:14:23 don't under stand what you mean with F f A 2011-11-19T10:14:41 * delt0r_ getting coffee but still watching the internets 2011-11-19T10:15:25 meant to demonstrate closeness is not relexive 2011-11-19T10:15:34 f 2011-11-19T10:15:59 *** u_ has quit IRC (Ping timeout: 248 seconds) 2011-11-19T10:15:59 *** u__ is now known as u_ 2011-11-19T10:16:18 but it can be if you define the set you are looking for as the closest pairs. 2011-11-19T10:16:34 * delt0r_ tries to remember set notation 2011-11-19T10:16:36 yes, but here was a disagreemnt between you 2 2011-11-19T10:16:49 you are not looking for the same thing 2011-11-19T10:16:53 anyway its moto 2011-11-19T10:16:55 moot 2011-11-19T10:17:02 ...And when you gaze long into the Internet the Internet also gazes into you 2011-11-19T10:17:03 moto... lol 2011-11-19T10:17:31 * delt0r_ continues with real coffee 2011-11-19T10:21:40 delt0r_: I understand now what you mean, still I think my current approach is better 2011-11-19T10:21:53 probably 2011-11-19T10:22:21 Is there an existing algorithm that can be used to maximize area coverage. Most top bots seem to have. This game f.i http://ants.fluxid.pl/replay.5849 , red fills up the whole area. 2011-11-19T10:26:27 red? 2011-11-19T10:26:39 besh: even my potentental map one did that... just have attraction to Unseen tiles and cant see tiiles 2011-11-19T10:26:53 potential map version 2011-11-19T10:26:54 sorry i meant orange 2011-11-19T10:27:00 My problem is keeping the ant where it is once the tile is "visited". Recycling unseen tiles did not work well enough. 2011-11-19T10:27:15 delt0r_: orange is better than that i think 2011-11-19T10:27:55 deltor: i tried recycling unseen tiles. The kind of algorithm used by orange is advanced i think. 2011-11-19T10:28:03 orange does very well in "escaping" ants 2011-11-19T10:28:12 *** mj41 has joined #aichallenge 2011-11-19T10:28:56 i get an erection watching it leading out the ants from the hive 2011-11-19T10:29:05 besh: have a sweep that lowers the value of how "current" the data is? 2011-11-19T10:30:35 wow 2011-11-19T10:30:59 orange is sexy 2011-11-19T10:31:12 it is 2011-11-19T10:32:45 he has some kind of bifurcation 2011-11-19T10:33:31 maybe that whole behavior is just the result of his exclusion code 2011-11-19T10:33:46 i.e. to forbid ants stepping on each other 2011-11-19T10:34:41 Lot of other top bots have that too that made me think if there is a well known algorithm that I missed. 2011-11-19T10:34:46 Another one http://ants.fluxid.pl/replay.4829 2011-11-19T10:35:43 mcstar: yeah, my ants get that behaviour aswell and they do nothing fancy 2011-11-19T10:35:50 sometimes anyway 2011-11-19T10:36:13 *** sigh has quit IRC (Remote host closed the connection) 2011-11-19T10:36:39 And sometimes my ants do something very embarrassing: http://aichallenge.org/visualizer.php?game=106023 2011-11-19T10:37:11 This is typical behaviour for most top bots and I suspect it is not something you get as a side effect. Maybe I am wrong. 2011-11-19T10:38:30 That behaviour sies very easily when you don't allow ants to step on each other 2011-11-19T10:38:34 rises 2011-11-19T10:39:02 you mean not to step with in the vision radius? 2011-11-19T10:39:12 huh? 2011-11-19T10:39:48 besh: not to step on your own ants 2011-11-19T10:39:57 enough replays time to code 2011-11-19T10:40:03 that just avoids suicide.. 2011-11-19T10:40:06 *** Antimony has joined #aichallenge 2011-11-19T10:40:14 and more sometimes 2011-11-19T10:40:19 depends how you do it 2011-11-19T10:40:26 how do you resolve such situations 2011-11-19T10:40:40 i think it can lead to this follow each other out behavior 2011-11-19T10:40:52 Yeah. If a tile is taken, choose another 2011-11-19T10:40:56 you have to place ants to maximize vision (spread out). 2011-11-19T10:42:15 *** Tombana has joined #aichallenge 2011-11-19T10:42:19 *** Tombana has left #aichallenge 2011-11-19T10:42:47 *** Tombana has joined #aichallenge 2011-11-19T10:43:08 *** Tombana has left #aichallenge 2011-11-19T10:43:12 *** Tombana has joined #aichallenge 2011-11-19T10:43:37 besh: you dont want to spread in mazes 2011-11-19T10:43:42 not like on open maps 2011-11-19T10:44:01 the worst is when your hill is in the bottom of a maze-end 2011-11-19T10:44:12 you relly want to have coordinated guiding 2011-11-19T10:45:28 I think it is desirable behaviour even in mazes. You can always guard your hills with a few ants until you sense danger. 2011-11-19T10:46:08 no id didnt mean it like that 2011-11-19T10:46:13 -d 2011-11-19T10:46:25 you dont want to clump ants in mazes 2011-11-19T10:46:50 if you do simple spreading in mazes, gas filling up a volume 2011-11-19T10:47:00 it is not desirable 2011-11-19T10:47:32 you want your ants to follow those which reached the furthest from the hill in minimal steps 2011-11-19T10:47:56 actually this is a good idea 2011-11-19T10:48:00 i will try it out 2011-11-19T10:48:15 ok. I understand. What they seem to do in mazes is own some territory around hills quickly and combat at the frontier. Then gradually expand until you gain all of it. 2011-11-19T10:48:57 yeah 2011-11-19T10:49:10 and you dont want to patrol explored territory too often 2011-11-19T10:49:18 yo inhibit food spawning 2011-11-19T10:49:33 close off areas, to harvest the food a couple of turns later 2011-11-19T10:51:06 Does food get spawned where there are less ants ? 2011-11-19T10:51:23 yes 2011-11-19T10:51:42 i think 2011-11-19T10:51:47 i missed that. I thought if I fill out the whole area chances are I get more food. 2011-11-19T10:52:49 i think theres a greater probability of spawning in open areas than near ants 2011-11-19T10:53:07 this might be some emergent food spawning behavior 2011-11-19T10:53:12 i might be wrong too 2011-11-19T10:53:26 i dont have a solid argument right now 2011-11-19T10:54:32 one reason to maximize vision is to get more food. I do initial exploration of unseen tiles fairly well but maximizing vision is difficult. 2011-11-19T10:56:30 *** kaemo has quit IRC (Remote host closed the connection) 2011-11-19T10:58:27 *** mj41 has quit IRC (Ping timeout: 252 seconds) 2011-11-19T11:01:22 *** treeform has joined #aichallenge 2011-11-19T11:01:43 *** kaemo has joined #aichallenge 2011-11-19T11:07:59 *** praveen has joined #aichallenge 2011-11-19T11:09:22 Two more games: http://ants.fluxid.pl/replay.4832 and http://ants.fluxid.pl/replay.4844 2011-11-19T11:09:38 see how bruno5 controls a territory and defends it at the frontier. 2011-11-19T11:10:25 some of his ants do not move for a couple of turns if they are placed right. 2011-11-19T11:10:50 my bot moves all of its ants every turn ... 2011-11-19T11:12:29 haha 2011-11-19T11:12:38 nice to see ben jackson beig owned 2011-11-19T11:13:44 bruno's code isnt perfect either 2011-11-19T11:13:56 theres a situation when 2 of his could kill 1 2011-11-19T11:14:05 .... 2011-11-19T11:14:10 %%a% 2011-11-19T11:14:12 Especially the first game, see how blue controls area. 2011-11-19T11:14:13 %%%% 2011-11-19T11:14:30 in a situation like this 2 of his can kill the 1 wo loss 2011-11-19T11:14:31 *** NightExcessive has joined #aichallenge 2011-11-19T11:14:33 may be not his fighting, but his territory control is awesome. 2011-11-19T11:15:04 *** Blkt has quit IRC (Quit: ERC Version 5.3 (IRC client for Emacs)) 2011-11-19T11:17:13 if you have two ants that are on the opposite sides of a hostile ant, you can't guarantee no losses 2011-11-19T11:18:04 .bb. 2011-11-19T11:18:05 .... 2011-11-19T11:18:08 .... 2011-11-19T11:18:12 %a%%% 2011-11-19T11:18:13 %%%% 2011-11-19T11:18:37 oh 2011-11-19T11:18:52 *** flag has joined #aichallenge 2011-11-19T11:22:27 *** praveen has quit IRC (Ping timeout: 265 seconds) 2011-11-19T11:22:30 % is wall right? Cornering an ant is a good fighting strategy. If you do it on the open area , there is a chance the enemy ant could collide with one of your ants and take one down with it. 2011-11-19T11:23:18 % is water 2011-11-19T11:23:24 *** praveen has joined #aichallenge 2011-11-19T11:23:28 ants can climb walls but cant swim 2011-11-19T11:23:32 yes 2011-11-19T11:24:04 *** praveen has quit IRC (Client Quit) 2011-11-19T11:24:19 well, you can try to learn ants swim 2011-11-19T11:24:23 but teh won't listen :( 2011-11-19T11:24:31 they* 2011-11-19T11:24:50 when i was a kid i used to deep-freeze ants 2011-11-19T11:25:13 i wanted to perfect hybernation 2011-11-19T11:25:27 deep-freeze? using nitrogen or helium? 2011-11-19T11:25:33 i wanted to make a machine that would hybernate me and i would wake up in the far-future 2011-11-19T11:25:42 Fluxid: refrigerator :D 2011-11-19T11:25:47 -10 max 2011-11-19T11:26:30 mcstar: i guess you're from 1950, you succeeded and survived 60 years until recent power outage near your hibernation system? 2011-11-19T11:26:59 is it that obvious? 2011-11-19T11:26:59 *** Chris_0076 has quit IRC (Quit: Leaving) 2011-11-19T11:27:07 i dont fit in this time 2011-11-19T11:27:15 now you must go back :D 2011-11-19T11:27:35 that would be considerable harder 2011-11-19T11:27:38 y 2011-11-19T11:27:58 ride a neutrino 2011-11-19T11:31:56 [9,7,13,210,0] 2011-11-19T11:32:03 beating 3 of my old bots 2011-11-19T11:32:35 *** speakeasy has joined #aichallenge 2011-11-19T11:37:49 hello, could someone help me with the TCP server? 2011-11-19T11:38:05 i went to ants.fluxid.pl and downloaded the tcp client file 2011-11-19T11:38:14 *** Antimony has quit IRC (Ping timeout: 252 seconds) 2011-11-19T11:38:19 but i get many syntax errors when i run it 2011-11-19T11:38:23 *** ztfw has joined #aichallenge 2011-11-19T11:38:29 you need a better python 2011-11-19T11:38:31 anyone have similar issues? 2011-11-19T11:38:34 ah ok 2011-11-19T11:38:36 where do i get it 2011-11-19T11:38:56 from the world's number one python distribution: PyMart 2011-11-19T11:39:08 yea i mean what version do i need 2011-11-19T11:39:12 cuz i think i got 3.2.2 2011-11-19T11:39:13 2.7 2011-11-19T11:39:14 2.7, right? 2011-11-19T11:39:28 ah, older version 2011-11-19T11:39:29 ok 2011-11-19T11:39:32 thanks :D 2011-11-19T11:40:07 should i uninstall the older one first? 2011-11-19T11:40:12 (newer one i mean) 2011-11-19T11:41:12 dunno 2011-11-19T11:41:14 windows? 2011-11-19T11:41:44 probably you dont need to 2011-11-19T11:41:52 just make sure the path is correct 2011-11-19T11:42:10 and change the script if necessary to call the right version 2011-11-19T11:44:18 yea it works 2011-11-19T11:44:24 changed the path variable 2011-11-19T11:44:31 thanks 2011-11-19T11:44:51 so how come the tcp servers can do games much faster than the normal aichallenge servers? 2011-11-19T11:45:11 The bot runs on your computer, not on the server 2011-11-19T11:45:33 yea i got that, but they still have to wait for the bots to complete their turns 2011-11-19T11:45:38 that won't go faster? 2011-11-19T11:45:50 The server can run many games at once 2011-11-19T11:46:26 and all the bots in each game at the same time 2011-11-19T11:46:29 oh ofc -_- 2011-11-19T11:46:34 ok awesome 2011-11-19T11:46:43 Tombana: the server has >10k users 2011-11-19T11:46:50 tcp does not 2011-11-19T11:47:10 i see 2011-11-19T11:47:31 *** JorgeB has joined #aichallenge 2011-11-19T11:48:24 by the way, currently i'm doing breadth-first-search on all my ants, and its taking about 250 ms when i have 100 ants (and depends on map type). Would you say that that is good enough or is it way too slow? I'm not sure what the speed of this stuff should be 2011-11-19T11:48:49 i mean, it works, but i'm thinking that it should be way faster 2011-11-19T11:49:07 (i'm already using stuff like binary heaps for sorting arrays) 2011-11-19T11:49:52 slow 2011-11-19T11:50:33 ok so should i improve the algorithm or not use bfs search at all ? 2011-11-19T11:51:01 i mean, is it possible to have faster bfs searches? 2011-11-19T11:51:09 Definitely yes 2011-11-19T11:52:22 *** digger3 has quit IRC (Read error: Operation timed out) 2011-11-19T11:55:44 Tombana: where do you need to sort stuff for a bfs? 2011-11-19T11:56:07 what do you mean? 2011-11-19T11:56:09 oh 2011-11-19T11:56:10 eeuh 2011-11-19T11:56:27 well i kinda first made an A* one and then set the heuristic to zero :P 2011-11-19T11:56:40 so it continues at the square with the lowest distance to start 2011-11-19T11:57:07 but that doesnt really make sense now :S 2011-11-19T11:57:08 lol 2011-11-19T11:57:27 oh and my bfs is limited to paths of 80 squares or so 2011-11-19T11:57:33 well you'll have a dijsktra then 2011-11-19T11:57:40 hmm yeah 2011-11-19T11:57:51 is normal bfs faster? 2011-11-19T11:58:03 but for unweighted graphs a bfs will get the same result but will be way faster 2011-11-19T11:58:17 i feel so stupid ;p 2011-11-19T11:58:52 it's really just having a fifo queue + an array to mark visited fields... dequeue one field, add all unseen neighbors and mark them visited, repeat 2011-11-19T11:58:55 so for a bfs you continue at any node in the 'open set' ? 2011-11-19T11:59:01 hmm 2011-11-19T11:59:18 Tombana: no it has to be a fifo queue 2011-11-19T11:59:47 but you still have to do the part where, if you find a node that you have visited, check if the distance via the current path is shorter, and then update the parent ?? 2011-11-19T11:59:57 Tombana: no 2011-11-19T12:00:15 cuz i've been doing that 2011-11-19T12:00:19 ok so i'm doing this all wrong then 2011-11-19T12:00:26 i'll research bfs searches and update it 2011-11-19T12:00:30 thanks for the help 2011-11-19T12:00:58 *** u_ has quit IRC (Ping timeout: 258 seconds) 2011-11-19T12:01:26 Why would it have to be a fifo queue 2011-11-19T12:01:38 pairofdice: because otherwise it's not a bfs? 2011-11-19T12:01:58 i have a ring for that 2011-11-19T12:02:13 and its like a fifo 2011-11-19T12:02:24 i just dont want to use dynamic sizes 2011-11-19T12:02:35 Sure it would be 2011-11-19T12:03:06 pairofdice: well either it wouldn't be a bfs, or it would be more complex than needed 2011-11-19T12:03:32 More complex than doing it individually for every goal 2011-11-19T12:04:14 Or dunno, Well whatever 2011-11-19T12:04:24 pairofdice: eh? sure we're talking about the same thing? 2011-11-19T12:05:28 *** speakeasy has quit IRC (Ping timeout: 240 seconds) 2011-11-19T12:06:16 for bfs you dont need any kind of sorting or heuristics or prioritization 2011-11-19T12:06:21 pfff i feel like such an idiot for not seeing this 2011-11-19T12:06:30 you get them out the way you put them in 2011-11-19T12:06:34 fifo queueu will do this by itself 2011-11-19T12:06:36 Yeah, I just use sets 2011-11-19T12:06:43 pairofdice: sets? 2011-11-19T12:07:02 for simple bfs? 2011-11-19T12:07:08 sets are simple 2011-11-19T12:07:11 ;p 2011-11-19T12:07:18 pairofdice: and how do you select the element to expand next? 2011-11-19T12:07:19 sets?? 2011-11-19T12:07:27 sets??? 2011-11-19T12:07:30 :D 2011-11-19T12:07:34 WHAT! 2011-11-19T12:07:35 i woudl never use a set here 2011-11-19T12:08:18 i dont see the point of a set here 2011-11-19T12:08:46 and eeuhm, is the normal std::queue in c++ fast enough or is it worth the time to try to make a faster one 2011-11-19T12:08:48 *** chridi has quit IRC (Read error: Operation timed out) 2011-11-19T12:08:53 There is not point 2011-11-19T12:09:21 Well, apart from membership 2011-11-19T12:10:28 pairofdice: how do you determine which unexpanded element is among those with shortest distance? 2011-11-19T12:10:49 jix? all my expanded nodes have the same distance 2011-11-19T12:11:13 pairofdice: ? 2011-11-19T12:11:18 jix has a good point 2011-11-19T12:11:25 I don't think he does 2011-11-19T12:11:26 pairofdice: ah so you always have two sets... one that you're expanding and one you put in new nodes into 2011-11-19T12:11:31 Yeah 2011-11-19T12:11:33 f 2011-11-19T12:11:41 pairofdice: and you dont feel like mentioning it? 2011-11-19T12:12:05 so you rather have 2 sets than 1 simple queue 2011-11-19T12:12:15 thats your problem, im outta here 2011-11-19T12:12:17 Yes 2011-11-19T12:12:33 next you gonna say you use python 2011-11-19T12:13:03 lol 2011-11-19T12:13:34 :) 2011-11-19T12:13:58 Well, I've coded for all of 1 month. Don't expect me to be optimal 2011-11-19T12:14:24 pairofdice: one month since you started py? 2011-11-19T12:14:32 pairofdice: why 2 sets? 2011-11-19T12:14:51 Anilm3: one for distance n, one for distance n+1 2011-11-19T12:15:12 that's strange 2011-11-19T12:15:28 It is a bit 2011-11-19T12:15:48 are you nodes weighted? 2011-11-19T12:15:57 well from the point of seeing that the algorithm finds shortest paths I think it's a nice representation 2011-11-19T12:16:04 from the point of beeing efficient it's horrible 2011-11-19T12:16:29 I'll have to see how it fares with deque 2011-11-19T12:16:34 deque would be better 2011-11-19T12:16:57 if you have weights a 2 set approach might be better 2011-11-19T12:17:18 maybe not your approach 2011-11-19T12:17:19 Anilm3: if you have weights you'd need dijsktra anyway 2011-11-19T12:17:51 what if you don't have a stablished target? 2011-11-19T12:18:23 Anilm3: dijkstra is just an algorithm to visit all nodes in a graph in order of increasing distance, just like bfs 2011-11-19T12:18:54 I see 2011-11-19T12:18:55 except it works with weighted graphs, unlike bfs 2011-11-19T12:19:47 *** kilae has quit IRC (Quit: ChatZilla 0.9.87 [Firefox 8.0/20111104165243]) 2011-11-19T12:20:49 *** JorgeB has quit IRC (Ping timeout: 244 seconds) 2011-11-19T12:27:58 mcstar: what language are you using? 2011-11-19T12:29:41 *** kaemo has quit IRC (Quit: Lost terminal) 2011-11-19T12:29:53 *** u_ has joined #aichallenge 2011-11-19T12:30:21 *** mikewintermute has joined #aichallenge 2011-11-19T12:34:21 c++11 2011-11-19T12:34:21 *** traMKer has joined #aichallenge 2011-11-19T12:34:31 oh right! 2011-11-19T12:35:09 are you using any new features or only the new library? 2011-11-19T12:35:46 yes 2011-11-19T12:36:08 to what? 2011-11-19T12:36:12 yes 2011-11-19T12:36:15 :D 2011-11-19T12:36:31 new features+new stl 2011-11-19T12:36:48 ok 2011-11-19T12:37:10 I have to read the standard 2011-11-19T12:37:28 unordered_map, unordered_set, lambda, auto 2011-11-19T12:38:16 the stl needed the unordered_map and set! 2011-11-19T12:38:47 im new to c++ so i dont have strong opinions 2011-11-19T12:45:29 *** speakeasy has joined #aichallenge 2011-11-19T12:49:07 *** besh has quit IRC (Quit: Page closed) 2011-11-19T12:49:16 *** u_ has quit IRC (Ping timeout: 258 seconds) 2011-11-19T12:50:22 *** treeform has quit IRC (Remote host closed the connection) 2011-11-19T12:53:20 *** Anilm3 has quit IRC (Quit: leaving) 2011-11-19T12:57:12 *** traMKer has left #aichallenge ("I'm a happy Miranda IM user! Get it here: http://miranda-im.org") 2011-11-19T12:59:04 *** kara has quit IRC () 2011-11-19T13:00:11 *** nplus has quit IRC (Remote host closed the connection) 2011-11-19T13:04:04 hey now! 2011-11-19T13:04:07 [08:12] nice to see ben jackson beig owned 2011-11-19T13:04:36 :S 2011-11-19T13:04:45 you werent supposed to see that 2011-11-19T13:04:58 I was reading scrollback looking to see if any good ideas leaked out 2011-11-19T13:05:45 what can i say? i meant it 2011-11-19T13:06:00 *** Harpyon has quit IRC (Quit: Computer has gone to sleep.) 2011-11-19T13:06:07 you were very good on tcp 2011-11-19T13:11:25 *** hummingz has joined #aichallenge 2011-11-19T13:11:27 *** valydo has quit IRC (Ping timeout: 248 seconds) 2011-11-19T13:11:47 BenJackson: peace? 2011-11-19T13:12:29 ? 2011-11-19T13:13:01 *** JorgeB has joined #aichallenge 2011-11-19T13:14:25 *** hummingz has quit IRC (Client Quit) 2011-11-19T13:15:22 *** Rinum has joined #aichallenge 2011-11-19T13:15:54 wow, the bots now are getting better! I just dropped in rank by 100 in the past week 2011-11-19T13:16:12 but xathis is still #1 lol 2011-11-19T13:17:34 must feel good to be xathis now 2011-11-19T13:18:18 oh yeah 2011-11-19T13:18:30 *** Antvolution has joined #aichallenge 2011-11-19T13:19:21 mcstar: oh I'm just joking 2011-11-19T13:19:41 BenJackson: k, i dont always know if i went too far 2011-11-19T13:19:55 my aichallenge entry is still creeping up by way of reduced sigma 2011-11-19T13:21:40 *** Antimony has joined #aichallenge 2011-11-19T13:26:58 *** Garf has joined #aichallenge 2011-11-19T13:29:59 *** nplus has joined #aichallenge 2011-11-19T13:30:00 *** dkdineshk3 has joined #aichallenge 2011-11-19T13:30:10 the attackradius2 is currently 5 2011-11-19T13:30:21 do I take the sqrt of that? 2011-11-19T13:30:28 to get the euclidean distance 2011-11-19T13:30:50 yes 2011-11-19T13:30:55 thanks 2011-11-19T13:31:27 (though its faster/less prone to roundoff to just keep everything in squared form) 2011-11-19T13:32:14 if sqrt(dx^2 + dy^2) < sqrt(attackradius2) then dx^2+dy^2 < attackradius2 2011-11-19T13:32:40 right 2011-11-19T13:32:55 for some reason the C++ bot takes the sqrt at startup and I haven't bothered to restructure it not to 2011-11-19T13:33:58 it works as long as its a stictly monoton increasing function 2011-11-19T13:34:02 e 2011-11-19T13:34:04 http://fluxid.pl/misc/2011-11-19-192911_568x423_scrot.png i've got a funny effect 2011-11-19T13:34:36 i.e.? 2011-11-19T13:34:42 fluxid: you seem to be working on the same thing I've been pondering 2011-11-19T13:34:51 clumping? 2011-11-19T13:35:09 de-clumping 2011-11-19T13:35:21 he is clumping 2011-11-19T13:35:30 no, it is not intended 2011-11-19T13:35:32 tries to spread over the area while keeping ants close 2011-11-19T13:35:38 well you're allowed to clump once you cover the whole map :) 2011-11-19T13:35:50 i wanted to distibute "ant density" equally across a map... 2011-11-19T13:36:08 your function becomesdegenerate near ants 2011-11-19T13:36:33 are you gonna keep it? 2011-11-19T13:36:37 *** speakeasy has quit IRC (Ping timeout: 240 seconds) 2011-11-19T13:37:18 i sound like a doctor in an abortion clinique 2011-11-19T13:38:45 *** McLeopold has joined #aichallenge 2011-11-19T13:42:46 i just realized what the circles around the ants mean x.x it's the attack radius lol 2011-11-19T13:42:55 uh, it just seems that ants find configuration in which they don't need to move too much to keep distribution... and they naturally group 2011-11-19T13:43:17 no idea what causes this grouping, since ants try to repell each other... 2011-11-19T13:43:45 weird 2011-11-19T13:44:20 *** og01 has quit IRC (Ping timeout: 260 seconds) 2011-11-19T13:46:00 Ants and the lowest energy state 2011-11-19T13:46:26 *** og01 has joined #aichallenge 2011-11-19T13:56:14 *** speakeasy has joined #aichallenge 2011-11-19T14:02:37 *** Harpyon has joined #aichallenge 2011-11-19T14:03:09 such a warm fuzzy feeling when you upload a new bot and see "Next game should be any time now. 2011-11-19T14:03:26 Fluxid: My problem is that I know what I want (eg I could write some kind of global score function) but my attempts to take shortcuts for efficiency keep twisting the meaning in unintended ways 2011-11-19T14:03:47 twymer: oh, is it time to update? I've been deactivated for days 2011-11-19T14:06:44 *** Antimony has quit IRC (Ping timeout: 244 seconds) 2011-11-19T14:10:00 *** speakeasy has quit IRC (Ping timeout: 260 seconds) 2011-11-19T14:10:03 *** Chris_0076 has joined #aichallenge 2011-11-19T14:10:07 BenJackson: solve it brute force first, then optimize until it breaks 2011-11-19T14:11:01 o.O 2011-11-19T14:11:05 well when move spaces are 5^n that doesn't really work 2011-11-19T14:11:22 works will 10,11 2011-11-19T14:11:26 till* 2011-11-19T14:12:10 *** Harpyon has quit IRC (Quit: Computer has gone to sleep.) 2011-11-19T14:13:03 5^10 ?? 2011-11-19T14:13:34 i can generate 5^13 moves in 4 secs 2011-11-19T14:13:58 *** speakeasy has joined #aichallenge 2011-11-19T14:14:01 so 5^11 in 0.4 sec 2011-11-19T14:14:06 no less 2011-11-19T14:14:11 in 4/25 sec 2011-11-19T14:14:15 so 0.16 sec 2011-11-19T14:14:23 thats pretty neat 2011-11-19T14:14:48 this is just the enumeration 2011-11-19T14:14:53 no evaluation 2011-11-19T14:15:03 but this is for the combat part right? 2011-11-19T14:15:03 one of my recent revelations is that (don't laugh) every ant can only move in 4 directions 2011-11-19T14:15:24 so if an ant might be in a dangerous position you use this to decide wether it can move to a square ? 2011-11-19T14:15:26 BenJackson: how do you mean? 2011-11-19T14:15:33 I worked out this clever way to de-incentivize the algorithm from sending multiple ants to get one food (eg) 2011-11-19T14:15:39 i mean what did you think before? 2011-11-19T14:15:55 however LOTS of ants will get closer to food if they go 1 step E 2011-11-19T14:15:55 whoa! ants can attack across water? 2011-11-19T14:16:05 Rinum oh yes 2011-11-19T14:16:24 water is irrelevant to combat except as it limits movement 2011-11-19T14:16:34 that changes everything! 2011-11-19T14:16:41 thats why i dont have water on my combat simulator 2011-11-19T14:16:43 everyone should go read the focus combat resolution code. it's dirt simple 2011-11-19T14:16:49 Rinum: have you checked it? 2011-11-19T14:17:12 i haven't 2011-11-19T14:17:50 *** besh has joined #aichallenge 2011-11-19T14:17:53 Rinum: https://minus.com/liquid-phynix 2011-11-19T14:18:17 thanks 2011-11-19T14:19:02 how do you disable the "ants not razing hills" rule? 2011-11-19T14:19:34 wow i'm getting a lot more games now 2011-11-19T14:20:06 and my bot is timing out. crap. 2011-11-19T14:20:20 Server #255Server #257Server #288Server #293Server #307Server #310Server #311 2011-11-19T14:20:29 I think you can set cutoff_turn really high 2011-11-19T14:20:44 if it's >= turn limit I don't think you'll ever stop for not gathering food or razing hills 2011-11-19T14:21:02 I set turns to 1000 but it didn't work 2011-11-19T14:21:15 no I mean --cutoff_turn 2011-11-19T14:21:34 that's the no food/no raze limit 2011-11-19T14:21:40 ok will try that 2011-11-19T14:24:34 Thanks. that worked! 2011-11-19T14:26:55 What do you think of using a queue to recycle unseen tiles? 2011-11-19T14:27:12 java starter package completely remove tiles once visited 2011-11-19T14:29:20 I don't use java but I run a GC cycle at the beginning of each turn, that typically takes 2 ms locally 2011-11-19T14:29:40 then I rebuild a bunch of map data that the starter package doesn't provide for me, that typically takes 1 ms locally 2011-11-19T14:30:10 so unless you've measured the starter package to be a performance problem, I wouldn't worry about it 2011-11-19T14:30:42 I am trying to maximize view at all times. Not only when I have univisted tiles. 2011-11-19T14:31:31 So I need to recycle unseen tiles to get that behaviour. I thought may be using a queue to put recently visited tile to the tail would be a good idea. 2011-11-19T14:32:05 ahh, you mean so your ants revisit them periodically? well, that's one way to solve it 2011-11-19T14:32:39 I just tell my idle ants to go to the nearest unexplored tile 2011-11-19T14:32:56 i have that too but I don't like it :( 2011-11-19T14:33:04 (unexplored in this case meaning explored or unexplored but currently without vision) 2011-11-19T14:36:22 Currenlty I divide the map by view radius to reduce number of unseen tiles. 2011-11-19T14:36:57 Minthos: I might try that - atm I don't send them to tiles without vision until a certain time has elapsed since they were last seen 2011-11-19T14:36:58 Then I recylce when the number drops below some random value. Works to a certain extent.. 2011-11-19T14:37:33 *** nle85 has joined #aichallenge 2011-11-19T14:37:51 *** Antimony has joined #aichallenge 2011-11-19T14:37:55 I just put all the unseen tiles into the open list of my pathfinding algorithm 2011-11-19T14:37:58 it works well 2011-11-19T14:38:20 yeah, I throw every unexplored area into a multi-source BFS 2011-11-19T14:38:21 but thestinger: until turn 150 I don't revisit previoously explored tiles 2011-11-19T14:38:29 I wait until turn 100 2011-11-19T14:38:55 and then they get revisited around every 10 turns, but my ants don't get enough map coverage this way 2011-11-19T14:39:10 *** UncleVasya has joined #aichallenge 2011-11-19T14:39:16 *** ALplus has joined #aichallenge 2011-11-19T14:42:20 Hi Smiley1983. Have a little question. 2011-11-19T14:43:02 http://ants.fluxid.pl/replay.6080 you can see I don't get enough coverage on open maps, and I always lose the foraging war to good bots 2011-11-19T14:43:46 thestinger: wow that looks a lot like my original bot 2011-11-19T14:44:32 thestinger: your ants have always seemed a bit single-minded 2011-11-19T14:45:08 List.filter (fun x -> x != 3) my_list returns for the list [3;5;2] the correct list [5;2] but for the list [4;3;7] it returns [4;3;7] i.e. List.filter removes elements only from the beginning. 2011-11-19T14:45:19 I currently have a ratio of explorers to fighters that I adjust based on how many ants I have 2011-11-19T14:45:30 yeah, 25% of my ants will forage 2011-11-19T14:45:42 starts out with 100% exploration and decreases gradually 2011-11-19T14:45:43 but atm I don't get enough foraging locations so that many aren't actually foraging 2011-11-19T14:45:58 there's really not that much food 2011-11-19T14:46:01 ah, I just send all of them 2011-11-19T14:46:07 *** mj41 has joined #aichallenge 2011-11-19T14:46:19 But in the docs I see that List.filter must return all elements that satisfy the predicate. I am confused. 2011-11-19T14:46:24 and everyone gathers food, fighters or explorers, whoever is closest 2011-11-19T14:46:45 UncleVasya: What language is that? 2011-11-19T14:46:52 looks like ocaml 2011-11-19T14:46:56 OCaml 2011-11-19T14:48:10 I really need to finish up my 2 defense-related branches and merge them 2011-11-19T14:48:17 too lazy though, defense is boring 2011-11-19T14:50:10 UncleVasya, 2011-11-19T14:50:13 # List.filter(fun x -> x != 3) [4;3;7];; 2011-11-19T14:50:13 - : int list = [4; 7] 2011-11-19T14:50:26 just tried that in the toplevel 2011-11-19T14:50:40 this is crazy 2011-11-19T14:50:48 hmm, so there is another problem. 2011-11-19T14:50:54 my new strat is to emulate orange in this game: http://aichallenge.org/visualizer.php?game=104639 2011-11-19T14:51:00 *** roflmao has joined #aichallenge 2011-11-19T14:51:01 he has a decent bot yet he gets distrcted by a filter function 2011-11-19T14:51:27 :) 2011-11-19T14:51:32 BenJackson, orange is awsome :) 2011-11-19T14:51:57 you don't need to watch the whole thing, just hit the 'jump to end button' and back up like 2 turns 2011-11-19T14:52:01 especially the part where the ants do mass self destruct by running on a wall lol 2011-11-19T14:52:22 replay? 2011-11-19T14:52:52 BenJackson: good strategy, make everyone else time out 2011-11-19T14:53:24 ddos the worker and only the no-op bot survives :p 2011-11-19T14:54:13 roflmao: http://aichallenge.org/visualizer.php?game=104639 2011-11-19T14:55:20 hahahahaha 2011-11-19T14:55:24 :P 2011-11-19T14:56:51 *** mj41 has quit IRC (Ping timeout: 244 seconds) 2011-11-19T14:57:10 *** Accoun has quit IRC () 2011-11-19T14:58:13 damn 2011-11-19T14:58:18 i watched the same replay twice 2011-11-19T14:58:34 http://fluxid.pl/misc/2011-11-19-205335_671x684_scrot.png whoa, this visualizer is awesomely useful 2011-11-19T14:58:36 I thought about pointing that out but it seemed petty ;-) 2011-11-19T14:58:43 this screen presents a serious bug 2011-11-19T14:59:26 yeah, I can't even guess what you're trying to highlight there 2011-11-19T14:59:33 =) 2011-11-19T14:59:40 BenJackson: area with the lowest density of ants 2011-11-19T14:59:44 it is real fog, not fow 2011-11-19T14:59:58 What's your metric for ant density? 2011-11-19T15:00:04 mcstar++ :) 2011-11-19T15:00:09 wait how did you do that? 2011-11-19T15:00:31 a1k0n: debugger visualizer or something its in the forums 2011-11-19T15:00:32 http://forums.aichallenge.org/viewtopic.php?f=25&t=1633 if someone want to visualize 2011-11-19T15:00:46 wut is this visualizer 2011-11-19T15:01:00 oh yeah that one 2011-11-19T15:01:04 oh right. neat. 2011-11-19T15:01:13 i could really use that too. 2011-11-19T15:01:29 just cloned it, compiled visualizer and it's fucking awesome (but horribly slow) 2011-11-19T15:01:30 *** u_ has joined #aichallenge 2011-11-19T15:01:58 shading a map like that is very slow with the visualizer 2011-11-19T15:02:33 the java visualizer runs out of memory every time i use it 2011-11-19T15:02:44 isn't it just a canvas? 2011-11-19T15:02:45 yeah it is slow fluxid 2011-11-19T15:02:49 very slow 2011-11-19T15:03:40 its almost the end 2011-11-19T15:03:46 i like pguillory's ascii art: http://imgur.com/l5CPa i didn't think of using colors but perhaps i will 2011-11-19T15:04:02 othherwise i would let my visualizer accept stdin 2011-11-19T15:04:16 oh cool 2011-11-19T15:04:19 *** raemde_ has joined #aichallenge 2011-11-19T15:04:30 i did some humble ascii visualizing but not this advanced 2011-11-19T15:04:42 almost the end of what? 2011-11-19T15:04:51 the contest 2011-11-19T15:04:52 of day 2011-11-19T15:04:59 ikaros: http://pastebin.com/qxaaCJFA 2011-11-19T15:05:03 when does it end exactly? 2011-11-19T15:05:03 mcstar: one more month 2011-11-19T15:05:05 right? 2011-11-19T15:05:06 yes 2011-11-19T15:05:11 oh that's plenty of time lol 2011-11-19T15:05:14 no 2011-11-19T15:05:18 i want to work onmy bot 2011-11-19T15:05:51 a1k0n: its nice but needs a 1:1 font 2011-11-19T15:06:01 i tried to find one, but i couldnt 2011-11-19T15:06:07 yeah 2011-11-19T15:06:08 months ago 2011-11-19T15:06:18 8x8 fonts are out there 2011-11-19T15:06:20 *** HaraKiri has joined #aichallenge 2011-11-19T15:06:29 i missed them 2011-11-19T15:06:30 *** raemde has quit IRC (Ping timeout: 258 seconds) 2011-11-19T15:07:31 smiley1983: Can you make some guess where the problem is? http://pastebin.com/qxaaCJFA 2011-11-19T15:08:12 *** ALplus has quit IRC (Ping timeout: 252 seconds) 2011-11-19T15:08:22 *** speakeasy has quit IRC (Ping timeout: 245 seconds) 2011-11-19T15:09:02 UncleVasya: filter filters till the first true 2011-11-19T15:09:10 usually 2011-11-19T15:09:35 that's not very monadic 2011-11-19T15:09:54 monadic? 2011-11-19T15:10:02 this is ocaml 2011-11-19T15:10:21 but there might be monads there i dont know 2011-11-19T15:10:25 *** Accoun has joined #aichallenge 2011-11-19T15:10:47 UncleVasya, why do you check with List.exists first? 2011-11-19T15:11:12 not that it should change something but it looks redundant 2011-11-19T15:11:37 It's needed for another stuff. 2011-11-19T15:11:53 If exists, I filter and do A, if not then do B. 2011-11-19T15:12:13 ah 2011-11-19T15:12:28 *** retybok_ has joined #aichallenge 2011-11-19T15:12:28 wow, simply changing from a map to a vector sped up my code by over 10 times 2011-11-19T15:13:18 UncleVasya: i was wrong it should work as you described 2011-11-19T15:13:26 sorry, expect 2011-11-19T15:13:59 Antimony: regular maps are trees in C++ 2011-11-19T15:14:05 you need unordered_map for a hash table 2011-11-19T15:14:07 I know 2011-11-19T15:14:16 in my case, a hash table would be too slow as well 2011-11-19T15:14:37 hmm does ocaml compare lists by value or by reference.. i think that could be the problem 2011-11-19T15:14:40 UncleVasya, 2011-11-19T15:14:50 for a known set of keys, it's more efficent to assign a unique consecutive integer ot each key 2011-11-19T15:14:57 and then use them as indices into a vector 2011-11-19T15:14:57 i didnt use ocaml for a long time but this seems suspicious 2011-11-19T15:15:08 I tried with ref too. 2011-11-19T15:15:15 # [1;2] == [1;2];; 2011-11-19T15:15:15 - : bool = false 2011-11-19T15:15:30 has anyone had any luck at using Boost? 2011-11-19T15:15:40 wow 2011-11-19T15:16:13 Antimony: nope, because the include path isn't set 2011-11-19T15:16:24 yeah, it's a real shame 2011-11-19T15:16:27 you would have to edit all the boost headers and make them use relative paths to each other 2011-11-19T15:16:35 I'm thinking about trying to do just that 2011-11-19T15:16:36 So it is very strange why another parts of my code work well. :) 2011-11-19T15:16:39 std::set is slower than I expected 2011-11-19T15:16:41 hehe 2011-11-19T15:16:52 BenJackson: why do you need an ordered set? 2011-11-19T15:16:55 Ikaros, thank you! 2011-11-19T15:17:02 yeah i'm using sets too.. probably shouldn't 2011-11-19T15:17:05 np you should check this.. im not sure about it 2011-11-19T15:17:07 only a guess 2011-11-19T15:17:13 I did some benchmarking where I was going to have a small set of locations that would need to be copied 2011-11-19T15:17:31 so I compared "grid of bool" (big copy) to set of locations (Theoretically smaller copy, slower indexing) 2011-11-19T15:17:38 the set version even for small sets was like 16x slower 2011-11-19T15:17:45 once i helped a guy on #lisp, he was trying to compare lists with eq 2011-11-19T15:17:47 wow 2011-11-19T15:18:16 ok, changing 2011-11-19T15:18:26 hey wait, you can't use that in your bot ;-) 2011-11-19T15:18:28 BenJackson: try unordered_set with a hash function that basically cheats 2011-11-19T15:18:34 I, uh, patented grid of bool 2011-11-19T15:19:03 filter (\x->x /= [8,5]) [[4,5],[8,5],[9,5]] 2011-11-19T15:19:08 works in haskell though 2011-11-19T15:19:41 BenJackson: I'm using unordered_sets and unordered_maps in a few places, and they are competitive with using a 1D or 2D array for the same thing 2011-11-19T15:19:58 my hash function for a location is basically just what you do when you use a 1D array as a 2D one 2011-11-19T15:20:08 row * n_cols + col 2011-11-19T15:20:20 that's a good idea 2011-11-19T15:20:53 is that in tr1? 2011-11-19T15:20:59 yeah 2011-11-19T15:21:09 you can use C++11 for this 2011-11-19T15:21:23 just rename MyBot.cc to MyBot.cpp and the compiler on the server uses -std=c++0x 2011-11-19T15:21:34 also removes some optimizations for no apparent reason 2011-11-19T15:21:56 -funroll-loops isn't usually a good optimization :P 2011-11-19T15:22:13 fun roll loops, what could be more fun 2011-11-19T15:22:40 I did accidentally benchmark a template I made without -O 2011-11-19T15:22:43 it's good with profile guided optimization (PGO + -O3 will enable it) 2011-11-19T15:22:53 I got it fast enough and then I realized "oops, I'm not even optimizign" and then it was 5x faster 2011-11-19T15:22:55 so far unordered_set is slower as a drop-in replacement 2011-11-19T15:22:59 *** xathis has quit IRC () 2011-11-19T15:23:16 ok UncleVasya 2011-11-19T15:23:20 i think i got it 2011-11-19T15:23:27 = is structural equality 2011-11-19T15:23:35 http://en.cppreference.com/w/cpp/container/unordered_set/max_load_factor I think you can set this to 1 if you know there aren't going to be any collisions 2011-11-19T15:23:49 and since you use != it doesnt work because it is (not ==) 2011-11-19T15:23:51 *** liberforce has joined #aichallenge 2011-11-19T15:23:55 and == is reference equality 2011-11-19T15:23:59 how can you know without also knowing the size of the table? 2011-11-19T15:24:08 I'll look in the Google how to compare it right. Hope it will help. 2011-11-19T15:24:31 BenJackson: it uses size_t (that's what your hash function has to return) 2011-11-19T15:24:49 how do you know the size of the hastable? 2011-11-19T15:25:01 I mean how can you know your hash is perfect without knowing the modulus? 2011-11-19T15:25:06 try (fun loc -> not(loc = head)) 2011-11-19T15:25:15 i think this should work 2011-11-19T15:25:52 BenJackson: http://en.cppreference.com/w/cpp/container/unordered_set/reserve combined with that maybe? 2011-11-19T15:27:27 ikaros: It works! I'd never solve it by my own. 2011-11-19T15:27:51 =) 2011-11-19T15:29:06 meh, using a vector/array is going to be easier than dealing with the collision API crap 2011-11-19T15:29:46 img 2011-11-19T15:29:49 im sooo excited 2011-11-19T15:30:01 im seein the first sing of cooperative battles in my bot 2011-11-19T15:31:07 thats so awesome 2011-11-19T15:31:18 cant wait to have that 2011-11-19T15:31:52 I thought it is only cosmetic difference and have changed in starterpack all not(a = b) to the a!= b because my eyes like it more. So now with the new knowing I must check out all these places :) 2011-11-19T15:33:26 UncleVasya: in lisp you have eq, eql, equal, =, string=, char= 2011-11-19T15:33:57 so sometimes this can be subtle 2011-11-19T15:34:33 BenJackson: I've been printing out load_factor, and it never goes above 1 for any of my maps/sets 2011-11-19T15:34:45 I'm not sure if that's a guarantee or just libstdc++ behaviour 2011-11-19T15:35:37 *** itelichko has joined #aichallenge 2011-11-19T15:35:38 Also, in OCaml I have && - and; II - or. begin end - (). I know there is some difference between them but befor today I thought I will not feel it during the work on my bot. 2011-11-19T15:36:15 UncleVasya: what does begin end () mean? 2011-11-19T15:36:41 how is that on operator? 2011-11-19T15:36:46 http://rigaux.org/language-study/syntax-across-languages-per-language/OCaml.html 2011-11-19T15:37:06 ok 2011-11-19T15:37:32 this is stupid 2011-11-19T15:37:40 they are already at warp 9 2011-11-19T15:37:54 and they still got 15 minutes to turn the matter antimatter conversion dow 2011-11-19T15:37:55 n 2011-11-19T15:38:10 they got there from warp 7 in a couple of minutes 2011-11-19T15:38:36 *** Tombana has quit IRC (Quit: Page closed) 2011-11-19T15:41:15 ohhhh shit. switched from set to vector and my new bot murders my old one 2011-11-19T15:41:29 That's not nice 2011-11-19T15:41:49 a1k0n: were you cutting off computation due to timeout? 2011-11-19T15:41:51 wow, well, that was an easy improvement in play strength. thanks! 2011-11-19T15:41:55 yep 2011-11-19T15:42:19 *** liberforce has left #aichallenge 2011-11-19T15:42:23 i ran a benchmark before with time ./Mybot vs time ./MyBot-v11... and failed to take into account that both were cutting off after 475ms 2011-11-19T15:42:38 yikes 2011-11-19T15:42:52 mine still takes <25ms almost all the time 2011-11-19T15:43:03 of course I'm not #1 so that's probably a mistake :) 2011-11-19T15:43:37 my combat method is pretty stupid but extremely straightforward to implement 2011-11-19T15:43:51 which is kind of a priority as i don't have a lot of unbroken time for this 2011-11-19T15:44:54 basically, i try a whole lot of random things and see what sticks 2011-11-19T15:45:02 *** Murashka has joined #aichallenge 2011-11-19T15:45:04 monte carlo approach? 2011-11-19T15:45:04 so you're just using an array of bools now? 2011-11-19T15:45:26 me? no, a vector of Ant*s for tracking which enemies are in combat with which other enemies 2011-11-19T15:45:44 maybe unordered_set would be better, not sure 2011-11-19T15:46:06 i'm not convinced i even need to track that 2011-11-19T15:47:17 ikaros: yes you could call it that 2011-11-19T15:47:27 lol, nice misunderstanding 2011-11-19T15:47:34 or not 2011-11-19T15:47:58 random things as in "you will try to implement some ideas" or "you rbot picks random stuff"? 2011-11-19T15:48:15 *** delt0r_ has quit IRC (Ping timeout: 248 seconds) 2011-11-19T15:48:20 s/ i / my bot / 2011-11-19T15:48:28 yes, my bot picks random moves 2011-11-19T15:48:41 slightly biased in the direction of winning the game 2011-11-19T15:49:03 i don't think it's a very good approach and aim to rewrite it if i have time 2011-11-19T15:54:29 killing enemy: (11 72) 2011-11-19T15:54:38 i like seeing this in my logs 2011-11-19T15:56:40 *** Rinum has quit IRC (Quit: Page closed) 2011-11-19T15:57:11 I guess I could do something like a payoff matrix for small battles 2011-11-19T15:58:51 *** retybok_ has quit IRC (Ping timeout: 244 seconds) 2011-11-19T15:58:54 *** yoden has joined #aichallenge 2011-11-19T15:59:20 atm I divide up combat into battles and then figure them out based on unmoving enemies, which can handle large numbers of ants 2011-11-19T15:59:38 doesn't help at all for something like 2v1 though 2011-11-19T15:59:46 unless the enemies really don't move 2011-11-19T16:00:44 thestinger: i divide too, but i take movement into consideration 2011-11-19T16:00:52 but i dont really enumerate moves now 2011-11-19T16:00:55 i took a shortcut 2011-11-19T16:01:10 I tried assuming the enemies will move towards me 2011-11-19T16:01:18 but then my bot won't ever attack basically 2011-11-19T16:01:39 *** delt0r_ has joined #aichallenge 2011-11-19T16:02:18 maybe I can get something like that to work though 2011-11-19T16:03:37 the big change for me now is that i dont have to worry about how many ants are in the battle 2011-11-19T16:03:46 but it is still nto general enough 2011-11-19T16:04:13 *** Fandekasp has quit IRC (Ping timeout: 240 seconds) 2011-11-19T16:06:22 *** chridi has joined #aichallenge 2011-11-19T16:06:48 *** epicmonkey has joined #aichallenge 2011-11-19T16:12:25 mcstar: which bot is yours again? 2011-11-19T16:12:38 agentsmith 2011-11-19T16:12:43 ahh 2011-11-19T16:12:55 but it sucks cause doesnt defend its hill 2011-11-19T16:13:17 I feel better about my bot now ;) 2011-11-19T16:13:19 but up until that point its quite effective 2011-11-19T16:13:35 i just dont plan on updating it cause of the low game rates 2011-11-19T16:13:42 i want to see 1 version how far gets 2011-11-19T16:13:43 aren't you playing on fluxid anymore? 2011-11-19T16:13:52 i will soon 2011-11-19T16:13:56 after i debug 2011-11-19T16:15:14 http://aichallenge.org/visualizer.php?game=105687&user=12&turn=276 2011-11-19T16:15:18 look at this game 2011-11-19T16:15:25 i lose my hill early and still win 2011-11-19T16:15:27 lol 2011-11-19T16:15:57 nice. 2011-11-19T16:16:32 yeah, my version on the site has no combat awareness or defense so it pretty much always loses hills early 2011-11-19T16:16:41 but rushing at enemy hills ends up getting lots of points 2011-11-19T16:17:35 I still think that once people get better defense/combat 2011-11-19T16:17:40 hill rushing will be a bad strategy 2011-11-19T16:19:35 I think rushing at a hill has a pretty good chance of working if it's within ~50-100 turns of the game starting 2011-11-19T16:19:52 after that you need a better strategy like territory control 2011-11-19T16:20:14 yeah, especially if it's one of those lame maps that puts the hills practically on top of each other -_- 2011-11-19T16:20:25 *** ztfw` has joined #aichallenge 2011-11-19T16:21:04 I don't like the open maps for that reason 2011-11-19T16:21:52 *** ztfw has quit IRC (Ping timeout: 240 seconds) 2011-11-19T16:22:03 ug 2011-11-19T16:22:22 you don't like the open maps because rushing is easier? 2011-11-19T16:22:22 if a bot decides to send most of their ants towards you early on in one of those maps you're just screwed 2011-11-19T16:22:22 my plan to recursively parse the boost headers and replace all includes with a relative path is foiled! 2011-11-19T16:22:29 oh yeah, that's super lame 2011-11-19T16:22:34 yoden: well, if they were bigger it would be fine 2011-11-19T16:22:34 becuase boost uses macros to define the includes! 2011-11-19T16:23:33 i think with the right defense logic though, you should be able to be mostly okay against one person rushing you 2011-11-19T16:23:34 maybe 2011-11-19T16:23:37 combat hard :> 2011-11-19T16:24:51 Antimony: why? 2011-11-19T16:25:06 http://fluxid.pl/misc/2011-11-19-222008_882x912_scrot.png ah, better, but still no good 2011-11-19T16:25:11 have you tried asking for its inclusion? 2011-11-19T16:25:44 yes 2011-11-19T16:25:58 and? 2011-11-19T16:25:59 *** itelichko has quit IRC (Ping timeout: 265 seconds) 2011-11-19T16:26:03 I've asked for boost mutliple times and I'm not the only one 2011-11-19T16:26:08 but there's no sign of a repsonse yet 2011-11-19T16:26:10 and they said no? 2011-11-19T16:26:13 ah 2011-11-19T16:26:20 We need to get an admin in here 2011-11-19T16:26:45 Now fluxid is just showing off his sexy emacs? setup :) 2011-11-19T16:27:05 emacs? 2011-11-19T16:27:08 vim 2011-11-19T16:27:13 yep 2011-11-19T16:27:19 meh, close enough :p 2011-11-19T16:27:25 and you got me, wanted to show off, lol 2011-11-19T16:27:42 Fluxid: but now we see your master source code 2011-11-19T16:28:00 from that i can easily extrapolate your grat bot 2011-11-19T16:28:05 great* 2011-11-19T16:28:07 xD 2011-11-19T16:28:14 you use for's and def's 2011-11-19T16:28:16 hmmmm 2011-11-19T16:28:28 brackets and defs, hmmmm ;P 2011-11-19T16:28:48 *** jab_bott has joined #aichallenge 2011-11-19T16:28:51 http://forums.aichallenge.org/viewtopic.php?f=26&t=1718 2011-11-19T16:29:12 jab_bott: thank you for the great fork with visualizer 2011-11-19T16:29:25 Fluxid: no probs 2011-11-19T16:29:29 I'm just adding a new feature actually 2011-11-19T16:29:40 *** raemde_ has quit IRC (Quit: Verlassend) 2011-11-19T16:30:22 now you can send 'i' commands like this: i row col rest of line is a string with your debug info for that square on that turn 2011-11-19T16:30:29 Antimony: leave a @later tell message for amstan 2011-11-19T16:30:45 ? 2011-11-19T16:30:58 @later tell antimony leave a @later tell message for amstan 2011-11-19T16:30:58 mcstar: Ready to serve, my lord. 2011-11-19T16:31:13 jab_bott: cool! 2011-11-19T16:31:14 I think there's a problem though - is there a limit for a line length, or a string literal in javascript/html? I think the replay data line is just too long 2011-11-19T16:31:27 lol 2011-11-19T16:31:27 what does that do? Do I just type @later tell amstan ...? 2011-11-19T16:31:42 the whole replay is one fing line 2011-11-19T16:31:45 *** NoxiaZ^ has joined #aichallenge 2011-11-19T16:31:59 Antimony: do you see the message? 2011-11-19T16:32:04 yes 2011-11-19T16:32:09 thats it 2011-11-19T16:33:02 Fluxid: oh.. forgot to say, the info is shown in the top-left under the row n | col n text, shows the info for the tile under the mouse 2011-11-19T16:33:31 Fluxid: someone suggested it on the forum and I though it was such a great idea I spent most of today implementing it :) 2011-11-19T16:34:45 @later tell amstan Can you please add boost support? Even with C++0x, there are a lot of things from boost that are useful, like dynamic bitsets 2011-11-19T16:34:45 Antimony: Ready to serve, my lord. 2011-11-19T16:35:30 :)) 2011-11-19T16:35:35 it seems to work but I get errors in the firefox web console saying: "unterminated string literal" and (I think because of the previous error) "init is not defined" 2011-11-19T16:36:41 I'm not a javascript/html person so I really dunno what's going wrong with it 2011-11-19T16:37:35 jab_bott: try firebug 2011-11-19T16:37:35 *** NotABug has quit IRC (Ping timeout: 265 seconds) 2011-11-19T16:37:43 much nicer than the stuff that's included with firefox now 2011-11-19T16:38:24 thestinger: weird thing is that the debug info seems to work - I can hover my mouse over each tile and see the text I sent for that square per turn 2011-11-19T16:38:58 but I want to fix the problem anyhow 2011-11-19T16:39:01 javascript is pretty weird :) 2011-11-19T16:39:03 *** Antimony has quit IRC (Ping timeout: 244 seconds) 2011-11-19T16:39:41 firebug will give you line numbers for errors, you can inspect objects like arrays, set breakpoints etc. 2011-11-19T16:39:51 isnt that java? 2011-11-19T16:40:10 i thought the "debug visulizer" is java 2011-11-19T16:40:15 but im stupid 2011-11-19T16:40:24 the visualizer is javascript + html5 canvas 2011-11-19T16:40:27 since mleise told me its just java running js inside 2011-11-19T16:40:40 thestinger: not that the java ove 2011-11-19T16:40:43 one 2011-11-19T16:41:05 so that it works without a browser 2011-11-19T16:41:33 oh 2011-11-19T16:41:39 *** DerZaubererVonOz has joined #aichallenge 2011-11-19T16:42:38 hm 2011-11-19T16:42:40 i have an idea 2011-11-19T16:43:00 could it be possible to run that js code in a qt window, in a webkit widget? 2011-11-19T16:43:16 jab_bott: 2011-11-19T16:43:23 maybe you could gain speed 2011-11-19T16:43:41 *** UncleVasya has quit IRC () 2011-11-19T16:45:20 love to you jab_bott for the visualizer. i was the one suggesting the mouseover-info, glad you're making progress :) 2011-11-19T16:48:13 *** epicmonkey has quit IRC (Ping timeout: 240 seconds) 2011-11-19T16:50:30 *** a9wegf9a has joined #aichallenge 2011-11-19T16:50:55 hi, does anyone here use scriptlance as a programmer? I have a question about escrow that I would like an answer for 2011-11-19T16:51:36 I have just started using scriptlance and one of my bids was accepted for a project. I have been charged $5 for accepting it 2011-11-19T16:52:25 when I get paid for completing the project ($10 was my bid) will my balance be $5 or will I have to depost $5 and then get 10 back? 2011-11-19T16:52:38 wrong channel 2011-11-19T16:52:49 mcstar: don't know right channel 2011-11-19T16:52:58 figured people here might know 2011-11-19T16:55:28 All I know about escrow comes from EVE ;) 2011-11-19T16:57:13 *** a9wegf9a has quit IRC (Quit: leaving) 2011-11-19T16:58:20 *** heinrich5991 has quit IRC (Ping timeout: 252 seconds) 2011-11-19T16:59:24 HaraKiri: awesome suggestion 2011-11-19T16:59:39 HaraKiri: it's basically implemented already - I just need to figure out what's wrong with the JS :( 2011-11-19T17:00:15 *** Antimony has joined #aichallenge 2011-11-19T17:00:27 awesome! will it be multi-line? 2011-11-19T17:01:00 HaraKiri: yes, it is - you can send more than one 'i' command for the same tile in a turn and it automatically puts it on the next line 2011-11-19T17:01:11 fancy :D 2011-11-19T17:02:17 javascript does weird stuff like moving all vars you declare to the top of a function, etc. 2011-11-19T17:02:30 I've had some really weird problems in js that were so hard to debug >.< 2011-11-19T17:02:47 error: passing ā€˜const pos’ as ā€˜this’ argument of ā€˜pos pos::operator+(pos)’ discards qualifiers 2011-11-19T17:03:57 ive added pos' before togther 2011-11-19T17:04:31 mcstar: is that a question? the error makes sense - operator+ will obviously need to modify the 'this' object, so it can't be const 2011-11-19T17:04:49 pos tmpPos=*vecIt+o[i]; 2011-11-19T17:04:51 ok 2011-11-19T17:05:00 mcstar: you could pass a const pos as the to-add param, but not the to-add-to param 2011-11-19T17:05:00 pos enemyPos=(hmapIt->first)+o[i]; 2011-11-19T17:05:02 wrong 2011-11-19T17:05:52 + deosnt need to modify anthing 2011-11-19T17:06:03 i mean if you add 2 things together you get a 3rd thing 2011-11-19T17:06:06 make the function arguments const 2011-11-19T17:06:17 *** heinrich5991 has joined #aichallenge 2011-11-19T17:06:20 and implement overloads as free functions if they don't modify the object 2011-11-19T17:06:24 why is the first one ok, and the latter one not? 2011-11-19T17:06:27 mcstar: not sure of the syntax, but +(pos a, pos b) doesn't need to modify anything, but +(pos) does 2011-11-19T17:06:56 jab_bott: where is +(pos) here: 2011-11-19T17:07:07 ? 2011-11-19T17:07:17 pos pos::operator+(pos) 2011-11-19T17:07:36 it only takes one param, so the first is the object you're applying it to right? 2011-11-19T17:07:43 right 2011-11-19T17:07:46 ok 2011-11-19T17:07:53 but whats the difference between my two lines that i pasted 2011-11-19T17:08:13 why would the first be of 2 args, and the second of 1 arg? 2011-11-19T17:08:14 mcstar: ok, well if it doesn't add anything to the object, add the word const at the end of the function prototype 2011-11-19T17:08:28 that means the that object itself is const (i.e. the this will be const) 2011-11-19T17:08:43 ok yes 2011-11-19T17:08:52 but whats the difference here: 2011-11-19T17:08:55 pos tmpPos=*vecIt+o[i]; 2011-11-19T17:08:58 pos enemyPos=(hmapIt->first)+o[i]; 2011-11-19T17:09:07 *vecIt is a pos 2011-11-19T17:09:13 hmapIt->first is a pos too 2011-11-19T17:09:18 which one doesn't work? 2011-11-19T17:09:21 the latter 2011-11-19T17:09:49 so I guess hmapIt->first is const, and you can't just discard the qualifier implicitly due to const-correctness 2011-11-19T17:09:50 first is an iterator 2011-11-19T17:10:12 thestinger: could be 2011-11-19T17:10:19 ikaros: ? 2011-11-19T17:10:25 .first? 2011-11-19T17:10:29 it isnt 2011-11-19T17:10:30 no 2011-11-19T17:10:36 sorry i was confused :) 2011-11-19T17:11:17 *** mleyen has joined #aichallenge 2011-11-19T17:11:53 thestinger: i changed the order and it works now 2011-11-19T17:12:02 mcstar: vecIt probably has const qualifiers so it's ok 2011-11-19T17:12:07 pos enemyPos=o[i]+hmapIt->first; 2011-11-19T17:12:14 *** heinrich5991 has quit IRC (Ping timeout: 258 seconds) 2011-11-19T17:12:23 mcstar: if you don't change either object, make both arguments const 2011-11-19T17:12:30 *** g0llum has quit IRC (Read error: Connection reset by peer) 2011-11-19T17:12:35 and if they're both const, implement it as a free function rather than a method 2011-11-19T17:12:43 in pos::operator+() ? 2011-11-19T17:12:53 *** besh has quit IRC (Quit: Page closed) 2011-11-19T17:13:11 http://paste.pocoo.org/show/510341/ you can do overloads like that (rather than as a method) 2011-11-19T17:13:39 you can make 'this' const in a method too 2011-11-19T17:13:50 mcstar: const uses confusing syntax - the way to remember it is that const always means the thing to the LEFT of it is const... and that the const int x = val; syntax is a shortcut that confuses people because it really means int const x = val; 2011-11-19T17:13:52 void method() const { } 2011-11-19T17:15:11 pos pos::operator+(const pos p) const{ 2011-11-19T17:15:14 pos pos::operator+(const pos p){ 2011-11-19T17:15:22 its not woring with either 2011-11-19T17:15:49 and im not sure i should use & there 2011-11-19T17:16:02 could i still add them together on the fly? 2011-11-19T17:16:12 pos(3,2)+pos(4,5) 2011-11-19T17:16:16 *** ztfw`` has joined #aichallenge 2011-11-19T17:16:24 yeah, I think so 2011-11-19T17:16:40 because i think i tried that and i got complaints thats why i removed the & 2011-11-19T17:16:46 but im not 100% sure now 2011-11-19T17:17:07 *** DerZaubererVonOz has quit IRC (Quit: leaving) 2011-11-19T17:18:16 *** ztfw` has quit IRC (Ping timeout: 240 seconds) 2011-11-19T17:18:58 *** Murashka has quit IRC (Quit: Page closed) 2011-11-19T17:19:38 thestinger: i think the problem is with pos's constructor 2011-11-19T17:19:43 it isnt const 2011-11-19T17:19:48 but i call it from + 2011-11-19T17:19:52 since i make a new pos with it 2011-11-19T17:20:02 *** ztfw`` is now known as ztfw 2011-11-19T17:20:04 but supposedly you cant call a non-const from a const 2011-11-19T17:20:42 *** NightExcessive_ has joined #aichallenge 2011-11-19T17:21:44 mcstar: you can call non const funcs from a const, just not on the const object instance i.e. you can do it for other objects that aren't const 2011-11-19T17:21:55 Ahh, awesome, managed to fumble and get the visualiser to work 2011-11-19T17:22:10 jab_bott: ah ok 2011-11-19T17:22:23 *** NightExcessive has quit IRC (Disconnected by services) 2011-11-19T17:22:27 f me 2011-11-19T17:22:29 *** NightExcessive_ is now known as NightExcessive 2011-11-19T17:22:41 i just realized i was editing the member definitions 2011-11-19T17:22:45 not the declarations 2011-11-19T17:22:50 :( I really can't figure out this issue and I want to push my new visualizer updates 2011-11-19T17:23:20 mcstar: yeah you need to put the qualifier on the prototype too 2011-11-19T17:23:29 i know 2011-11-19T17:23:36 i just wasnt paying attention 2011-11-19T17:23:39 or its late 2011-11-19T17:23:41 working now 2011-11-19T17:23:48 thx guys 2011-11-19T17:24:12 *** NightExcessive_ has joined #aichallenge 2011-11-19T17:24:27 jab_bott: do you have trouble resolving battle scenarios? 2011-11-19T17:24:40 maybe you dont want to use pencil and paper all the time? 2011-11-19T17:25:48 I've just been making scenario maps and running them with --scenario 2011-11-19T17:27:10 *** mj41 has joined #aichallenge 2011-11-19T17:27:49 *** NightExcessive has quit IRC (Ping timeout: 255 seconds) 2011-11-19T17:28:15 mcstar: I haven't got round to writing any battle code yet - been making improvements to the visualizer 2011-11-19T17:28:29 mcstar: not sure what you mean about pencil and paper though 2011-11-19T17:28:33 i just wanted to advertise my app 2011-11-19T17:28:45 *** Redgis has quit IRC (Ping timeout: 244 seconds) 2011-11-19T17:29:15 mcstar: oh, did you post a link? I didn't see anything 2011-11-19T17:29:18 jab_bott: if you want try this out https://github.com/liquid-phynix/ants-fight/ 2011-11-19T17:30:05 id probably be using your debugger if i hadn write to images already 2011-11-19T17:32:36 *** Anilm3 has joined #aichallenge 2011-11-19T17:33:10 Hi!! 2011-11-19T17:35:21 *** Dean has joined #aichallenge 2011-11-19T17:35:31 evening all 2011-11-19T17:35:39 anyone know how to remove an ai challenge account? 2011-11-19T17:36:52 no one? 2011-11-19T17:37:17 ask amstan when he's online 2011-11-19T17:37:26 @remove 2011-11-19T17:37:26 Anilm3: Error: The command "remove" is available in the Alias, BadWords, Dunno, Herald, Later, News, Quote, RSS, Scheduler, Success, Todo, and Topic plugins. Please specify the plugin whose command you wish to call by using its name as a command before "remove". 2011-11-19T17:37:34 @help 2011-11-19T17:37:34 Anilm3: (help [] []) -- This command gives a useful description of what does. is only necessary if the command is in more than one plugin. 2011-11-19T17:38:31 Anilm3: the bot is just a supybot (well, I think it's actually a fork/patchset), there's only a few commands related to the contest 2011-11-19T17:38:36 !list 2011-11-19T17:38:40 @list 2011-11-19T17:38:40 thestinger: AIChallenge, Admin, Alias, Anonymous, BadWords, Channel, ChannelLogger, ChannelStats, Config, Ctcp, Dict, Dunno, Factoids, Filter, Format, Games, Google, Herald, Internet, Later, Limiter, Math, Misc, Network, News, Note, Owner, Plugin, Quote, QuoteGrabs, RSS, Reply, Scheduler, Seen, Services, ShrinkUrl, Status, String, Success, Time, Todo, Topic, URL, Unix, User, Utilities, and Web 2011-11-19T17:38:45 @list AIChallenge 2011-11-19T17:38:45 thestinger: game, match, and rankings 2011-11-19T17:39:01 I think those are the only commands specific to the AI contest 2011-11-19T17:39:32 it certainly looks like it 2011-11-19T17:39:41 I can't see it on the profile page so I'm assuming it's not possible 2011-11-19T17:39:45 but as I don't have time fo the challenge it's a waste of time having an account 2011-11-19T17:40:09 You can also try on the forum 2011-11-19T17:40:46 didn't think of that. I'll give it a search. 2011-11-19T17:41:22 no way 2011-11-19T17:41:26 you have to ask him 2011-11-19T17:41:49 @rainbow [fight [echo $randnick] [echo $randnick]] 2011-11-19T17:41:50 cyphase: 1760, sh4wn: 540 2011-11-19T17:41:53 :P 2011-11-19T17:41:57 that's all the bot is good for 2011-11-19T17:42:10 ask amstan? 2011-11-19T17:42:13 How is it waste of time to have an account 2011-11-19T17:42:26 pairofdice: wasting the server's resources 2011-11-19T17:42:34 Dean: yes 2011-11-19T17:42:55 you can manually deactivate your bot on the profile page, so it won't play many games 2011-11-19T17:42:56 thestinger: now after my improvement my bot crashes right before the fight 2011-11-19T17:42:57 what's that about? 2011-11-19T17:43:02 The bot weill deactivate and only play a few games 2011-11-19T17:43:06 who is Amstan...? 2011-11-19T17:43:11 mcstar: big improvement then 2011-11-19T17:43:22 Dean: he is one of the admins 2011-11-19T17:43:23 ill fix it 2011-11-19T17:43:25 did i win or lose? :P 2011-11-19T17:43:32 @fight 1 2 2011-11-19T17:43:41 it's just a comparison of google results I think 2011-11-19T17:43:41 thestinger: 1: 2640000000, 2: 2520000000 2011-11-19T17:43:54 *** gronbot has joined #aichallenge 2011-11-19T17:43:56 @list Google 2011-11-19T17:43:56 thestinger: cache, calc, fight, google, lucky, phonebook, and translate 2011-11-19T17:44:11 @fight Steve William 2011-11-19T17:44:12 mcstar: Steve: 430000000, William: 244000000 2011-11-19T17:44:22 @calc 3+7 2011-11-19T17:44:22 pairofdice: Error: The command "calc" is available in the Google and Math plugins. Please specify the plugin whose command you wish to call by using its name as a command before "calc". 2011-11-19T17:44:28 @fight python c++ 2011-11-19T17:44:28 Nooo 2011-11-19T17:44:29 Anilm3: python: 21500000, c++: 19700000 2011-11-19T17:44:33 @Google calc 3+7 2011-11-19T17:44:34 thestinger: Google's calculator didn't come up with anything. 2011-11-19T17:44:38 @fight me world 2011-11-19T17:44:38 :0 2011-11-19T17:44:39 mcstar: me: 1790000000, world: 1780000000 2011-11-19T17:44:45 yeeaaaaah 2011-11-19T17:44:53 pairofdice: @rpn 3 7 + 2011-11-19T17:44:57 oops 2011-11-19T17:45:00 @rpn 3 7 + 2011-11-19T17:45:00 thestinger: 10 2011-11-19T17:45:18 Ewww, must kill reverse polish notation 2011-11-19T17:45:26 @list Math 2011-11-19T17:45:26 thestinger: base, calc, convert, icalc, rpn, and units 2011-11-19T17:45:33 @fight rpn pairofdice 2011-11-19T17:45:34 @Math calc 3 + 7 2011-11-19T17:45:34 Anilm3: rpn: 562000, pairofdice: 28800 2011-11-19T17:45:35 thestinger: 10 2011-11-19T17:45:41 you lost pairofdice 2011-11-19T17:46:07 there's a lot of useless stuff included with the bot xD 2011-11-19T17:46:16 @echo @echo 2011-11-19T17:46:16 @echo 2011-11-19T17:46:19 @morse hello world 2011-11-19T17:46:19 thestinger: .... . .-.. .-.. --- .-- --- .-. .-.. -.. 2011-11-19T17:46:25 that's cool 2011-11-19T17:46:34 @unmorse .... . .-.. .-.. --- .-- --- .-. .-.. -.. 2011-11-19T17:46:34 thestinger: HELLOWORLD 2011-11-19T17:46:46 lets see if i can make an infinite loop... 2011-11-19T17:46:46 lol 2011-11-19T17:47:04 *** peyton has joined #aichallenge 2011-11-19T17:47:04 mcstar: you can't, I've tried 2011-11-19T17:47:05 @break 2011-11-19T17:47:06 mcstar: I do not know about 'break', but I do know about these similar topics: 'beta' 2011-11-19T17:47:12 no recursion or iteration :( 2011-11-19T17:47:18 @cpu 2011-11-19T17:47:18 thestinger: I have taken 508.51 seconds of user time and 16.44 seconds of system time, for a total of 524.95 seconds of CPU time. My children have taken 0.00 seconds of user time and 0.04 seconds of system time for a total of 0.04 seconds of CPU time. I'm taking up 17184 kB of memory. 2011-11-19T17:47:19 :D 2011-11-19T17:47:26 @rpn 3 5 4 3 2 * 2011-11-19T17:47:26 thestinger: Stack: [3, 5, 4, 6] 2011-11-19T17:47:28 @cpu 2011-11-19T17:47:28 thestinger: I have taken 508.60 seconds of user time and 16.44 seconds of system time, for a total of 525.04 seconds of CPU time. My children have taken 0.01 seconds of user time and 0.06 seconds of system time for a total of 0.07 seconds of CPU time. I'm taking up 17192 kB of memory. 2011-11-19T17:48:31 just silly nested commands 2011-11-19T17:48:37 and I think the limit is like 17 levels of nesting 2011-11-19T17:49:16 @morse @morse helloworld 2011-11-19T17:49:16 Anilm3: .--.-. -- --- .-. ... . .... . .-.. .-.. --- .-- --- .-. .-.. -.. 2011-11-19T17:49:23 @morse helloworld 2011-11-19T17:49:23 Anilm3: .... . .-.. .-.. --- .-- --- .-. .-.. -.. 2011-11-19T17:49:31 you do nested commands with [] 2011-11-19T17:49:42 @more [morse hello world] 2011-11-19T17:49:42 mcstar: Error: I haven't seen .... . .-.. .-.. --- .-- --- .-. .-.. -... 2011-11-19T17:49:44 @morse [@morse helloworld] 2011-11-19T17:49:45 Anilm3: ..- ... . .-. . .-. .-. --- .-. --..-- .. - .----. ... -. --- - -- -.-- ..-. .- ..- .-.. - .-.-.- 2011-11-19T17:49:48 @morse [morse hello world] 2011-11-19T17:49:48 mcstar: .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- -....- .-.-.- .-.-.- .-.-.- -....- .-.-.- .-.-.- -....- -....- -....- .-.-.- -....- -....- -....- -....- -....- .-.-.- -....- .-.-.- .-.-.- -....- .-.-.- .-.-.- -....- .-.-.- .-.-.- 2011-11-19T17:49:57 like that ^ 2011-11-19T17:50:07 @morse [morse [morse hello world]] 2011-11-19T17:50:07 mcstar: .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- -....- .-.-.- .-.-.- .-.-.- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- -....- .-.-.- (3 more messages) 2011-11-19T17:50:18 @unmorse [morde [morse helloworld]] 2011-11-19T17:50:19 @list Network 2011-11-19T17:50:19 Anilm3: I'msorryDave,errAnilm3;Icannot'morde'E 2011-11-19T17:50:20 thestinger: command, connect, disconnect, driver, latency, networks, reconnect, and whois 2011-11-19T17:50:26 @unmorse [morse [morse helloworld]] 2011-11-19T17:50:26 Anilm3: .... . .-.. .-.. --- .-- --- .-. .-.. -.. 2011-11-19T17:50:39 @whois thestinger 2011-11-19T17:50:39 mcstar: Error: The command "whois" is available in the Internet and Network plugins. Please specify the plugin whose command you wish to call by using its name as a command before "whois". 2011-11-19T17:50:45 @whois google.com 2011-11-19T17:50:45 thestinger: Error: The command "whois" is available in the Internet and Network plugins. Please specify the plugin whose command you wish to call by using its name as a command before "whois". 2011-11-19T17:50:50 oh 2011-11-19T17:50:54 @Network whois google.com 2011-11-19T17:50:54 thestinger: Error: 'google.com' is not a valid nick. 2011-11-19T17:51:01 @Internet whois google.com 2011-11-19T17:51:03 @network whois thestinger 2011-11-19T17:51:05 thestinger: Error: I couldn't find such a domain. 2011-11-19T17:51:06 mcstar: strcat (~strcat@CPE98fc1165cb6f-CM00159a09b2d0.cpe.net.cable.rogers.com) has been on server pratchett.freenode.net since 02:47 PM, November 12, 2011 (idle for 2 seconds) and is on #aichallenge. 2011-11-19T17:51:13 aham 2011-11-19T17:51:42 thestinger doesn't have a life :( 2011-11-19T17:52:06 I leave irc on 24/7 2011-11-19T17:52:22 doesn't mean I'm here most of the time :P 2011-11-19T17:52:37 @network whois mcstar 2011-11-19T17:52:38 Anilm3: mcstar (~mcstar@adsl-89-135-203-142.monradsl.monornet.hu) has been on server holmes.freenode.net since 06:56 AM, November 19, 2011 (idle for 1 minute and 24 seconds) and is on #aichallenge. 2011-11-19T17:52:59 *** Dean has quit IRC (Ping timeout: 265 seconds) 2011-11-19T17:53:00 i regularly disconnect 2011-11-19T17:53:38 @fight ruby python 2011-11-19T17:53:39 Anilm3: ruby: 41300000, python: 21500000 2011-11-19T17:54:07 @fight f# ocaml 2011-11-19T17:54:08 mcstar: f#: 1380000, ocaml: 70100 2011-11-19T17:54:09 what are people doing to check which ants might engage in battle? 2011-11-19T17:54:21 are you just looking for enemies within a radius if 17? 2011-11-19T17:54:25 no 2011-11-19T17:54:27 nono 2011-11-19T17:54:30 nonono 2011-11-19T17:54:38 antimatroid1: you have a variable called atackradius 2011-11-19T17:54:42 :D 2011-11-19T17:54:47 yes i do 2011-11-19T17:54:47 antimatroid1: didnt you know? 2011-11-19T17:55:07 antimatroid1: you don't have to use 17, but attackradius 2011-11-19T17:55:15 but any ant within 17 could engage me in battle next turn depending on where we move 2011-11-19T17:55:29 antimatroid1: why 17? 2011-11-19T17:55:30 that's all good and well except then you may not be abe to engage each other if there's water in the way 2011-11-19T17:55:44 (1+sqrt(ar2))^2 2011-11-19T17:55:57 1+2*sqrt(ar2)+ar2 2011-11-19T17:56:44 antimatroid1: you may not see 17... 2011-11-19T17:57:02 Anilm3: what do you mean? view radius is 55 2011-11-19T17:57:12 I just saw that, yes 2011-11-19T17:57:14 antimatroid1: you need only 10 2011-11-19T17:57:20 i checked it 2011-11-19T17:57:23 77 2011-11-19T17:57:57 f 2011-11-19T17:57:57 mcstar: 2011-11-19T17:57:57 a.... 2011-11-19T17:57:58 ....b 2011-11-19T17:58:03 im again excluding my own move 2011-11-19T17:58:08 are they not 17 apart and able to engage in battle? 2011-11-19T17:58:09 thats 2 2011-11-19T17:58:17 They can't 2011-11-19T17:58:19 antimatroid1: i forget my possible move 2011-11-19T17:58:23 errr, put b down an extra level 2011-11-19T17:58:34 q...b 2011-11-19T17:58:36 ? 2011-11-19T17:58:45 mcstar: what's your name on the official rank? 2011-11-19T17:58:45 a.... 2011-11-19T17:58:45 ..... 2011-11-19T17:58:46 ....b 2011-11-19T17:58:53 ignore edge wrapping 2011-11-19T17:58:59 if b goes up and a right they battle 2011-11-19T17:59:14 they are 17 distance apart 2011-11-19T17:59:34 a..b <- still not close enough 2011-11-19T17:59:37 *** mj41 has quit IRC (Ping timeout: 245 seconds) 2011-11-19T17:59:50 17? 2011-11-19T18:00:07 use squared euclidean distance to compare (just don't sqrt it) 2011-11-19T18:00:24 also called manhattan distance 2011-11-19T18:00:29 4*4+2*2 2011-11-19T18:00:31 http://pastebin.com/14ZmKgtq 2011-11-19T18:00:35 *** gronbot has quit IRC (Quit: Page closed) 2011-11-19T18:00:40 that's the shape that I get for the edge of battle 2011-11-19T18:01:02 Anilm3: ? 2011-11-19T18:01:04 Yeah, that's where I start checking 2011-11-19T18:01:08 dont say mahattan here 2011-11-19T18:01:12 why? 2011-11-19T18:01:20 because manhatten is a different metric 2011-11-19T18:01:27 and it's not equivalent to the euclidean metric 2011-11-19T18:01:31 antimatroid1: that is correct 2011-11-19T18:01:42 it's 'row_distance ** 2 + col_distance ** 2' for euclidean distance squared 2011-11-19T18:01:45 but for that you only need to check eclidean^2<10 2011-11-19T18:01:55 mcstar: what? 2011-11-19T18:02:00 check it out 2011-11-19T18:02:07 i use that 2011-11-19T18:02:14 teh formula i gave you? 2011-11-19T18:02:18 yeah, I do it mcstar's way too 2011-11-19T18:02:35 do you make sure you don't move an ant into a combat zone unless done with a game tree? 2011-11-19T18:02:37 mcstar, if the ants are moving towards each other you need to check <= 17 2011-11-19T18:02:41 yes 2011-11-19T18:02:44 ah okay 2011-11-19T18:02:54 pairofdice: i dont move my ant there 2011-11-19T18:02:59 so i dont need a bigger radius 2011-11-19T18:03:14 its like a wall for it 2011-11-19T18:03:26 mcstar: what about when you have a..%b 2011-11-19T18:03:33 do you correctly realise that b can't engage you? 2011-11-19T18:04:10 i guess 2011-11-19T18:04:10 Mine certainly don't 2011-11-19T18:04:19 you guess that you do? 2011-11-19T18:04:19 b cant step there so yes 2011-11-19T18:04:21 antimatroid1: ?? ants CAN engage through water, can't they? 2011-11-19T18:04:23 *** heinrich5991 has joined #aichallenge 2011-11-19T18:04:30 But they can't move 2011-11-19T18:04:32 jab_bott: mcstar: has said he wont move a right 2011-11-19T18:04:34 jab_bott: b cant attack a 2011-11-19T18:04:41 yes 2011-11-19T18:04:46 So a can move without danger 2011-11-19T18:05:29 i think i mean a.%b didn't i? 2011-11-19T18:05:38 ahh I see - like you're checking which ones might be attackable next turn after they have potentially moved towards you 2011-11-19T18:05:40 *** amstan has joined #aichallenge 2011-11-19T18:05:40 *** ChanServ sets mode: +o amstan 2011-11-19T18:05:42 mcstar: do you realise that 'b' wont engage you there? 2011-11-19T18:05:47 yes 2011-11-19T18:05:51 how? 2011-11-19T18:05:56 i exclude that tile from b's moves 2011-11-19T18:06:02 do you check within the battle radius of the land neighbours of b? 2011-11-19T18:06:27 i only enumerate those moves that dont lead it to water 2011-11-19T18:06:34 or i dnt know what else you mean 2011-11-19T18:06:47 how do you find ants within range? 2011-11-19T18:06:50 its still dangerous for a 2011-11-19T18:06:57 thats different 2011-11-19T18:07:04 and yes 2011-11-19T18:07:13 aichallenge: Jack Palevich epsilon * re914674 / (3 files in 2 dirs): 2011-11-19T18:07:13 aichallenge: Improve dart starter pack. 2011-11-19T18:07:13 aichallenge: + quit program after receiving 'end' message. 2011-11-19T18:07:13 aichallenge: + Added a Point class for holding (row, col) data. 2011-11-19T18:07:13 aichallenge: + Use Manhatten distance rather than sqrt distance. 2011-11-19T18:07:13 aichallenge: + Make Ants.visible() work. 2011-11-19T18:07:14 aichallenge: + Use "for (a in b) where appropriate. - http://git.io/RQoqRw 2011-11-19T18:07:14 aichallenge: Alexandru Stan epsilon * rd739fd4 / (3 files in 2 dirs): 2011-11-19T18:07:15 aichallenge: Merge pull request #376 from jackpal/dart-starter-pack-update 2011-11-19T18:07:15 aichallenge: Improve dart starter pack. - http://git.io/k7yIaA 2011-11-19T18:07:16 a range but that is a complicated range 2011-11-19T18:07:31 still dangerous in that 'a' can move 4/5 directions safely 2011-11-19T18:07:39 yes 2011-11-19T18:07:41 still dangerous but* 2011-11-19T18:08:15 basically i do a bfs from enemies 2011-11-19T18:08:22 but i select by euclidean distance 2011-11-19T18:08:24 no water 2011-11-19T18:08:40 so its an euclidean voronoi region that i gat 2011-11-19T18:08:42 get* 2011-11-19T18:08:57 so i match ants to enemies that fall in a region 2011-11-19T18:08:57 what about 2011-11-19T18:08:58 .%. 2011-11-19T18:08:58 a%b 2011-11-19T18:08:58 .%.? 2011-11-19T18:09:05 ? 2011-11-19T18:09:08 if you block by water aren't you skipping pairing those ants? 2011-11-19T18:09:10 that cant be 2011-11-19T18:09:15 Those are dead ants 2011-11-19T18:09:19 a.b not possible 2011-11-19T18:09:19 http://paste.pocoo.org/show/5b7azNt2Zv7yt5m4bX1J/ I divide stuff into combat areas like that 2011-11-19T18:09:31 make the water 2 wide then 2011-11-19T18:09:32 same problem 2011-11-19T18:09:33 antimatroid1: they must battle now 2011-11-19T18:09:41 no 2011-11-19T18:09:42 hmmm 2011-11-19T18:10:17 i wonder, how many of these nice little things break when you change the attack radius? 2011-11-19T18:10:24 i like for my bot to not make assumptions 2011-11-19T18:10:30 so my code would include a and b in a battle 2011-11-19T18:10:45 but then when that's resolved, a would be allowed to move 2011-11-19T18:10:57 actually somewhat broken atm but that's the idea :P 2011-11-19T18:11:50 i do have my code set up for finding all feasible moves for a set of ants less those which have friend ants colliding (not all ants have to be from the same team and will potentially collide) 2011-11-19T18:12:32 *** chridi has quit IRC (Ping timeout: 245 seconds) 2011-11-19T18:12:39 antimatroid1: I get what you're saying - you think mcstar is blocking the attack by water - he's not, he moves his enemy ants on all possible moves then calculates all the danger squares for the next turn based on those five (or less) moves 2011-11-19T18:14:00 antimatroid1: so the water doesn't block the attack calculation, it only excludes the extra possible future state of the enemy ant which is used to calculate danger from 2011-11-19T18:14:02 *** Antimony_ has joined #aichallenge 2011-11-19T18:14:56 ah shit 2011-11-19T18:15:05 i realized why i cant upload images 2011-11-19T18:15:08 cause its fing ppm 2011-11-19T18:15:09 *** Antimony has quit IRC (Ping timeout: 244 seconds) 2011-11-19T18:15:51 mcstar: imagemagick? 2011-11-19T18:16:26 'convert image.ppm image.png' should work 2011-11-19T18:16:50 *** HaraKiri has quit IRC () 2011-11-19T18:17:15 http://imgur.com/JzLMx 2011-11-19T18:17:30 thestinger: no, cause it would be too tiny anyway 2011-11-19T18:17:43 thats how i decide which ant battles which enemy 2011-11-19T18:18:07 the ant has access to the euclidean distance and to the manhattan too 2011-11-19T18:18:19 and the coordinates of thenearest enemy 2011-11-19T18:19:38 *** Antimony_ has quit IRC (Ping timeout: 252 seconds) 2011-11-19T18:22:20 *** Yexo has quit IRC (Quit: Leaving) 2011-11-19T18:23:00 *** amstan has quit IRC (Ping timeout: 244 seconds) 2011-11-19T18:24:24 *** twymer has quit IRC (Read error: Operation timed out) 2011-11-19T18:25:02 mcstar: did you ever manage to work out a formula without square roots? :P 2011-11-19T18:25:06 all my radiuses are integers 2011-11-19T18:25:31 in lisp you have integer square root 2011-11-19T18:25:36 im not sure about c 2011-11-19T18:25:48 does that work alright? 2011-11-19T18:25:51 sqrt(5) = ? 2011-11-19T18:25:53 but does it really hurt? 2011-11-19T18:25:57 yes 2011-11-19T18:26:02 antimatroid1: 2 2011-11-19T18:26:02 its 4 2011-11-19T18:26:06 shat 2011-11-19T18:26:06 oh 2011-11-19T18:26:08 2 2011-11-19T18:26:22 isqrt truncates downwards doesn't it? 2011-11-19T18:26:22 so sqrt(5) = floor(sqrt(5))? 2011-11-19T18:26:29 yep 2011-11-19T18:26:58 *** Blink_ has joined #aichallenge 2011-11-19T18:26:59 but you get that if you use an int lvalue 2011-11-19T18:27:05 I have a C implementation lying around 2011-11-19T18:27:10 it's quite simple 2011-11-19T18:27:29 waiting for grep to find it :P 2011-11-19T18:27:46 it's not hard to write :P 2011-11-19T18:27:53 i guess no harm will come from double sqrt(double); 2011-11-19T18:27:57 yeah, just some bit shifts 2011-11-19T18:28:44 Conditional jump or move depends on uninitialised value(s) 2011-11-19T18:28:54 valgrind catched that 2011-11-19T18:29:00 ipow/ipowmod are useful too 2011-11-19T18:31:52 *** vania has joined #aichallenge 2011-11-19T18:31:56 hi 2011-11-19T18:31:57 *** mikewintermute has quit IRC (Quit: mikewintermute) 2011-11-19T18:32:16 mcstar: are you using any C arrays? 2011-11-19T18:32:26 yes 2011-11-19T18:32:28 why? 2011-11-19T18:32:45 my array class is based on that 2011-11-19T18:32:49 memcpy/memmove or pointer arithmetic? I think that's where that warning comes from 2011-11-19T18:32:55 ah no 2011-11-19T18:33:08 im indexing my array with a pos 2011-11-19T18:33:13 array[pos(3,4)] 2011-11-19T18:33:15 like this 2011-11-19T18:33:23 pos pos1; 2011-11-19T18:33:26 array[pos1] 2011-11-19T18:33:31 this would be an error 2011-11-19T18:33:42 somewhere i dont initialize my pos i think 2011-11-19T18:34:08 but i have a contructor for pos that takes no arguments 2011-11-19T18:34:19 it initializes the fields to 0 2011-11-19T18:34:21 do you use std::string or cstrings for input/output? 2011-11-19T18:34:31 yes 2011-11-19T18:34:36 well, I mean which one 2011-11-19T18:34:50 ony std strng 2011-11-19T18:35:11 i read into a stringstream 2011-11-19T18:35:17 and read values from that 2011-11-19T18:35:33 but this error is not related to that 2011-11-19T18:35:36 it just appeared 2011-11-19T18:35:47 and references my changed code 2011-11-19T18:35:51 yeah, I was just taking a shot in the dark - you wouldn't get that with std::string 2011-11-19T18:35:52 so i know where the error is 2011-11-19T18:36:14 i just dont know why it happens 2011-11-19T18:36:37 hi, sorry for interrupting, but does anybody know is there a list of 'interesting games'? 2011-11-19T18:37:38 vania: http://forums.aichallenge.org/viewtopic.php?f=24&t=1634 2011-11-19T18:37:53 cif cool == interesting 2011-11-19T18:38:09 thank, i'll check it out. 2011-11-19T18:40:34 *** Harpyon has joined #aichallenge 2011-11-19T18:41:21 *** iglo has joined #aichallenge 2011-11-19T18:41:24 *** ztfw has quit IRC (Remote host closed the connection) 2011-11-19T18:41:32 any javascript/JSON people know when I pass in spaces in the string to the visualizer and it gets parsed by replay = JSON.parse(replay); - why do the spaces disappear? 2011-11-19T18:41:44 *** Harpyon_ has joined #aichallenge 2011-11-19T18:42:37 *** capa has joined #aichallenge 2011-11-19T18:43:14 *** iglo has quit IRC (Client Quit) 2011-11-19T18:43:35 *** amstan has joined #aichallenge 2011-11-19T18:43:35 *** ChanServ sets mode: +o amstan 2011-11-19T18:43:35 *** iglo has joined #aichallenge 2011-11-19T18:44:10 oh.. actually that's not it at all - it must be a Python thing 2011-11-19T18:46:04 in that case - why when I say replay['mapinfo_history'] = self.mapinfo_history (in python) do strings containing spaces nested in the dictionaries within arrays within the self.mapinfo_history object get removed? 2011-11-19T18:46:46 *** twymer has joined #aichallenge 2011-11-19T18:46:54 maybe something in the python code strips all the whitespace before outputing the replay.html file?? 2011-11-19T18:47:01 how are you turning it to json? 2011-11-19T18:47:04 json.dumps? 2011-11-19T18:49:26 thestinger: looks like your combat zones stuff is working 2011-11-19T18:49:36 i need to implement that 2011-11-19T18:49:52 thestinger: I don't know - this is done somewhere in the ants game code 2011-11-19T18:50:47 a1k0n: I think it's really buggy though xD 2011-11-19T18:51:01 yeah i just realized you've been running it a while 2011-11-19T18:51:06 it works pretty well sometimes! 2011-11-19T18:51:18 yeah, I think dividing up the zones works fine 2011-11-19T18:51:27 and then optimizing results in the zones works fine 2011-11-19T18:51:32 the problem is that I don't predict enemy moves 2011-11-19T18:51:35 I assume they stay still 2011-11-19T18:51:43 oh. yeah that's a problem. 2011-11-19T18:51:45 there may be bugs in the combat zone code though 2011-11-19T18:52:00 I tried predicting moves, but it was way too slow 2011-11-19T18:52:05 you could at least try both sitting still and moving closer to your ants 2011-11-19T18:52:08 now I can limit it to small battles 2011-11-19T18:52:53 I also broke my code for running away and strafing, so my ants just stay still and chill when they're scared 2011-11-19T18:53:47 amstan: heya - does something strip spaces when outputting the JSON replay data? 2011-11-19T18:53:49 if they see a bunch of enemy ants and no friends are nearby, not only will they no longer run away - they'll actually wait there to die even if they could move somewhere 2011-11-19T18:53:52 >.< 2011-11-19T18:54:05 amstan: I'm trying to find the code that does that 2011-11-19T18:54:06 jab_bott: what do you mean? 2011-11-19T18:54:07 a1k0n: are you doing game trees yet 2011-11-19T18:54:14 spaces out of what? 2011-11-19T18:54:14 nope 2011-11-19T18:54:25 well.. not.. really 2011-11-19T18:54:29 i'm trying to set up 1 ply minimax atm 2011-11-19T18:54:30 amstan: out of the replay JSON string 2011-11-19T18:54:44 i've implemented full minimax for 2v1, i suppose i should use that in that specific situation 2011-11-19T18:54:48 i'm just treating it as me vs. enemies with them playing to make my score as worse as possible 2011-11-19T18:54:51 why does it matter? json is json, it'll parse to the same thing no matter if htere's spaces or not 2011-11-19T18:55:18 well, not my score 2011-11-19T18:55:21 amstan: well something is stripping spaces within the strings (used as values indictionaries within JSON) 2011-11-19T18:55:27 i think the fact that we have simultaneous moves might be more important in this game than in tron 2011-11-19T18:55:31 but make my outcome as badly ranked as possible as per my order operation 2011-11-19T18:55:37 jab_bott: oh, that would be bad 2011-11-19T18:55:41 jab_bott: not sure 2011-11-19T18:55:42 and as such the wrongness of minimax might make it too conservative 2011-11-19T18:56:03 a1k0n: you think? it wouldn't be hard for my to turn my game representation into a 2 player zero sum simultaneous game 2011-11-19T18:56:06 though to fix that you could randomly choose between minimax and maximin 2011-11-19T18:56:11 but selecting a single strategy from such a game form is harder :\ 2011-11-19T18:56:19 yeah, way too many moves 2011-11-19T18:56:27 pretty hard to solve the LP for that 2011-11-19T18:56:48 i have functions to give me all non-friendly-colliding moves for a set of ants (the ants don't all need to be the same player and can collide enemy ants) 2011-11-19T18:56:57 that's why i'm sampling. my assumption of minimax wrongness could be wrong, of course. 2011-11-19T18:56:57 nah wouldn't be looking for a mixed strategy to play 2011-11-19T18:57:07 you can do other stuff on such games to pick a strategy 2011-11-19T18:57:13 some kind of regret function might work well 2011-11-19T18:57:34 or just play the strategy that maximises your least preferred state for each strategy 2011-11-19T18:58:02 or order the outcomes for each strategy and then iteratitively tiebreak it 2011-11-19T18:58:03 yeah i suppose 2011-11-19T18:58:07 although i don't like ones chances of doing that 2011-11-19T18:58:56 there's also a few numerical methods i've read for trying to converge on a mixed strategy nash equilibrium for 2 player simultaneous zero sum games 2011-11-19T18:59:05 found those during planet wars 2011-11-19T18:59:22 oh yeah? 2011-11-19T18:59:30 were they of any use in planet wars? 2011-11-19T18:59:38 *** rajanaresh has joined #aichallenge 2011-11-19T18:59:43 nah, ended up using a game tree with that 2011-11-19T18:59:50 i couldn't get games going well in simultaneous form 2011-11-19T19:00:02 but that might be different here 2011-11-19T19:00:32 *** Jak_o_Shadows has joined #aichallenge 2011-11-19T19:01:33 amstan: it's between outputting 0.replay and replay.0.html - (the spaces are there in 0.replay) 2011-11-19T19:01:42 jab_bott: i'm not sure 2011-11-19T19:03:02 hey guys, I've been debugging timeout for my bot and it doesn't seem to cross even one tenth of a second when I check. Any ideas what else I should be trying? 2011-11-19T19:03:25 ohhh sweet 2011-11-19T19:03:33 i just realised a time when i can make use of future ants 2011-11-19T19:03:44 amstan: also something is processing escaped characters (like \n) within strings - i.e. if I put "\\n" so I actually get a backslash then an n in the string it's stripping that too 2011-11-19T19:04:19 it shouldn't be too hard to track how big your hive is, and if your hive >= number of hills then you can choose to spawn ants at hills by making sure they're clear which can be useful while defending 2011-11-19T19:04:24 more ants to kill off nearby enemies 2011-11-19T19:05:23 *** fpcfan has quit IRC (Ping timeout: 260 seconds) 2011-11-19T19:05:49 amstan: this is a problem because the 0.replay is inconsistent with the JSON in the html file :( 2011-11-19T19:06:07 *** Blink__ has joined #aichallenge 2011-11-19T19:07:02 the simple combat I have implemented is definitely a huge improvement over none at all 2011-11-19T19:07:32 http://ants.fluxid.pl/ranking strcat_rewrite and _combatzones do combat, and the old strcat, _sane and _next didn't really do any 2011-11-19T19:08:01 I want to write some ants AI - I didn't expect this visualizer stuff to take up all of today :( 2011-11-19T19:08:46 *** Blink_ has quit IRC (Ping timeout: 258 seconds) 2011-11-19T19:09:07 ? 2011-11-19T19:09:19 ? 2011-11-19T19:09:38 i am sorry, I am new to this client 2011-11-19T19:10:19 rajanaresh: huh? 2011-11-19T19:10:50 hi is trying a flood fill alg. 2011-11-19T19:11:03 I was just checking how to send messages. 2011-11-19T19:12:10 @later tell mleise Something is stripping spaces and unescaping backslash-escapes from the JSON between when it's written to 0.replay and replay.0.html - including such characters *within* JSON string values... do you know where this code is so I can fix it? 2011-11-19T19:12:10 jab_bott: Aye, aye, sir 2011-11-19T19:13:06 mcstar: isn't a flood-fill just a DFS for the left/right nodes but BFS for the up/down ones? 2011-11-19T19:13:58 floods till it hits something 2011-11-19T19:14:09 My bot seems to timeout for some reason. When i put checkpoints to check each turn doesn't even consume one tenth of a second. Any ideas on how to debug timeouts? 2011-11-19T19:14:09 than floods some more 2011-11-19T19:14:25 jab_bott: but why did this come up? 2011-11-19T19:14:27 *** JorgeB has quit IRC (Read error: Operation timed out) 2011-11-19T19:15:32 rajanaresh: print out the total time you've taken to stderr at the end of each turn 2011-11-19T19:16:20 100ms is a lot of time if you don't have checks for time remaining in the algorithms that are running 2011-11-19T19:16:47 my turns take ~4ms pre-combat, but sometimes that goes up to ~40ms when there are 300 ants visible and lots of food 2011-11-19T19:16:47 *** sigh has joined #aichallenge 2011-11-19T19:17:30 well, probably around 20ms in the worst case now that I've optimized a lot 2011-11-19T19:17:43 thestinger: mine takes about 2s per turn :P 2011-11-19T19:18:08 thestinger: but that's because I'm outputting a whole load of visualizer and info commands atm 2011-11-19T19:18:16 I have some ridiculous brute force algorithms, but somehow it all works :D 2011-11-19T19:18:57 jab_bott: I'm counting the time I take outputting debug info and subtract from the turn time debug output 2011-11-19T19:19:00 thestinger: starting from reading input till the end. That's what I put and it's not crossing 10ms. But all of a sudden I see that the next turn it timeouts. How do I figure out on which procedure did it timeout. 2011-11-19T19:19:18 *** besh has joined #aichallenge 2011-11-19T19:19:35 thestinger: it's great that we have lots of computing power these days, but a shame that so many programs waste resources when they could be so much more efficient 2011-11-19T19:19:35 rajanaresh: you might have a loop that never finishes 2011-11-19T19:19:36 thestinger: and the timeout turn is random. 2011-11-19T19:21:07 I had an infinite loop in my combat logic and it was using up all the turn time 2011-11-19T19:21:09 rajanaresh: you may just have a bug that sometimes causes the timeout but only under certain circumstances 2011-11-19T19:22:27 jab_bott: http://www.paulgraham.com/hundred.html 2011-11-19T19:22:31 good read 2011-11-19T19:23:28 Ok, so I want to know if this is a good way to run and debug in my local machine. python playgame.py "clisp ../project/project.fas" "python sample_bots/python/HunterBot.py" --map_file maps/multi_hill_maze/maze_02p_01.map --turntime 1000 --loadtime 3000 --log_dir game_logs --turns 1000 --player_seed -3392575235967360000 --viewradius2=77 --verbose -e -I -O 2011-11-19T19:23:45 project.fas is my bot 2011-11-19T19:24:27 rajanaresh: clisp 2011-11-19T19:24:30 no 2011-11-19T19:25:41 oh! you want me to use sbcl 2011-11-19T19:26:05 of course 2011-11-19T19:26:33 *** dlila has joined #aichallenge 2011-11-19T19:27:52 wtf 2011-11-19T19:28:13 *** zz has joined #aichallenge 2011-11-19T19:28:16 something supposed to be 2 long is 8 long 2011-11-19T19:28:31 *** avdg has quit IRC (Ping timeout: 248 seconds) 2011-11-19T19:28:39 *** zz is now known as Guest34777 2011-11-19T19:30:00 mcstar: are you sure? 2011-11-19T19:30:02 thestinger: ok, i catched the bastard, it was a typical late night misfortune 2011-11-19T19:30:19 sizeof is really annoying on C arrays 2011-11-19T19:30:25 no sizeof 2011-11-19T19:30:25 http://en.cppreference.com/w/cpp/container/array these are nicer 2011-11-19T19:30:58 mcstar: oh, I assumed it must have been a sizeof bug :) 2011-11-19T19:31:02 nono 2011-11-19T19:31:24 no at all, i wrote values to a vector that had no meaning in this context 2011-11-19T19:31:41 i need to do that separately for separate inputs and then choose from them 2011-11-19T19:31:58 anyway, it would not have happned if i werent tired 2011-11-19T19:32:40 mcstar: mmm - yes this article is awesome! 2011-11-19T19:32:49 :) 2011-11-19T19:33:32 mcstar: I love it and hate it when someone says what I've always wanted to say - love it because it needs to be said and hate it because it reminds me how woefully bad I am at expressing such things to other people 2011-11-19T19:34:22 *** fpcfan has joined #aichallenge 2011-11-19T19:40:12 *** BenJackson has quit IRC (Quit: Page closed) 2011-11-19T19:45:00 aichallenge.org down for anyone? 2011-11-19T19:45:38 *** besh has quit IRC (Quit: Page closed) 2011-11-19T19:46:09 flag: http://www.downforeveryoneorjustme.com/aichallenge.org 2011-11-19T19:46:16 flag: looks like it's down 2011-11-19T19:47:32 *** Guest34777 has quit IRC (Ping timeout: 265 seconds) 2011-11-19T19:47:37 *** xathis has joined #aichallenge 2011-11-19T19:47:39 back 2011-11-19T19:49:53 *** Scryer has joined #aichallenge 2011-11-19T19:55:34 *** CowTipperVirus has joined #aichallenge 2011-11-19T19:57:16 *** mcstar has quit IRC (Quit: WeeChat 0.3.6) 2011-11-19T19:59:02 *** bmh has joined #aichallenge 2011-11-19T19:59:02 *** bmh has joined #aichallenge 2011-11-19T20:00:08 *** amstan has quit IRC (Ping timeout: 244 seconds) 2011-11-19T20:03:21 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-19T20:04:14 *** pairofdice has quit IRC (Quit: leaving) 2011-11-19T20:05:37 *** jasox has joined #aichallenge 2011-11-19T20:08:02 *** hacklash has joined #aichallenge 2011-11-19T20:09:05 *** antimatroid1 has quit IRC (Quit: Leaving.) 2011-11-19T20:09:17 *** antimatroid has joined #aichallenge 2011-11-19T20:14:34 *** avdg has joined #aichallenge 2011-11-19T20:16:08 *** Scryer has quit IRC (Quit: Page closed) 2011-11-19T20:16:35 fml http://sprunge.us/JZGR 2011-11-19T20:16:40 merge did not go as planned xD 2011-11-19T20:19:27 hurr -- stl error 2011-11-19T20:22:18 *** antimatroid has quit IRC (Ping timeout: 252 seconds) 2011-11-19T20:25:00 *** antimatroid has joined #aichallenge 2011-11-19T20:26:04 *** bmh has quit IRC (Quit: bmh) 2011-11-19T20:31:33 *** antimatroid has quit IRC (Ping timeout: 244 seconds) 2011-11-19T20:33:36 *** ALplus has joined #aichallenge 2011-11-19T20:36:27 *** NightExcessive_ has quit IRC (Quit: Leaving) 2011-11-19T20:36:47 *** Yexo has joined #aichallenge 2011-11-19T20:38:05 *** ALplus has quit IRC (Ping timeout: 258 seconds) 2011-11-19T20:39:22 *** avdg has quit IRC (Ping timeout: 252 seconds) 2011-11-19T20:41:37 *** emiel_ has quit IRC (Quit: emiel_) 2011-11-19T20:41:39 *** antimatroid has joined #aichallenge 2011-11-19T20:42:08 *** ALplus has joined #aichallenge 2011-11-19T20:42:14 *** grwip has quit IRC (Quit: Leaving) 2011-11-19T20:42:59 *** Harpyon_ has quit IRC (Quit: Textual IRC Client: http://www.textualapp.com/) 2011-11-19T20:45:21 *** avdg has joined #aichallenge 2011-11-19T20:53:46 *** xathis has quit IRC () 2011-11-19T20:54:56 *** avdg has quit IRC (Quit: Leaving.) 2011-11-19T21:00:00 *** avdg has joined #aichallenge 2011-11-19T21:00:32 having issues dealing with groups of ants (who are being pathed by a*) colliding and causing clogs 2011-11-19T21:00:35 anyone have any tips for this? 2011-11-19T21:01:23 i've tried counting currently planned moves and/or current ant locations as unpassable and have had no luck 2011-11-19T21:03:49 *** fpcfan has quit IRC (Ping timeout: 240 seconds) 2011-11-19T21:06:24 *** Garf has quit IRC (Read error: Connection reset by peer) 2011-11-19T21:08:23 *** avdg has quit IRC (Quit: Leaving.) 2011-11-19T21:08:35 *** Conorach has quit IRC (Ping timeout: 260 seconds) 2011-11-19T21:09:49 twymer: form a dependency chain. have a 'done moving' flag in each ant. if ant 1 wants to move where ant 2 is and ant 2 is not done moving, then recursively move ant 2 (be sure to check for loops) 2011-11-19T21:10:10 if ant 2 is done moving, find a second-best move, and so on 2011-11-19T21:12:17 twymer: i have a function i call at the end that will move any unmoved ants that are going to collide 2011-11-19T21:12:31 and wont move two ants into the same square, but will move an ant into a square containing an unmoved ant 2011-11-19T21:12:49 that may end up with the ocassional collision, but i'll take that 2011-11-19T21:13:33 *** avdg has joined #aichallenge 2011-11-19T21:14:03 *** nle85 has quit IRC (Ping timeout: 265 seconds) 2011-11-19T21:14:11 *** fpcfan has joined #aichallenge 2011-11-19T21:14:46 I do it with brute-force atm, and it's fast enough 2011-11-19T21:15:09 I keep track of the moves that would bring each ant closer to a target 2011-11-19T21:15:22 i want to get battle code going 2011-11-19T21:15:25 then just keep looping through that at the end until a move isn't done 2011-11-19T21:15:29 but it requires quite a few things to be written up 2011-11-19T21:15:36 i'm working on an awesome partition function atm 2011-11-19T21:22:39 *** fpcfan has quit IRC (Ping timeout: 248 seconds) 2011-11-19T21:25:01 i basically do the same thing 2011-11-19T21:25:25 antimatroid: a partition function in the statistical physics sense? 2011-11-19T21:25:34 a1k0n: i like that idea, thanks! 2011-11-19T21:26:03 *** mleyen has quit IRC (Quit: ~ Trillian Astra - www.trillian.im ~) 2011-11-19T21:26:56 a1k0n: not really sure, i'm taking one of my unmoved ants as the start of a partition and adding that to a queue, then for each ant location added to the partition/queue i add neighbouring friends and any enemies it could possibly engage in battle with 2011-11-19T21:27:23 then i'm going to set a maximum size for these partitions 2011-11-19T21:27:45 i correctly work out ants that can/cannot engage in battle with water information taken into consideration too 2011-11-19T21:28:30 i ended up just having a grid of location vectors indicating which ants could possibly end up in the battle radius of a square, then i use that information while making the partitions 2011-11-19T21:28:38 *** sigh has quit IRC (Remote host closed the connection) 2011-11-19T21:28:40 i see. so in other words you're finding the connected components of ants (assuming you start from a bitartite graph between ants of opposing forces) and then splitting based on some heuristic 2011-11-19T21:28:59 or actually it's not bipartite since you consider friends 2011-11-19T21:29:05 um.. something like that i guess 2011-11-19T21:29:07 yeah 2011-11-19T21:29:17 i consider neigbouring friends or friends in range of an enemy 2011-11-19T21:29:23 and similarly for each of the enemy ants added 2011-11-19T21:29:43 then i'm not quite sure how i'll reduce the size of larger partitions yet 2011-11-19T21:29:47 but you dont have to consider friends, do you? they'll get added as being in range of the first enemy 2011-11-19T21:29:57 not necessarily 2011-11-19T21:30:03 consider aa...b 2011-11-19T21:30:12 but you don't care about a.a...b 2011-11-19T21:30:32 *** Antvolution has left #aichallenge 2011-11-19T21:30:32 you might want to move both those first a's west 2011-11-19T21:30:32 well you have to consider from all places they can move, sure 2011-11-19T21:31:45 man i need to add a base defense function of some sort but i'm really hung up on doing combat 2011-11-19T21:32:02 yeah i just started a bot properly like 2 days ago 2011-11-19T21:32:11 i want battle going before i tell my bot about hills 2011-11-19T21:32:21 *** treeform has joined #aichallenge 2011-11-19T21:32:53 (i have been mulling over strategies for months) 2011-11-19T21:32:59 i'm not quiet that amazing in 2 days usually 2011-11-19T21:34:18 a1k0n: when searching and what not and checking which squares in the grid have been visitied, would be it better to have a 2d vector of bools and store which locations have been marked as visited for when resetting or just have a set of locations which have been visited and check that? 2011-11-19T21:34:46 most of the time when clearing the information it should be fairly sparse, so the main cost comes in making the 2d grid 2011-11-19T21:38:20 i have a ton of info on each square in the grid cuz it needs to be accessed constantly 2011-11-19T21:38:38 and i just incrementally update it 2011-11-19T21:43:07 *** NoxiaZ^ has quit IRC (Read error: Connection reset by peer) 2011-11-19T21:44:09 *** amstan has joined #aichallenge 2011-11-19T21:44:09 *** ChanServ sets mode: +o amstan 2011-11-19T21:49:46 a1k0n: visualize your map-data with my latest update to the visualizer! http://forums.aichallenge.org/viewtopic.php?f=25&t=1633&start=70#p11781 2011-11-19T21:50:50 *** Anilm3 has quit IRC (Quit: leaving) 2011-11-19T21:51:55 *** fpcfan has joined #aichallenge 2011-11-19T21:52:02 *** antimatroid has quit IRC (Read error: Connection reset by peer) 2011-11-19T21:52:08 *** antimatroid has joined #aichallenge 2011-11-19T21:55:38 jab_bott: is this the java one? 2011-11-19T21:55:56 i basically can't run that thing without it running out of java heap space 2011-11-19T21:56:11 a1k0n: no, though some people have used it in the java version 2011-11-19T21:56:20 oh it's js? awesome 2011-11-19T21:56:37 a1k0n: it's the normal visualizer that embeds in your browser, with some extensions 2011-11-19T21:57:07 okay, need that 2011-11-19T21:57:17 a1k0n: the java one is actually just a web-environment simulator (or something like that) so that the JS visualizer runs in it. I've never managed to get that working 2011-11-19T21:57:26 hmm, made a small change to my scoring function and now base defense actually works 2011-11-19T21:57:59 base-defence?? pah - just dominate the map so brutally that nobody ever gets near your base, that's my plan ;) 2011-11-19T21:58:03 *** TheLinker has joined #aichallenge 2011-11-19T21:59:22 i had this stupid problem with it where it would always leave an ant sitting right next to the hill 2011-11-19T21:59:40 and so it would cost me on foraging in the early game if there were any enemies in sight 2011-11-19T22:02:52 *** dkdineshk3 has quit IRC (Ping timeout: 265 seconds) 2011-11-19T22:04:14 *** JorgeB has joined #aichallenge 2011-11-19T22:04:15 *** antimatroid has quit IRC (Ping timeout: 248 seconds) 2011-11-19T22:04:18 hi 2011-11-19T22:04:23 *** foRei has quit IRC (Quit: Bye) 2011-11-19T22:04:29 hi 2011-11-19T22:04:42 can anyone please tell me where can i find TCP server and how to use them doc ? 2011-11-19T22:04:52 vania: http://ants.fluxid.pl/howto 2011-11-19T22:05:10 flag: how come A_laptop is so much weaker than A? 2011-11-19T22:05:20 wow thanks dude 2011-11-19T22:05:21 i'm running my bot on a laptop so there :) 2011-11-19T22:05:44 vania: there's also tcpants.com 2011-11-19T22:05:47 (yes, tc pants) 2011-11-19T22:05:52 lol! 2011-11-19T22:09:08 a1k0n : What should i put for username and pass ? 2011-11-19T22:09:51 *** antimatroid has joined #aichallenge 2011-11-19T22:10:12 vania: first time you login, it registers you 2011-11-19T22:10:19 then use the same one from then on 2011-11-19T22:10:37 so i just pick a pass then...? 2011-11-19T22:10:44 yes 2011-11-19T22:10:49 k thanks 2011-11-19T22:20:26 *** capa has quit IRC () 2011-11-19T22:25:55 *** roflmao has quit IRC (Remote host closed the connection) 2011-11-19T22:26:09 *** roflmao has joined #aichallenge 2011-11-19T22:31:39 a1k0n: A number of reasons: I have a really old laptop so it actually makes me timeout more often, and I'm also making a number of trial modifications 2011-11-19T22:32:20 *** sigh has joined #aichallenge 2011-11-19T22:34:46 so the attackradius2 is the squared radius of the circle drawn around an ant in the visualizer? 2011-11-19T22:43:49 *** antimatroid has quit IRC (Read error: Connection reset by peer) 2011-11-19T22:44:07 *** antimatroid has joined #aichallenge 2011-11-19T22:50:19 hokay, i can partition my ants up no 2011-11-19T22:50:20 w 2011-11-19T22:52:15 *** twymer has quit IRC (Ping timeout: 258 seconds) 2011-11-19T23:06:02 *** NightExcessive has joined #aichallenge 2011-11-19T23:09:42 *** twymer has joined #aichallenge 2011-11-19T23:11:21 *** vania has quit IRC (Quit: Page closed) 2011-11-19T23:27:51 twymer: yeah - it gives a better (more accurate) circle when dealing with integers because you lose precision when you sqrt then cast to int, also it's more efficient to compare square vs. square of radius values - saves two square roots 2011-11-19T23:31:58 *** AntDroid has joined #aichallenge 2011-11-19T23:38:34 my mobo died 2011-11-19T23:38:47 so i'm going to have to buy myself an obligatory really expensive christmas present 2011-11-19T23:38:56 replace mobo = replace cpu and mem = kickass new machine 2011-11-19T23:39:13 y'know since I've got to spend money i better spend it properly :P 2011-11-19T23:42:19 oh, that's why my defense branch doesn't work - my ants were being sent to defend other hills 2011-11-19T23:42:27 *** NightExcessive has quit IRC (Quit: Leaving) 2011-11-19T23:42:36 *** Harpyon has quit IRC (Quit: Computer has gone to sleep.) 2011-11-19T23:42:46 for some reason I coded it in a way that basically assumes there's 1 hill... 2011-11-19T23:48:15 *** delt0r_ has quit IRC (Ping timeout: 248 seconds) 2011-11-19T23:53:01 *** JorgeB has quit IRC (Quit: Textual IRC Client: http://www.textualapp.com/) 2011-11-19T23:53:26 *** JorgeB has joined #aichallenge