2011-11-06T00:03:09 *** bmh has joined #aichallenge 2011-11-06T00:03:09 *** bmh has joined #aichallenge 2011-11-06T00:05:05 - 2011-11-06T00:14:00 *** Extrarius has quit IRC () 2011-11-06T00:14:01 how does this map look? http://paste.aichallenge.org/NWFZ7/ 2011-11-06T00:14:24 except the part where you can't access other hills 2011-11-06T00:15:20 *** Ashoka has joined #aichallenge 2011-11-06T00:15:38 interesting... so it's essentially 3 1v1 matches 2011-11-06T00:17:26 actually no ... 2 1v1 matches per bot 2011-11-06T00:18:52 when will the rules (view/attack radius, etc.) and map generators be finalized? 2011-11-06T00:19:05 orange3: map generators, never 2011-11-06T00:19:16 orange3: rules, they're mostly finished, unlikely that they'll change 2011-11-06T00:19:44 orange3: you shouldn't be hardcoding your bot to those values though, use the params that you get 2011-11-06T00:19:57 the generators themselves will never be finalized? (I don't mean the maps themselves, but the random distribution of maps) 2011-11-06T00:20:48 if someone comes with a new map generator in the last minute before results are shown, we'll might use new maps in the last few games 2011-11-06T00:20:55 we* 2011-11-06T00:21:14 i think it's might be necessary to optimize around the current attackradius2 to have a bot that's any good.. altering that could have drastic consequences 2011-11-06T00:21:57 a1kon: really? 2011-11-06T00:22:09 i wouldn't have thought it'd be that hard to do state evaluation for a general attack radius 2011-11-06T00:22:21 yeah, I'm taking the parameters as inputs, but I'm optimizing with the assumption that the attackradius2 or food gathering radius is unlikely to change..? (will those values ever be finalized or will it be assumed that those will be random as well..?) 2011-11-06T00:22:37 you can construct translate values for attack radius in the 0th turn 2011-11-06T00:22:44 it isn't, but the particular tactics change as you increase it 2011-11-06T00:22:45 orange3: that's fine 2011-11-06T00:23:03 amstan_: they will be changed if the game is considered broken for any reason 2011-11-06T00:23:09 that's why the parameters exist in the first place 2011-11-06T00:23:14 orange3: that ^ 2011-11-06T00:23:18 orange3: it is unideal for competitors and organisers if they change 2011-11-06T00:23:30 but we reserve the right to change them if we consider that the best option 2011-11-06T00:23:38 antimatroid: what do you think? http://paste.aichallenge.org/NWFZ7/ 2011-11-06T00:23:40 *** djr_ has joined #aichallenge 2011-11-06T00:23:44 antimatroid: besides the part where you can't access some hills 2011-11-06T00:24:11 amstan_: looks good, one other thing is do we want a minimum corridor width? 2011-11-06T00:24:18 that isn't 1 :P 2011-11-06T00:24:26 you need a minimum of width 3 to prevent blocking 2011-11-06T00:24:33 when attackrad is 5 2011-11-06T00:24:37 is blocking a bad thing? 2011-11-06T00:24:39 yes 2011-11-06T00:24:41 yes 2011-11-06T00:24:44 leads to stale games 2011-11-06T00:24:49 and games that can't end 2011-11-06T00:25:05 i assume you're just carving those out? just carve with a 3x3 block 2011-11-06T00:25:07 I see. but the rules should be finalized some time before submissions close correct? I believe we had similar issues with planet wars, where the map distributions suddenly changed last minute.. someone who tries to make their bot fit the case where the attackradius2 could be anywhere between 1 and 500 is going to likely have a weaker bot than someone who assumes it's 5 (if it actually stays at 5) 2011-11-06T00:25:30 yeah, the tactics are very sensitive to the precise value of attackrad 2011-11-06T00:25:30 antimatroid: https://plus.google.com/118210384829172301796/posts/15ewiYkbGKC 2011-11-06T00:25:38 orange3: agreed, i am a proponent for general rules provided the rules are met to that generality 2011-11-06T00:25:38 orange3: yes 2011-11-06T00:25:44 otherwise it comes down to who made the best assumptions 2011-11-06T00:25:50 attackrad=9 plays differently than 8 or 10 2011-11-06T00:26:16 orange3: the current parameters wont change unless the game is literally found to be broken for some reason 2011-11-06T00:26:25 ok 2011-11-06T00:26:28 even 6 would be a big change 2011-11-06T00:26:29 and we've put a lot of thought into what would break it before actually starting this time 2011-11-06T00:26:31 i think we're good 2011-11-06T00:26:36 6 wouldn't change anything! 2011-11-06T00:26:37 orange3: in pw only the mapgen changed, you had no excuse if your bot crashed 2011-11-06T00:26:41 values 5-8 are equivalent 2011-11-06T00:26:43 yeah it would 2011-11-06T00:26:50 you have to check < attackradius2, not <= 2011-11-06T00:27:04 no it's <= 2011-11-06T00:27:24 * antimatroid gets back to his exam 2011-11-06T00:27:40 what! 2011-11-06T00:27:51 it better not be 2011-11-06T00:28:03 honeymatroid doesn't give a shit, he writes exams, and eww what's that? a blocked hill? 2011-11-06T00:28:20 does anyone try to keep track of food and mounds that they saw but are no longer visible? 2011-11-06T00:28:29 amstan_: take home exams are both wonderful and gruelling :P 2011-11-06T00:28:36 antimatroid: lol 2011-11-06T00:28:51 antimatroid: well, good luck 2011-11-06T00:28:53 wow so many A usernames 2011-11-06T00:28:59 haha yeah that's what i thought :P 2011-11-06T00:29:29 I think the same (but slightly looser) argument can be made for the map generators. it's likely the strongest bot will still win given any generator, but we should have some rough frameworks for what to expect. otherwise again it's whoever makes the best assumptions.. 2011-11-06T00:29:48 orange3: no.. you ruined the record now 2011-11-06T00:30:07 sorry, I'll login with a different name 2011-11-06T00:30:10 *c-c-c-c-combo breaker* 2011-11-06T00:30:11 orange3: lol 2011-11-06T00:30:34 someone should take the name Antinomy 2011-11-06T00:30:37 just to be confusing 2011-11-06T00:30:59 Antimony: I keep track of hills n food 2011-11-06T00:31:08 holy shit you're right, it's <= 2011-11-06T00:31:11 no wonder my combat doesn't work 2011-11-06T00:32:54 I'm trying to figure out a good way to keep track of invisible objects 2011-11-06T00:33:06 god dammit, duh 2011-11-06T00:33:10 I guess I should just do a simple check now and worry about efficiency later 2011-11-06T00:33:22 a1k0n: did within confuse you? 2011-11-06T00:33:36 i was worried about that wording, i put a statement in the specs to define exactly what i meant 2011-11-06T00:33:45 i misremembered discussing this exact thing before and checking and changing my mind, but i couldn't remember what i had thought originally, just that it was wrong 2011-11-06T00:34:12 the 'Scenarios' section of http://aichallenge.org/specification_battle.php is the best explanation 2011-11-06T00:34:16 *** cyphase has joined #aichallenge 2011-11-06T00:34:28 that was probably mcleopold :P 2011-11-06T00:36:18 *** the-mgt has joined #aichallenge 2011-11-06T00:37:36 *** Antimony has quit IRC (Ping timeout: 258 seconds) 2011-11-06T00:40:57 *** Antimony has joined #aichallenge 2011-11-06T00:41:05 haha my bot is doing much, much better now with that change 2011-11-06T00:41:36 @rankings 2011-11-06T00:41:37 amstan_: Top 10 players: xathis(88.8), sir_macelon(83.9), MomoBot(83.4), GarySWest(83.0), Fluxid(81.8), paratrechina(81.7), Ender(81.2), xRaider(80.3), teapotahedron(79.4), olex.s(78.8) 2011-11-06T00:41:44 @rankings 25 2011-11-06T00:41:45 amstan_: Top 25 players: xathis(88.8), sir_macelon(83.9), MomoBot(83.4), GarySWest(83.0), Fluxid(81.8), paratrechina(81.7), Ender(81.2), xRaider(80.3), teapotahedron(79.4), olex.s(78.8), ThisIsNotABug(78.8), lordap(78.8), FLashM(78.7), ChrisH(78.4), Migi32(78.3), cumbuz(78.0), coachbudka(77.9), vittim(77.7), cantsbot(77.5), r-bit(77.3), Oleg_Ovcharenko(77.2), a1k0n(77.2), ZumZoom(76.6), (1 more message) 2011-11-06T00:41:58 24th, hmm 2011-11-06T00:42:02 well i haven't submitted the change yet 2011-11-06T00:42:05 it'll take a week to update that 2011-11-06T00:42:11 aww 2011-11-06T00:42:35 i'm not sure my bot will rank any higher with this.. there's some advantage to being oblivious, versus being too cautious (which it is now) 2011-11-06T00:42:52 *** Vivitron has quit IRC (Remote host closed the connection) 2011-11-06T00:43:43 now i'm at a total standoff with someone on fluxid's server 2011-11-06T00:46:12 _flag: are you ok with me merging your code inside the main repo? instead of a submodule? 2011-11-06T00:46:16 @seen _flag 2011-11-06T00:46:16 amstan_: _flag was last seen in #aichallenge 1 day, 4 hours, 19 minutes, and 5 seconds ago: <_flag> Do any of you guys want to go on tcp? My bot needs some practice :P 2011-11-06T00:48:24 <_flag> amstan_: Yeah, just a sec though, I have to fix something 2011-11-06T00:59:25 *** icefox has joined #aichallenge 2011-11-06T01:01:01 i don't know what i'm doing :( 2011-11-06T01:01:06 <_flag> amstan_: Okay, you can merge 2011-11-06T01:01:29 <_flag> If I decided to make an update, will I have to let you know? 2011-11-06T01:02:23 *** Harpyon has quit IRC (Quit: Textual IRC Client: http://www.textualapp.com/) 2011-11-06T01:02:54 _flag: you should fork the entire repo 2011-11-06T01:03:07 _flag: after i do all this, and do pull requests like everyone else 2011-11-06T01:03:27 _flag: oh.. you fixed that guy's memory bug 2011-11-06T01:03:29 <_flag> Okay, that makes sense 2011-11-06T01:03:29 cool 2011-11-06T01:03:38 <_flag> Yeah 2011-11-06T01:03:38 _flag: you know what.. i'll just add you to the commiters 2011-11-06T01:03:43 <_flag> :) 2011-11-06T01:07:49 bahahahah. this seems kind of suboptimal: http://ants.fluxid.pl/replay.22518 2011-11-06T01:07:54 aichallenge: Alexandru Stan amstan_mapgen * r9c1ad26 / (4 files): Added optparse frontend to mapgen - http://git.io/zqXWRA 2011-11-06T01:07:54 aichallenge: Eric Jiang epsilon * r005ffc7 / Makefile : Fixed Makefile - http://git.io/gjtagw 2011-11-06T01:07:55 aichallenge: flagcapper epsilon * r4e338d6 / Makefile : 2011-11-06T01:07:55 aichallenge: Merge pull request #1 from erjiang/master 2011-11-06T01:07:55 aichallenge: Pulled new Makefile from erjiang - http://git.io/EBXrSQ 2011-11-06T01:07:55 aichallenge: FlagCapper epsilon * r82719df / MyBot.c : Fixed memory management bug. - http://git.io/6GilZg 2011-11-06T01:07:56 aichallenge: FlagCapper epsilon * rdb1b4b2 / MyBot.c : Fixed spacing issue on memory bug - http://git.io/jDhfHQ 2011-11-06T01:07:56 aichallenge: Alexandru Stan epsilon * r55aa684 / (7 files in 2 dirs): Merge c submodule 'cstarter/master' into epsilon - http://git.io/Vp1JtA 2011-11-06T01:08:01 *** Jak_o_Shadows has joined #aichallenge 2011-11-06T01:09:24 umm, with that Makefile update it will once again rm any file in sources that doesn't have a .c extension if make clean is run 2011-11-06T01:09:56 I imagine that was and accidental revert when the other changes were made 2011-11-06T01:10:11 who is 'A' on ants.fluxid.pl anyway? is that accoun? 2011-11-06T01:10:22 <_flag> a1k0n: That's my testing account 2011-11-06T01:10:24 janzert: yeah, some guy submitted a better makefile 2011-11-06T01:10:39 except he used the old OBJECTS definition 2011-11-06T01:10:51 <_flag> Oops, I think he forked an old version of the repo 2011-11-06T01:11:07 _flag: np, i'm on fixing it 2011-11-06T01:11:14 _flag: ahh 2011-11-06T01:11:15 a1k0n: that is FlagCapper 2011-11-06T01:11:16 <_flag> amstan_: Okay, thanks :) 2011-11-06T01:11:19 *** Antimony has quit IRC (Ping timeout: 255 seconds) 2011-11-06T01:11:27 i should probably tell my ants to defend their hills now 2011-11-06T01:11:50 <_flag> a1k0n: That is often times beneficial :) 2011-11-06T01:11:52 aichallenge: Alexandru Stan epsilon * rc3c8cc6 / ants/dist/starter_bots/c/Makefile : Updated Makefile to fix bug where non ".c" source files were delted on "make clean" - http://git.io/qUyVpA 2011-11-06T01:12:04 _flag: very nice job with your bot btw! 2011-11-06T01:12:19 <_flag> Thanks, although I was in the beta so I had a bit of a head start 2011-11-06T01:12:22 _flag: I wish I wasn't such a noob when I was your age x.x 2011-11-06T01:12:29 <_flag> Haha 2011-11-06T01:12:35 still, it's good! 2011-11-06T01:13:17 now who is sprint1? 2011-11-06T01:13:22 _flag: how old are you? 2011-11-06T01:14:18 <_flag> 16 2011-11-06T01:14:33 sprint1 sounds like someone working in an agile shop 2011-11-06T01:15:30 _flag: decent, how do you feel owning everyone at such a young age? 2011-11-06T01:15:43 dang 2011-11-06T01:16:03 <_flag> amstan_: Dunno, I just want to beat xathis, I don't really think about age gaps :) 2011-11-06T01:16:03 amstan_: more than decent! 2011-11-06T01:16:11 lol 2011-11-06T01:16:37 I totally feel old now...damn 2011-11-06T01:16:38 lol I do... makes me think... damn, I wasted 5 years! 2011-11-06T01:19:49 *** danielharan has quit IRC (Remote host closed the connection) 2011-11-06T01:22:45 _flag: do you think xathis is doing alpha-beta search? 2011-11-06T01:23:47 <_flag> alpha-beta is a bit expensive for this game, isn't it? For what part, specifically? 2011-11-06T01:26:53 combat resolution. yeah, it probably isn't complex enough to require it 2011-11-06T01:27:07 but i don't know, he's so far ahead 2011-11-06T01:27:09 <_flag> For combat resolution it's certainly possible. I use something similar 2011-11-06T01:27:36 <_flag> He is, but I think it's more him simply doing all the little things very well 2011-11-06T01:27:58 <_flag> For example, he spreads out and explores much more efficiently than anyone else, and once you have more ants, you can basically do whatever you want 2011-11-06T01:28:25 right. my exploration is pretty good, and it definitely got me up to 20ish place alone 2011-11-06T01:28:40 because everything else about my current submission is terrible 2011-11-06T01:31:29 anyone know who xathis is? 2011-11-06T01:31:47 was he participating during the beta period? 2011-11-06T01:31:54 <_flag> Yeah, he was 2011-11-06T01:32:02 <_flag> As "mathis" though 2011-11-06T01:32:29 was he #1 during the beta too? 2011-11-06T01:32:48 <_flag> I think near the end he was 2011-11-06T01:33:17 <_flag> He wasn't in the beta from the beginning, before that it was a combination of sir_macelon, DarkMomoBot, me and some others 2011-11-06T01:33:24 his email doesn't match anyone from this channel either 2011-11-06T01:33:29 so we don't know 2011-11-06T01:33:36 <_flag> I've seen him in here before 2011-11-06T01:33:37 unless.. he's on the forums 2011-11-06T01:33:50 @seen xanthis 2011-11-06T01:33:50 amstan_: I have not seen xanthis. 2011-11-06T01:33:52 <_flag> But ever since he got into first place he hasn't bothered looking at the contest I think :) 2011-11-06T01:33:58 @seen mathis 2011-11-06T01:33:58 amstan_: mathis was last seen in #aichallenge 8 weeks, 4 days, 15 hours, 56 minutes, and 20 seconds ago: I'm taking the basic track of aiclass.com 2011-11-06T01:34:01 <_flag> @seen xathis 2011-11-06T01:34:01 _flag: xathis was last seen in #aichallenge 3 days, 10 hours, 34 minutes, and 56 seconds ago: janzert: but the queue is only visible if you're logged in, and if you're not interested in the remaining time and don't upload a bot there's no reason to be logged in 2011-11-06T01:34:31 lol that ai class must be good =P 2011-11-06T01:34:34 lol 2011-11-06T01:34:45 *** aarossig_ has joined #aichallenge 2011-11-06T01:37:49 *** aarossig has quit IRC (Ping timeout: 240 seconds) 2011-11-06T01:39:40 *** orange3 has quit IRC (Quit: Page closed) 2011-11-06T01:41:58 *** pek has joined #aichallenge 2011-11-06T01:42:04 hey everyone 2011-11-06T01:43:17 in Java, I try to create a JFrame but after a few seconds it closes. Is there a restriction for Swing? 2011-11-06T01:43:41 i'm doing aiclass too, barely scraping past the homework 2011-11-06T01:43:50 same with ml-class 2011-11-06T01:43:59 i just do the homework but i don't really understand the formulas 2011-11-06T01:47:00 summer has arrived :D 2011-11-06T01:47:04 it's like 30 degrees outside 2011-11-06T01:47:05 so it has 2011-11-06T01:47:17 only a year later 2011-11-06T01:47:19 *late 2011-11-06T01:47:26 ? 2011-11-06T01:47:42 we had a decent summer last year i think 2011-11-06T01:47:57 i don't know where you were, but it was freezing the whole of summer this year 2011-11-06T01:48:09 always tassie 2011-11-06T01:48:15 i never had to store my jacket 2011-11-06T01:48:20 because i always needed to wear it out 2011-11-06T01:48:46 ergh i hate town, festivals and chilling at friends is sweet but clubs etc. are overpriced and horrible :P 2011-11-06T01:48:51 *** praveen_ has joined #aichallenge 2011-11-06T01:48:56 plus i'm too much of a chat drunk and always get kicked out :P 2011-11-06T01:49:26 hehe yeh 2011-11-06T01:49:29 i know the feeling 2011-11-06T01:50:01 Can we apply any possible machine learning algo - Not sure what it would learn though. Did anybody try? 2011-11-06T01:50:24 lets see, the max average temperature in victoria summer 2011 was 25.5c ==" 2011-11-06T01:52:41 praveen_ you could possibly write a learning bot, but you must only teach it locally 2011-11-06T01:52:55 since you cannot persist information between games on the actual live server 2011-11-06T01:53:17 so you could possibly teach it using the TCP servers 2011-11-06T01:53:31 Can we do this. if we can get the logs of all the games played, its possible to use that as training data 2011-11-06T01:53:48 as long as it is within the upload limit, shouldn't be a problem 2011-11-06T01:54:03 And learn something like, when to attack and when to defend - kind of 2011-11-06T01:54:07 and also, your bot has to process your training data at the beginning of every game , which could take a while 2011-11-06T01:54:44 I don't think ML would work well on this one 2011-11-06T01:54:46 Yeah 2011-11-06T01:55:18 Rinum: I think the difficulty lies in the question - "What would you possible learn and how" 2011-11-06T01:55:46 yup 2011-11-06T01:55:57 if you use collaborative diffusion 2011-11-06T01:56:10 you could use machine learning to determine the best parameters for the diffusion 2011-11-06T01:56:11 why don't people learn from replays instead of tcp? 2011-11-06T01:56:39 amstan_ isn't the point of TCP to generate replays? 2011-11-06T01:57:07 i guess, but the games there are a little different 2011-11-06T01:57:14 Yes - I am not much aware of Colloborative diffusion - Let me try to read. 2011-11-06T01:57:17 might make a difference for the gameophiles 2011-11-06T01:57:47 well you could design contrived scenarios and see how your bot reacts 2011-11-06T01:57:53 but its a bit hard to fiddle with the map files 2011-11-06T01:58:07 Thanks for pointing out. Thats a good starting point. 2011-11-06T01:58:09 *** ecarpenter84 has joined #aichallenge 2011-11-06T01:58:27 Yeah 2011-11-06T01:58:38 yeh i'm having difficulty trying to implementing it in an intelligent way 2011-11-06T01:58:55 Anyone have good tips on caching cost maps? 2011-11-06T01:59:00 it ends up being a massive swarm of ants trying to get to 1 single goal 2011-11-06T01:59:01 im trying to reduce time spend calculating 2011-11-06T01:02:18 declare variable, assign cost map to variable. 2011-11-06T01:02:21 lol \jk 2011-11-06T01:04:06 i was meaning more along the lines of how long to cache a map for, if i should use a discount factor and merge old data with new or completely swap it 2011-11-06T01:04:09 *** stocha has joined #aichallenge 2011-11-06T01:04:15 which types of goals could be cached better 2011-11-06T01:04:33 well i wouldn't cache food 2011-11-06T01:04:35 and ants 2011-11-06T01:04:36 hills yes 2011-11-06T01:05:02 pathing (obstacles etc.) could be cached 2011-11-06T01:05:08 those are the things i would look at 2011-11-06T01:05:19 things that move vs things that are more constant 2011-11-06T01:05:28 well 2011-11-06T01:06:00 im trying to keep 7 bfs maps of all visible areas 2011-11-06T01:06:08 and its too expensive to compute all of them on the same turn 2011-11-06T01:07:16 im thinking maybe compute the biggest one first and then see how much time is left and try to guess how many more i can compute before falling out into the assignment phase 2011-11-06T01:09:10 *** djr_ has quit IRC (Ping timeout: 260 seconds) 2011-11-06T01:09:22 well you've thought about it more than 1 have 2011-11-06T01:09:51 *** mcstar has joined #aichallenge 2011-11-06T01:10:15 @later tell orange3 actually the map generator is the single most decisive rule. 2011-11-06T01:10:15 stocha: I come to serve. 2011-11-06T01:10:33 *** pairofdice has joined #aichallenge 2011-11-06T01:11:57 stocha: ! 2011-11-06T01:11:59 hai 2011-11-06T01:12:10 hello mcstar. 2011-11-06T01:12:16 what's up ? 2011-11-06T01:12:23 not much 2011-11-06T01:12:25 any bot do you have now ? :p 2011-11-06T01:12:29 sure 2011-11-06T01:12:37 working on it 2011-11-06T01:12:38 i forget it's name. 2011-11-06T01:12:42 its new 2011-11-06T01:12:46 what's your bot name ? 2011-11-06T01:12:47 AgentSmith 2011-11-06T01:14:12 i read upon c++11, has some very nice features indeed 2011-11-06T01:14:23 im recommending every c++ programmer to take a look 2011-11-06T01:14:33 what is the bot rating ? (only 7 games so far) 2011-11-06T01:14:45 i mean what rating doyou expect for it 2011-11-06T01:14:53 oh, not too good 2011-11-06T01:15:02 has no knowledge of hills 2011-11-06T01:15:08 will be corected today 2011-11-06T01:15:10 i think 2011-11-06T01:15:20 i was experimenting with game trees yesterday 2011-11-06T01:16:17 I picked almost randomly one of my old bot (it assumes the old rules, without hills). It is on first page. It was like 40th in the old beta. 2011-11-06T01:16:43 my similar bot reached 37th at the end of old beta 2011-11-06T01:16:54 but that was in cl 2011-11-06T01:17:02 this is in c++, and i think it is better tuned 2011-11-06T01:17:15 do you do a bit of combat ? 2011-11-06T01:17:30 well, thats what i was working on it yesterday 2011-11-06T01:17:42 I never submited a bot with combat awarness yet. 2011-11-06T01:17:50 me neither 2011-11-06T01:17:58 just tries to stay away from enemy a bit 2011-11-06T01:18:04 i suspect lots of people are working on combat but haven't submitted it yet 2011-11-06T01:18:11 antimatroid: hey 2011-11-06T01:18:13 i'm building a new developpement framework. Once it's done, i'll decide if i submit a bot or not. (i doubt i'll have much time). 2011-11-06T01:18:13 it will be interesting once lots more combat aware bots are up 2011-11-06T01:18:20 c++11 has great features 2011-11-06T01:18:21 mcstar: hey 2011-11-06T01:18:29 i've not looked at it yet 2011-11-06T01:18:31 it feels almost as language one could like 2011-11-06T01:18:34 a* 2011-11-06T01:18:35 :P 2011-11-06T01:18:45 im trying to work out general goal testing before i do game trees / combat indepth 2011-11-06T01:18:55 what's that 11 after c++, a typo ? :p 2011-11-06T01:19:14 stocha: yeah 2011-11-06T01:19:26 well, its only late roughly 30 years 2011-11-06T01:19:27 ecarpenter84: how do you guys find time for game trees ? I don't even find enougth time without combat awarness ... 2011-11-06T01:19:42 i mean from the 500 ms 2011-11-06T01:20:06 mcstar: what does 11 bring to the table ? 2011-11-06T01:20:17 i imagine some alpha beta pruning with a very good evaluation heuristic 2011-11-06T01:20:28 my benchmark shows that i can do a 2-turn tree for simple situations in couple of ms's 2011-11-06T01:20:41 ecarpenter84: did you try it yet ? 2011-11-06T01:20:57 mcstar: how many ants does that involves ? 2011-11-06T01:21:09 how do one do alphabeta with simultaneous turns ? 2011-11-06T01:21:11 you would only use it on the ants that need it the most 2011-11-06T01:21:18 stocha: what i am most excited about is the auto keyword, new for on ranges, and lambdas and closures 2011-11-06T01:21:48 is c++11 a functional oriented language ? 2011-11-06T01:21:54 it is c++ 2011-11-06T01:22:00 the latest standard 2011-11-06T01:22:09 Do you guys splits the ants into groups like explorers, attack enemy, raze hills? 2011-11-06T01:22:10 you can meta evaluate 2011-11-06T01:22:19 compute about what to compute 2011-11-06T01:22:31 only the ants nearest to enemies get evaluated with A/B pruning 2011-11-06T01:22:37 praveen_: i certainly would like to try that. But i didn't so far. 2011-11-06T01:22:49 *** Node5000 has joined #aichallenge 2011-11-06T01:23:11 ecarpenter84: how do you manage the simultaneous turn problem ? 2011-11-06T01:23:22 stocha: thats not a problem 2011-11-06T01:23:23 what problem 2011-11-06T01:23:31 stocha: ok even I want to try that in my first version 2011-11-06T01:23:36 alpha beta pruning is just a faster version of minimax 2011-11-06T01:23:43 just imagine that players do turns after each other 2011-11-06T01:23:46 you assume the opponent is going to take the best possible move 2011-11-06T01:23:47 if it feels better 2011-11-06T01:23:59 mcstar: wich one plays first ? 2011-11-06T01:24:05 stocha: doesnt matter 2011-11-06T01:24:17 you evaluate everything unless you prune 2011-11-06T01:24:17 i don't get it. 2011-11-06T01:24:33 how do the order of players not matters ? 2011-11-06T01:24:35 stocha: theres no difference in principle 2011-11-06T01:24:44 why would it? 2011-11-06T01:24:54 have you read up on minimax 2011-11-06T01:25:04 how much rank can I possible get, if I implement Efficient exploring + shortest path food collection alone? 2011-11-06T01:25:05 ah yeah, the algorithm will output a result. I have no doubt. But i'm puzzled about what to input into it. 2011-11-06T01:25:14 *** Jak_o_Shadows has quit IRC (Remote host closed the connection) 2011-11-06T01:25:16 if you try player A than player B, you will still get every possible position when you evaluate 2011-11-06T01:25:31 okay say if your evaluting a specific ant 2011-11-06T01:25:31 praveen_: about 1-100 rank. 2011-11-06T01:25:31 the same as player B than player A 2011-11-06T01:25:37 and another enemy ant nearby 2011-11-06T01:25:46 _flag: graaah stop killing me 2011-11-06T01:25:47 you do for move north, each enemy ant move 2011-11-06T01:26:00 you set bounds based alpha-beta 2011-11-06T01:26:04 praveen_: my bot do just that. No combat awarness (although it try to avoid ennemy a bit) and no hills awarness. 2011-11-06T01:26:10 stocha: thanks thats interesting. 2011-11-06T01:26:23 stocha: whats your bot name? 2011-11-06T01:26:31 ecarpenter84: the problem is: there are situations, when even the first ply is too much to generate 2011-11-06T01:26:37 praveen_: stocha. 2011-11-06T01:26:39 and theres no pruning there 2011-11-06T01:26:58 stocha: your comment will get me started. Basic version can do so well. Good to know. 2011-11-06T01:27:00 you only would alpha beta 2011-11-06T01:27:02 with the nearest ant 2011-11-06T01:27:29 <_flag> a1k0n: Sorry :( 2011-11-06T01:27:36 lets say there are "many" nearest ants 2011-11-06T01:27:49 but yeah, i thought about splitting everything up 2011-11-06T01:27:52 Okay first lets evaluate ply 1 2011-11-06T01:27:54 thats the only viable way 2011-11-06T01:27:56 praveen_: although most bot here are quite old. I think on the tcp server, it's on page 2. 2011-11-06T01:28:11 *** Node5000 has quit IRC (Quit: Page closed) 2011-11-06T01:28:14 i have 4 moves with 4 respones. so there are 20 total moves to evaluate a "score" for 2011-11-06T01:28:17 in ply 1 2011-11-06T01:28:18 5 2011-11-06T01:28:25 @tcp 2011-11-06T01:28:26 stocha: tcp could be http://ants.fluxid.pl/howto. 2011-11-06T01:28:44 you could evaluate the "strength" of the nearest ant 2011-11-06T01:28:46 any chance we can get the source code of the visualizer? 2011-11-06T01:28:49 it's stocha_Exp40 there 2011-11-06T01:28:52 to be the # of ants within a radius of 2? 2011-11-06T01:29:04 and your starting strength as a similar heuristic 2011-11-06T01:29:57 ecarpenter84: im doing full battle resoltion 2011-11-06T01:30:00 resolution 2011-11-06T01:30:09 doesnt cost much 2011-11-06T01:30:13 *** JorgeB has joined #aichallenge 2011-11-06T01:30:23 in find this idea of evaluating one ant strength quite interesting. 2011-11-06T01:30:42 i will try to have a heuristic cost function on top of that 2011-11-06T01:31:08 is there some standard alphabeta implementation for java that i could use ? :p 2011-11-06T01:31:27 mcstar: you can compute about what to compute. on important/key ants you can use a game tree to evaluate the best way to obtain a key objective 2011-11-06T01:31:31 i don't really feel like tuning one, if i'm not sure i will use it in the end :p 2011-11-06T01:31:44 you wouldnt need that "high res" image on every ant 2011-11-06T01:31:47 or even every combat ant 2011-11-06T01:31:50 *** Rinum has quit IRC (Ping timeout: 265 seconds) 2011-11-06T01:31:55 stocha: my alg. is only a screenful so far 2011-11-06T01:32:01 you can write your own in no time 2011-11-06T01:32:08 even with a-b 2011-11-06T01:32:11 just maybe ants near enemy nodes to try to slip around defense / defend your base 2011-11-06T01:32:27 mcstar: last time i tryind i even ended up with a buggued minimax. 2011-11-06T01:32:32 http://en.wikipedia.org/wiki/Alpha-beta_pruning 2011-11-06T01:32:38 pseudocode is like < 10 lines long 2011-11-06T01:32:52 its recursive so it doesnt take many lines 2011-11-06T01:32:53 just the right ones 2011-11-06T01:33:20 ecarpenter84: i was talking only about battle situations 2011-11-06T01:33:46 ecarpenter84: thanks. I might try it. 2011-11-06T01:33:49 well find out the cost in it 2011-11-06T01:33:57 then evalute what you can afford to 2011-11-06T01:34:10 if you can only afford 1-3 ants at a ply of 2 or 3 2011-11-06T01:34:13 *** dvladim has joined #aichallenge 2011-11-06T01:34:15 then try to pick the right ones 2011-11-06T01:34:34 ecarpenter84: your bot's name? 2011-11-06T01:34:35 you can dynamically change # of a-b ants / # of plies 2011-11-06T01:34:52 i just started the content 2011-11-06T01:34:56 stocha: You rank 67. Is that really exploration + shortest path for food? You should be having really nice implementation then 2011-11-06T01:34:59 though ive done AI programming before 2011-11-06T01:35:03 *** fasteddie_ has joined #aichallenge 2011-11-06T01:35:24 oh i have to tell this 2011-11-06T01:35:29 praveen_: there is a lot of room for improvement. On the tcp server my most simple bot did better than this one. 2011-11-06T01:35:36 i haven't implemented anything on the server yet other then bfs for 7 goals then diffusing the maps and passing that to all ants 2011-11-06T01:35:37 i woke up at 5:44 2011-11-06T01:35:47 and my pc was turned on for the night 2011-11-06T01:35:52 and im timing out so i just added code to break loops ;rightnow base don tiem remaing 2011-11-06T01:36:03 after i wake up, within a minute, theres a power outage 2011-11-06T01:36:11 stupid village turned off the power 2011-11-06T01:36:22 praveen_: although i would advise to put half your time for strategy (exploration tuning) and half for tactic (combat awarness) 2011-11-06T01:36:31 *** u_ has quit IRC (Quit: u_) 2011-11-06T01:36:36 and it happened before, i thought its my pc's fault 2011-11-06T01:36:44 praveen_: i simply just don't like tactic myself :p 2011-11-06T01:36:52 gota go 2011-11-06T01:36:55 *** ecarpenter84 has quit IRC (Quit: Page closed) 2011-11-06T01:37:04 stocha: yes exploration is must. But rather combat tuning if we concentrate on exploration + food more, we dont need to combat. More ants can take care itself right 2011-11-06T01:37:37 stocha: just send more ants to raze a hill 2011-11-06T01:37:39 mcstar: how strong is ecarpenter bot ? 2011-11-06T01:37:53 he didt say which is his 2011-11-06T01:38:08 ok, same nick :D 2011-11-06T01:38:15 -0.00 2011-11-06T01:38:21 praveen_: it does if you don't plan to be in the top bots. but if you do, you'd better start working on battle resolution. 2011-11-06T01:38:39 hah, python, and version 12 2011-11-06T01:38:45 and he said he just joined? 2011-11-06T01:39:10 mcstar: i don't know. but you can be version 30 if you had hard time compiling. 2011-11-06T01:39:17 with only one submission. 2011-11-06T01:39:28 not the case 2011-11-06T01:39:48 he never reached skill 40 2011-11-06T01:40:10 but probably he soon will :D 2011-11-06T01:40:17 praveen_: i know for sure that those interested in strategy will eventually always have something to do first before the get into tactic. until it's too late :p 2011-11-06T01:41:06 praveen_: combat aware bots just tend to wipe combat unaware bots with no losses. 2011-11-06T01:41:41 the bots on the tcp server are a lot better than those on the official server 2011-11-06T01:42:25 oh man, i just let my entire army get wiped out by two ants again: http://ants.fluxid.pl/replay.22619 2011-11-06T01:42:43 fasteddie_: yes, by far. it's kinda frustrating how good they are 2011-11-06T01:42:45 stocha: am watching many replays to see what the combat aware bots do. As you said, they use simple formation and attack. atleast this level is required 2011-11-06T01:42:55 Must make ants less stupid 2011-11-06T01:43:31 write down this a 100 times 2011-11-06T01:43:42 My ants like to walk in a single file into death 2011-11-06T01:43:45 stocha: here we have a1k0n got wiped out. That answers a lot 2011-11-06T01:44:05 a1k0n: no combat resolution ? 2011-11-06T01:44:09 some kind of bug where i let ants in the back push ahead of the "line" 2011-11-06T01:44:13 oh i have combat resolution now 2011-11-06T01:44:28 i don't think the ant at the front of the line wanted to be there 2011-11-06T01:44:39 lol 2011-11-06T01:45:02 :) 2011-11-06T01:45:06 and tcp server yes, I hardly get any real feedback on whether my bot improved or not .. it always get creamed. :/ 2011-11-06T01:45:16 but yeah i did some pretty good hunting until turn 1044 or so 2011-11-06T01:45:59 blue had a nice defense 2011-11-06T01:46:16 a1k0n: do you use trees for combat ? 2011-11-06T01:46:26 i think orange could have taken them down though 2011-11-06T01:46:30 stocha: nope 2011-11-06T01:46:38 just one-move lookahead 2011-11-06T01:46:43 a1k0n: orange was suiciding in front of blue 2011-11-06T01:47:08 hmm blue has 6 in the hive too 2011-11-06T01:48:18 *** ccc has quit IRC (Read error: Connection timed out) 2011-11-06T01:49:18 orange did not avoid collisions when it was near blue hill. no idea why 2011-11-06T01:49:20 analyst74: what's your best ranking on tcp ? 2011-11-06T01:49:22 *** DigitalNinja has joined #aichallenge 2011-11-06T01:49:38 very low ;p 2011-11-06T01:49:42 i like how orange efficiently guides his ants out from the hill 2011-11-06T01:49:48 praveen_: probably because it gets beserk once close to hills. 2011-11-06T01:50:38 analyst74: maybe if more weak bots play there, more will try to put weak bot in there. Although most probably weak bots won't stay weak long. 2011-11-06T01:51:27 i've put my weak bot in for 50 games now ;) 2011-11-06T01:53:53 I just finished my base-line implementation, so I'll be on tcp a lot more too, to test different configurations 2011-11-06T01:55:58 *** pek has quit IRC () 2011-11-06T01:56:53 aichallenge is beginning to make me depressed ==" 2011-11-06T01:57:26 why? 2011-11-06T01:57:34 because i don't seem to be getting anywhere 2011-11-06T01:57:44 i've tried so many different things 2011-11-06T01:58:02 sometimes you need to step back and take a break 2011-11-06T01:58:05 it just makes me feel dumb 2011-11-06T01:58:29 I took a few days off, just to goof around, when I got stuck with combat logic 2011-11-06T01:59:02 im not there yet, to "take a break" 2011-11-06T01:59:18 go out, have some fresh air, do some picnic or something 2011-11-06T02:00:25 aichallenge IS my break ==" i haven't been going to work for nearly a month... 2011-11-06T02:01:22 no way, this is way more challenging and exhausting than work 2011-11-06T02:01:40 i was so sick of work that i've been putting off work ==" 2011-11-06T02:02:13 Is ==" some sort of ninjaturtle emoticon? 2011-11-06T02:02:26 (==)" 2011-11-06T02:02:40 pretty much. 2011-11-06T02:02:56 lol, ninja turtles.. good old times 2011-11-06T02:03:22 i dont see it 2011-11-06T02:03:49 ?\_(?)_/? 2011-11-06T02:04:17 looks like the very top of a transformer 2011-11-06T02:04:59 im really bad at deciphering pictograms 2011-11-06T02:05:17 its a guy with his hands in the air, shrugging 2011-11-06T02:06:32 oh 2011-11-06T02:06:44 so what is ==" 2011-11-06T02:07:12 bobby, what's your name on tcp server? 2011-11-06T02:07:42 breakfastsearch 2011-11-06T02:07:55 only had a few rounds i don't run it often because it doesn't work 2011-11-06T02:08:03 nice name. lol 2011-11-06T02:08:22 hehe yeh i might use that as my new online psuedonym 2011-11-06T02:09:52 did you read that collaborative diffusion thing on forum? 2011-11-06T02:10:18 no i read someone post it though 2011-11-06T02:10:20 Now when my ants get next to each other they stop and hug. 2011-11-06T02:10:22 that's what i've been trying to do 2011-11-06T02:10:28 For the rest of the game 2011-11-06T02:10:29 but with a simplified coefficient 2011-11-06T02:10:46 (just +-1 between tiles) 2011-11-06T02:11:04 but then my ants just swarm about trying to get to the closest goal 2011-11-06T02:11:15 Yeah 2011-11-06T02:11:32 once you got the base framework right, you can start tweaking variables, prioritizations 2011-11-06T02:11:48 they try to get to, say, the nearest unexplored area 2011-11-06T02:11:52 sometimes little changes in prioritization would make major difference 2011-11-06T02:12:27 then the costs rebalance out, and now they turn about and try to get to another unexplored tile 2011-11-06T02:13:04 that sounds about right 2011-11-06T02:13:10 bobbydroptable: hi. 2011-11-06T02:13:23 its stupid. it should just spread out evenly 2011-11-06T02:13:29 or at least, that's how i imagined it 2011-11-06T02:13:55 bobbydroptable: where are you from ? 2011-11-06T02:13:59 *** Buttons840 has quit IRC (Quit: leaving) 2011-11-06T02:14:08 ants don't go quite as you imagined? 2011-11-06T02:14:40 is your pseudo from this drop table name joke. "Hello, did you named your child bobby drop table .... ?" 2011-11-06T02:14:44 at the moment i just do 1 diffusion with all the unexplored tiles. 2011-11-06T02:14:46 stocha: yes 2011-11-06T02:14:49 xkcd 2011-11-06T02:14:50 xkcd 2011-11-06T02:15:06 that thing is way too popular :p 2011-11-06T02:15:58 bobbydroptable: one month break is not a break. It's a goal. You need break, when you try to attend a goal. Especially when there is so much randomness to it. 2011-11-06T02:16:05 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-11-06T02:16:08 try this: https://gist.github.com/1342588 2011-11-06T02:16:21 exaustion has to be managed wisely in order to be the most efficient 2011-11-06T02:16:33 I use this snippet to visualize my map 2011-11-06T02:16:40 i already have a visaulizer 2011-11-06T02:16:51 i render the map as a html table lol 2011-11-06T02:17:06 :o 2011-11-06T02:17:06 that works too. :) 2011-11-06T02:17:25 tracking bugs is 95% of any programming job. Unless you happen to be quite lucky. 2011-11-06T02:17:26 so what happens after i explore the map 2011-11-06T02:17:45 I hunt bugs blindfolded with a shotgun 2011-11-06T02:18:12 pairofdice: how is your roof doing ? 2011-11-06T02:18:14 is that the diffusion center starts to shift 2011-11-06T02:18:23 then my ants start getting all confused 2011-11-06T02:18:31 and do the death shuffle 2011-11-06T02:19:07 stocha: at the moment 90% of my job involves writing reports, fixing bugs in access databases, or changing html templates. 2011-11-06T02:19:52 bobbydroptable: gestion programmig is quite different that game/ai programming though. 2011-11-06T02:20:14 i know it is... i don't know shit about ai 2011-11-06T02:20:17 actually, i cant get out of my head your name bobbydroptable 2011-11-06T02:20:20 even you still end up doign 95% of your time hunting bugs. It's just a different kind of hunting. 2011-11-06T02:20:24 it sounds too much like skip-lists 2011-11-06T02:20:31 and i want to read up on them 2011-11-06T02:21:19 bobbydroptable: it's interesting. But different. You can't be a gestion programming specialist in only one month. 2011-11-06T02:22:07 Okay, my dispersion isn't working at all... 2011-11-06T02:22:22 Which is a bit curious... 2011-11-06T02:22:42 pairofdice: my secret is to use the previous positions of the ants as influence for this turn's diffusion 2011-11-06T02:22:46 pairofdice: what do you use for dispertion ? 2011-11-06T02:23:16 mcstar: what do you mean ? 2011-11-06T02:23:27 I use basically the same BFS as I use for food 2011-11-06T02:23:34 Just different values 2011-11-06T02:23:37 you penalise the score of the previous location of the ant 2011-11-06T02:23:41 stocha: there are things i cant formulate in a simpler way 2011-11-06T02:23:55 which reduces the chance of it being chosen as the best destination for the ant for that turn 2011-11-06T02:24:22 maybe that will work ... i will chuck it in, see what it does 2011-11-06T02:24:35 are your destination score just around the ant, or can they be far away from it ? 2011-11-06T02:24:58 Fir dispersion I limit it to a distance of 10 squares 2011-11-06T02:25:06 at the moment anyway 2011-11-06T02:25:10 for me, its only direct neighbours 2011-11-06T02:25:39 *** Ionic_Groove has joined #aichallenge 2011-11-06T02:25:41 i used direct neighboors too 2011-11-06T02:25:52 i the one bot that used heat maps. 2011-11-06T02:27:03 got to go, see you. Thx for chatting. 2011-11-06T02:27:08 *** stocha has quit IRC (Quit: Page closed) 2011-11-06T02:28:25 *** delt0r_ has joined #aichallenge 2011-11-06T02:28:29 *** yoden has quit IRC (Ping timeout: 252 seconds) 2011-11-06T02:31:59 *** Palmik has joined #aichallenge 2011-11-06T02:39:21 mmm wonder if i can use the location of my ants to affect the diffusion 2011-11-06T02:39:49 to minimise the swarming 2011-11-06T02:46:43 would be useful in faster expansion, although you will lose the side-benefit of formation combat 2011-11-06T02:46:56 *** cyphase has quit IRC (Ping timeout: 258 seconds) 2011-11-06T02:47:13 yeh 2011-11-06T02:47:37 perhaps if i could find a way to combine task oriented ants with diffusion 2011-11-06T02:48:09 i basically just need a way to allocate goals to different ants so that ants that are supposed to swarm will swarm, and those that aren't won't. 2011-11-06T02:48:38 *** jimb0 has quit IRC (Ping timeout: 260 seconds) 2011-11-06T02:48:51 maybe in my diffusion i will have both the depth of diffusion and the originating tile... 2011-11-06T02:49:14 so that between them, ants can go "oh someone else is heading there, i'll find something else to do" 2011-11-06T02:50:40 the other way, which i would prefer, but no idea how to do, would be to dynamically generate network graph as I expand out from my hills 2011-11-06T02:50:51 *** Apfel has quit IRC (Quit: Page closed) 2011-11-06T02:52:43 man, worker node is hard to install! 2011-11-06T02:53:04 it is 2011-11-06T02:53:11 that was my plan of attack 2 weeks ago 2011-11-06T02:53:19 worked conceptually 2011-11-06T02:53:32 but when it came to implementation i just hit brick walls 2011-11-06T02:54:15 my best ideas come after a good night of sleep 2011-11-06T02:54:26 mmm don't even get me started on sleep 2011-11-06T02:54:29 *** praveen_ has quit IRC (Ping timeout: 265 seconds) 2011-11-06T02:54:40 i sleep at 1 and wake up at 11:30 2011-11-06T02:54:43 don't know why 2011-11-06T02:55:06 i feel like i'm getting too much sleep 2011-11-06T02:55:10 but i still feel like shit most of the day 2011-11-06T02:55:42 over sleep causes depression 2011-11-06T02:55:43 and i try to stay away from caffeine 2011-11-06T02:56:03 you don't say (==") 2011-11-06T02:57:00 *** mleise has joined #aichallenge 2011-11-06T02:57:04 *** ztfw has joined #aichallenge 2011-11-06T02:57:15 ah my food diffusion was affecting my exploration... 2011-11-06T02:58:42 *** cyphase has joined #aichallenge 2011-11-06T02:58:44 oh yeh, oversleep and vitamin D deficiency 2011-11-06T03:01:52 *** goffrie has quit IRC (Ping timeout: 255 seconds) 2011-11-06T03:06:17 *** JorgeB has quit IRC (Quit: Computer has gone to sleep.) 2011-11-06T03:07:41 *** mleise has quit IRC (Ping timeout: 240 seconds) 2011-11-06T03:07:41 *** zorun has quit IRC (Read error: Connection reset by peer) 2011-11-06T03:08:17 *** zorun has joined #aichallenge 2011-11-06T03:10:10 i was in a "sleep ambulance" this week wednesday - thursday 2011-11-06T03:10:35 does that mean you were coding while asleep? 2011-11-06T03:10:48 i barly could sleep 2011-11-06T03:10:54 i had instruments on my chest 2011-11-06T03:11:00 and the bed was too small 2011-11-06T03:11:51 hmm that doesnt sound very well 2011-11-06T03:12:03 btw, my bot uses diffusion for exploration, take a look, i think it does it pretty well 2011-11-06T03:12:21 (dont evaluate its battle capabilities pls) 2011-11-06T03:12:33 evaluate->consider 2011-11-06T03:13:03 *** Sidesplitter has joined #aichallenge 2011-11-06T03:13:07 Hello 2011-11-06T03:13:26 link to your bot please 2011-11-06T03:13:28 ? 2011-11-06T03:13:35 is it on fluxid? 2011-11-06T03:13:43 It's fails a little bit atm :P 2011-11-06T03:14:00 i finally found out the cause of my timeouts was trying to find a path to an unreachable goal 2011-11-06T03:14:11 But, if I try the test program, how can I see wich bot is mine? 2011-11-06T03:14:41 mcstar your ants move almost exactly as mine 2011-11-06T03:15:22 *** DigitalNinja has quit IRC (Read error: Connection reset by peer) 2011-11-06T03:15:30 *** DigitalNinja has joined #aichallenge 2011-11-06T03:16:12 *** TheDigitalNinja_ has joined #aichallenge 2011-11-06T03:16:16 you can tell it favours several directions over others (namely, north and east). 2011-11-06T03:16:38 *** TheDigitalNinja_ has quit IRC (Read error: Connection reset by peer) 2011-11-06T03:16:49 *** TheDigitalNinja_ has joined #aichallenge 2011-11-06T03:17:14 bobbydroptable: agentsmith on the main server 2011-11-06T03:17:28 *** The_Digital_Ninj has joined #aichallenge 2011-11-06T03:17:31 *** TheDigitalNinja_ has quit IRC (Read error: Connection reset by peer) 2011-11-06T03:17:34 that is usually not bad, those are the fast directions anyway 2011-11-06T03:17:45 but behaves nicely around water 2011-11-06T03:17:51 and spreads well 2011-11-06T03:19:01 oh, i mean the 4 main directions, i.e. it likes to travel staright, not very jaggedly 2011-11-06T03:19:19 but i didnt notice it would prefer north over south or east over west 2011-11-06T03:20:40 i'm trying to get an even spread of exploration 2011-11-06T03:23:02 Sometimes when my ants are in a long corridor they start to oscillate perpendicular to where they should be going.... 2011-11-06T03:23:19 Well, when there's more than one ant in a line 2011-11-06T03:23:19 are you using diffusion as well? 2011-11-06T03:23:34 that's usually a sign that you have a tie in your scores 2011-11-06T03:23:35 I am trying to 2011-11-06T03:24:01 what is the period of the oscillation? 2011-11-06T03:26:13 Every turn 2011-11-06T03:26:58 ok, thats an error, i thought they might oscillate in the whole length of the corridor 2011-11-06T03:27:11 i call it the death shuffle 2011-11-06T03:27:13 lol 2011-11-06T03:27:33 actually it never happened to me 2011-11-06T03:27:42 until i "fixed" my algorithm 2011-11-06T03:27:52 then i realized that the wrong one is better 2011-11-06T03:27:53 Well it only happens in traffic jams 2011-11-06T03:28:16 Atleast I got them out of getting stuck in a line when there's lots of place left to use 2011-11-06T03:28:29 -_- 2011-11-06T03:28:43 *** kilae has joined #aichallenge 2011-11-06T03:28:57 ah, because the ants are blocking. 2011-11-06T03:29:02 *** retybok_ has joined #aichallenge 2011-11-06T03:29:07 yeh that is annoying i haven't figured out how to solve that one yet 2011-11-06T03:29:17 still trying to get the most kickarse exploration bot yet 2011-11-06T03:33:40 well i just thought of a new idea .. 2011-11-06T03:33:48 sighhhh 2011-11-06T03:33:55 gotta recode everything again 2011-11-06T03:33:58 sick of writing BFSs 2011-11-06T03:34:03 in all varieties 2011-11-06T03:36:58 this is the new idea? 2011-11-06T03:37:41 yeh 2011-11-06T03:38:24 hopefully this idea , if not too cost intensive, will solve the problem of graphs, exploration, and combat 2011-11-06T03:38:26 all in one shot 2011-11-06T03:38:30 *** amstan_ has quit IRC (Ping timeout: 260 seconds) 2011-11-06T03:40:37 *** AndrewBC has quit IRC (Ping timeout: 244 seconds) 2011-11-06T03:41:42 at least, i'm confident this shouldn't be a wasted effort. 2011-11-06T03:42:04 sounds like a good idea 2011-11-06T03:42:16 always sounds like a good idea, 2011-11-06T03:42:17 .. 2011-11-06T03:42:18 .. 2011-11-06T03:42:19 . 2011-11-06T03:42:22 ah ffs 2011-11-06T03:42:25 stupid cat 2011-11-06T03:44:27 huh very rarely does code work on the first go. winrar for me... 2011-11-06T03:48:25 *** retybok_ has quit IRC (Ping timeout: 260 seconds) 2011-11-06T03:49:58 *** Fandekasp has quit IRC (Read error: Operation timed out) 2011-11-06T03:50:28 i thought coding for fun would be different than coding professionally but you still get to spend most of your time fixing bugs 2011-11-06T03:50:49 or maybe i'm just a crappy coder ;) 2011-11-06T03:51:10 well ... i wanted to learn something new 2011-11-06T03:51:22 sick of being a programming resource. 2011-11-06T03:51:39 *** Fandekasp has joined #aichallenge 2011-11-06T03:51:48 there are not much "bugs" for me in ants 2011-11-06T03:51:51 i get a little chill down my spine when i hear someone refer to himself as "resources manager" 2011-11-06T03:51:58 i just find it hard to implement new ideas 2011-11-06T03:52:02 or especially "human resources manager" 2011-11-06T03:52:11 mcstar: me too... 2011-11-06T03:53:56 hey analyst74 how do we use your visualizer? 2011-11-06T04:10:41 hey, sorry had irc minimized 2011-11-06T04:11:29 tis k 2011-11-06T04:11:41 I use influence map 2011-11-06T04:11:52 your visualiser lets you visualise map for every turn, yes? 2011-11-06T04:11:59 cuz mine only does it for 1 turn which i have to choose lol 2011-11-06T04:12:09 so I maintain a map with values, and I use pickle to serialize them every turn 2011-11-06T04:12:16 what's pickle? 2011-11-06T04:12:26 it's a python module, serialize objects 2011-11-06T04:12:28 Python data format 2011-11-06T04:12:31 oh. 2011-11-06T04:12:54 as simple as pickle.dump(, file_handle) 2011-11-06T04:13:16 so I end up with hundreds of pickle files, containing serialized influence map for that turn 2011-11-06T04:13:25 *** tmandry has quit IRC (Ping timeout: 255 seconds) 2011-11-06T04:14:34 I run that visualizer script, pass it a turn number, it brings up a image for that turn 2011-11-06T04:14:43 this post explains way better than I do: http://stackoverflow.com/questions/7229971/2d-grid-data-visualization-in-python 2011-11-06T04:15:02 thanks 2011-11-06T04:15:04 ahhh, awesome 2011-11-06T04:15:20 np 2011-11-06T04:15:26 i thought it read replay files 2011-11-06T04:15:38 and generated the visuals for the whole game 2011-11-06T04:15:39 nope, unfortunately 2011-11-06T04:15:53 i'll stick with mine for now then, since it sort of works... 2011-11-06T04:16:00 i just don't generate it for every turn that's all 2011-11-06T04:20:13 actually I think that'll be a useful feature 2011-11-06T04:20:28 I might look into how to make it do replays 2011-11-06T04:20:44 yeh 2011-11-06T04:22:47 mmmm my idea isn't working out as well as i'd hope 2011-11-06T04:24:04 analyst74: pylab's imsave? 2011-11-06T04:25:15 good call 2011-11-06T04:26:28 *** dvladim has quit IRC (Ping timeout: 255 seconds) 2011-11-06T04:27:26 hmm, shitty documentation http://www.scipy.org/PyLab 2011-11-06T04:28:03 from pylab.misc import imsave 2011-11-06T04:28:14 imsave('file.png',2darray) 2011-11-06T04:28:17 i think thats all 2011-11-06T04:28:20 nice 2011-11-06T04:28:23 but its from memory 2011-11-06T04:28:51 ya, you probably still need to manually serialize your map, then reload it afterward 2011-11-06T04:28:58 you might want to customize colormaps and such 2011-11-06T04:29:17 analyst74: what do you mean? 2011-11-06T04:29:54 oh, you are saying saving the file directly from bot code 2011-11-06T04:29:59 yes 2011-11-06T04:30:03 good idea 2011-11-06T04:30:26 you are using numpy array for you map anyway, dont you? 2011-11-06T04:30:30 r* 2011-11-06T04:30:36 now we are talking about some robust visualization 2011-11-06T04:30:46 nope -_- 2011-11-06T04:30:55 you should 2011-11-06T04:31:07 I don't think numpy runs on the server 2011-11-06T04:31:21 and there would be no conversion from nested lists to numpy array whenyou call imsave 2011-11-06T04:31:31 I haven't tested, but I heard it's slower than python 2d array for item access 2011-11-06T04:31:33 pairofdice: it probably does 2011-11-06T04:31:45 and its 1 command to install it 2011-11-06T04:31:49 *** alt^255 has joined #aichallenge 2011-11-06T04:31:51 so you can asfely use it 2011-11-06T04:32:10 just ask organizers if it happens to be not installed 2011-11-06T04:32:22 I think both numpy and scipy are available 2011-11-06T04:32:29 I'm not at all familiar with these python extra packages 2011-11-06T04:32:40 its is very standard 2011-11-06T04:32:46 -s- 2011-11-06T04:33:53 hm 2011-11-06T04:33:54 *** cyphase has quit IRC (Ping timeout: 256 seconds) 2011-11-06T04:33:55 for the few parts I needed performance (lot of get/set operations on map values), I find dict to be fastest 2011-11-06T04:33:57 i broke my bot 2011-11-06T04:34:08 mine's never worked ^_^ 2011-11-06T04:34:24 analyst74: theres nothing faster than a vector 2011-11-06T04:34:32 because you index it by location 2011-11-06T04:34:39 that is constant time 2011-11-06T04:35:00 a dict is a hashtable, you index it by key 2011-11-06T04:35:06 that is nlogn i think 2011-11-06T04:35:24 that's O(1), if the implementation is good 2011-11-06T04:35:55 but I might do some testing with vector 2011-11-06T04:36:18 ah k, my bad 2011-11-06T04:36:28 O(1) to O(n) 2011-11-06T04:36:37 but a vector is still faster 2011-11-06T04:36:48 of course only when you index by key 2011-11-06T04:36:52 i.e. you dont have to search 2011-11-06T04:36:56 *** alt^255 has left #aichallenge 2011-11-06T04:37:03 *** alt^255 has joined #aichallenge 2011-11-06T04:40:22 also assuming there are no clashes in hash 2011-11-06T04:41:21 k, found the error 2011-11-06T04:41:38 i rewrote something as a c++ lambda, and i forgot to invert a boolean expression 2011-11-06T04:41:53 i was wondering why my bot walks by food 2011-11-06T04:42:24 *** Jak_o_Shadows has joined #aichallenge 2011-11-06T04:45:17 *** AndrewBC has joined #aichallenge 2011-11-06T04:45:29 *** cyphase has joined #aichallenge 2011-11-06T04:45:56 *** Sidesplitter has quit IRC (Quit: Page closed) 2011-11-06T04:46:58 too bad that qtcreator doesnt recognize the [](){} lambda syntax 2011-11-06T04:47:13 its a nice ide otherwise 2011-11-06T04:48:22 *** HaraKiri has joined #aichallenge 2011-11-06T04:48:27 *** fasteddie_ has quit IRC (Quit: Page closed) 2011-11-06T04:52:15 gotta sleep, later guys 2011-11-06T04:55:32 *** akosch has quit IRC (Quit: Leaving) 2011-11-06T05:08:30 *** epicmonkey has joined #aichallenge 2011-11-06T05:11:47 *** marijnfs has joined #aichallenge 2011-11-06T05:14:19 *frownies* 2011-11-06T05:15:02 *** the-mgt has quit IRC (Quit: the-mgt) 2011-11-06T05:16:49 Okay.. back to square 0 2011-11-06T05:18:11 join the club 2011-11-06T05:19:44 *** ztfw` has joined #aichallenge 2011-11-06T05:20:05 my ants eat hills now 2011-11-06T05:20:57 *** ztfw has quit IRC (Ping timeout: 252 seconds) 2011-11-06T05:26:15 lol 2011-11-06T05:26:26 this means very fast victories 2011-11-06T05:26:38 i should have done this sooner :D 2011-11-06T05:27:23 rofl 2011-11-06T05:31:05 *** Saulzar has joined #aichallenge 2011-11-06T05:32:58 *** Garf has quit IRC (Read error: Connection reset by peer) 2011-11-06T05:36:06 *** RasmusL has joined #aichallenge 2011-11-06T05:36:26 *** Redgis has joined #aichallenge 2011-11-06T05:36:54 unfortunately the server compiler doesnt support for ranges 2011-11-06T05:37:08 hi :) can someone maybe help me with some python? 2011-11-06T05:37:20 yes 2011-11-06T05:37:21 *** Fandekasp has quit IRC (Quit: Changing server) 2011-11-06T05:37:44 i've implemented A* and it works, but at some point it just gets stuck and timeouts :/ 2011-11-06T05:37:53 and it's not because it's slow, it's stuck somehow 2011-11-06T05:38:24 it happends 2011-11-06T05:38:27 -d 2011-11-06T05:38:41 i don't think it should though 2011-11-06T05:38:56 it happens in really simple situations, like at turn 4 or something 2011-11-06T05:39:26 what i meant is that people write bad code 2011-11-06T05:39:34 lol 2011-11-06T05:39:34 it happens 2011-11-06T05:39:37 yeah i probably do :) 2011-11-06T05:39:57 there are many pythoners here, they will help you 2011-11-06T05:40:43 RasmusL: anyway, try displaying/outputting intermediate state/results 2011-11-06T05:40:52 to see what really happens, thats the first step 2011-11-06T05:41:15 probably you dont understand the algorithm fully(not a*, your implementation) 2011-11-06T05:41:43 is it ok to create a log file? 2011-11-06T05:41:55 yes, but you shouldnt 2011-11-06T05:42:10 use stderr, the engine can make a file of it if you want 2011-11-06T05:44:52 you can , just make sure you have a debug flag set so that it doesn't do it on the server 2011-11-06T05:45:01 i use file logging for visualizing my maps 2011-11-06T05:45:23 i see 2011-11-06T05:45:42 because you're not allowed to do it on the server 2011-11-06T05:45:48 actually, it doesnt matter 2011-11-06T05:46:04 once i left a code in my upload that wrote images every turn 2011-11-06T05:46:09 i noticed no problems 2011-11-06T05:46:21 might get disqualified in the end though? 2011-11-06T05:46:28 i dont think so 2011-11-06T05:46:37 your write will simply fail 2011-11-06T05:46:42 rasmus: how do you keep the priority list? 2011-11-06T05:46:44 i guess 2011-11-06T05:46:50 but it can depend per language what happens than 2011-11-06T05:46:51 do you sort every time? 2011-11-06T05:46:56 if it's just a permissions thing, and you've got exception handling 2011-11-06T05:46:59 because that can be slow 2011-11-06T05:47:06 i don't sort at all currently 2011-11-06T05:47:11 just a heap 2011-11-06T05:47:11 use a heap or something 2011-11-06T05:47:14 ya 2011-11-06T05:47:26 im using heapq 2011-11-06T05:47:26 and sort it the right way;) 2011-11-06T05:47:49 i think his alg. is simply not working, right RasmusL 2011-11-06T05:47:51 ? 2011-11-06T05:48:07 where does stderr go when i run the bot locally? 2011-11-06T05:48:15 to stderr 2011-11-06T05:48:19 lol 2011-11-06T05:48:21 what do you mean? 2011-11-06T05:48:26 i mean how do i see it 2011-11-06T05:48:31 you just do 2011-11-06T05:48:36 :D 2011-11-06T05:48:48 goes where stdout goes 2011-11-06T05:48:49 anyways yeah i think my alg is somehow wrong 2011-11-06T05:48:52 gotta figure out how 2011-11-06T05:49:41 there cant be so many things 2011-11-06T05:49:46 either you sort wrong 2011-11-06T05:49:59 or dont have the right ending logic 2011-11-06T05:50:41 or wrong expanding logic 2011-11-06T05:50:45 *** ztfw` is now known as ztfw 2011-11-06T05:50:51 So that's only all of it 2011-11-06T05:50:56 *** smiley1983 has quit IRC (Ping timeout: 276 seconds) 2011-11-06T05:51:11 ^^ 2011-11-06T05:51:22 It might get stuck by other ants in close quarters 2011-11-06T05:51:31 if ants block the propagation 2011-11-06T05:51:44 yeah how do you handle unreachable situations? 2011-11-06T05:52:01 you should keep a closed list or map of booleans or something 2011-11-06T05:52:18 lol 2011-11-06T05:52:24 i mean why complicate matters? 2011-11-06T05:52:31 *** smiley1983 has joined #aichallenge 2011-11-06T05:53:05 i don't involve other ants in the pathfinding 2011-11-06T05:53:08 *** Regis has joined #aichallenge 2011-11-06T05:53:08 at least for now :P 2011-11-06T05:54:16 well if you dont check for that you'll keep expanding nodes forever 2011-11-06T05:54:45 Ah, stderr goes into the replay 2011-11-06T05:54:56 Err, not 2011-11-06T05:55:21 that might be the problem.. hmm 2011-11-06T05:56:03 just create an array (or map) of bools 2011-11-06T05:56:11 if you visit a node you set it to true 2011-11-06T05:56:13 *** Redgis has quit IRC (Ping timeout: 240 seconds) 2011-11-06T05:56:28 hmm my bot's working better than i had expected it to 2011-11-06T05:56:33 if it is alraedy true for your current node, you dont expand it 2011-11-06T05:56:33 not by much... 2011-11-06T05:58:18 *** dvladim has joined #aichallenge 2011-11-06T05:58:24 stupid thing 2011-11-06T05:58:36 i had a bunc of ants and i timed out on the tcp server 2011-11-06T05:58:45 soo annoying 2011-11-06T05:58:55 my is very fast yet it times out over tcp 2011-11-06T05:58:59 bot* 2011-11-06T05:59:19 because of internet? 2011-11-06T05:59:31 maybe 2011-11-06T05:59:52 this is basically the algorithm, i can't see anything wrong with it 2011-11-06T05:59:53 http://pastebin.com/ENnDwZKt 2011-11-06T06:01:50 how does a 'node' hash 2011-11-06T06:02:09 the visited map should only take the position as a key 2011-11-06T06:02:23 the full node will always change because of the other values right? 2011-11-06T06:02:55 and i dont know what ANode does 2011-11-06T06:02:56 what is in there 2011-11-06T06:03:00 you are shooting yourself in the leg with that design 2011-11-06T06:03:02 hmm? i think i didn't understand a few terms there :) 2011-11-06T06:03:16 *** g0llum has joined #aichallenge 2011-11-06T06:03:19 ANode needs to implement __hash__(self): 2011-11-06T06:03:27 or just use the location of ANode for the key in the dict 2011-11-06T06:03:40 oh 2011-11-06T06:03:53 now i understand 2011-11-06T06:04:13 node.cell is the position tuple, is that ok? 2011-11-06T06:04:30 to use in the dict 2011-11-06T06:04:41 yup 2011-11-06T06:04:43 *** knott has joined #aichallenge 2011-11-06T06:04:57 tuples hash nicely (assuming it's contents hash nicely), i believe? 2011-11-06T06:05:59 RasmusL: you should pull out the code that checks for the destination 2011-11-06T06:06:26 i should? 2011-11-06T06:06:37 well it does assume that it is reachable.. 2011-11-06T06:06:43 yeah it hashes but if it also contains the distance traveled or whatever it doesnt really work 2011-11-06T06:06:52 it doesn't 2011-11-06T06:07:00 node.cell is only row and column in a tuple 2011-11-06T06:07:06 so i'll use that 2011-11-06T06:07:09 yeah 2011-11-06T06:07:12 *** foRei has joined #aichallenge 2011-11-06T06:07:17 *** exezive has joined #aichallenge 2011-11-06T06:07:46 *** olexs has joined #aichallenge 2011-11-06T06:08:41 i think im wrong 2011-11-06T06:08:48 the end cant be in visite 2011-11-06T06:08:50 d 2011-11-06T06:09:04 i think not 2011-11-06T06:10:26 http://aichallenge.org/visualizer.php?game=64676&user=757 lol, ilyakor's defence at the end! 2011-11-06T06:10:57 aham 2011-11-06T06:11:11 RasmusL: you should only add a child if it isnt visited yet 2011-11-06T06:11:36 almost finished :\ 2011-11-06T06:11:39 ahh 2011-11-06T06:11:41 no you can check it when popping 2011-11-06T06:11:44 yeah i gotta add that 2011-11-06T06:11:47 like you do now 2011-11-06T06:11:55 well i guess.. but wouldnt it be better to not push it? 2011-11-06T06:12:35 meh it wont make any measurable difference 2011-11-06T06:12:48 kay 2011-11-06T06:13:01 i think 2011-11-06T06:13:21 marijnfs: i think you dont get it 2011-11-06T06:13:29 lol proof that a solid defense is still crap when you get surrounded 2011-11-06T06:13:42 theres a possibility that you add a child to the queue that is already visited 2011-11-06T06:13:43 still, quite a nice shape 2011-11-06T06:13:55 it can throw off the algorithm 2011-11-06T06:14:05 how 2011-11-06T06:14:18 mcstar: its a minor niggle, but he does check if it is in the visited set 2011-11-06T06:14:19 because you dont check for it 2011-11-06T06:14:19 it just will be popped and discarded 2011-11-06T06:14:52 though it does cause more work for the sorting 2011-11-06T06:14:59 since it has to sort redundant stuff 2011-11-06T06:15:19 *** Mak__ has joined #aichallenge 2011-11-06T06:15:28 ew now im getting list index error because of the way i obtain n/s/w/e :/ 2011-11-06T06:16:03 guess i'll just do the checks and see how slow it is 2011-11-06T06:17:59 ok, right 2011-11-06T06:18:36 god this is ugly 2011-11-06T06:18:41 i bet it's really bad too ^^ 2011-11-06T06:19:36 hey guys, im noobie, and i wanna to quick start . Is there are integration solutions with eclipse? 2011-11-06T06:20:09 (PL is java) 2011-11-06T06:20:45 i'd help but i don't do java 2011-11-06T06:21:29 ok 2011-11-06T06:22:20 marijnfs: i got confused, i do it without a visited set and it breaks my algorithm if i were to include a non-pristine child 2011-11-06T06:22:23 i dont have for now any linux environment and thus cool things as Make too 2011-11-06T06:22:50 knott: just create new project with eclipse and import the files in. 2011-11-06T06:22:59 There are present any auto build env for win ? 2011-11-06T06:23:17 what is non-pristine? 2011-11-06T06:23:20 nope only source files for starter packs 2011-11-06T06:23:32 unreachable? 2011-11-06T06:23:35 you have to figure out how to build the sources yourself for the most part 2011-11-06T06:23:37 yep i did it 2011-11-06T06:24:10 i want to easily run bot to see results 2011-11-06T06:24:55 for example: i push "Run" button and visualization program runs and shows me the results 2011-11-06T06:25:28 *** Murashka has joined #aichallenge 2011-11-06T06:25:36 marijnfs: i meant by pristine a tile, that i havent consider in any way 2011-11-06T06:25:53 it is a tile, that has no g-value 2011-11-06T06:26:38 knott you can't 2011-11-06T06:26:45 because the main engine is in Python 2011-11-06T06:26:46 not in java 2011-11-06T06:26:51 you have to install python first 2011-11-06T06:26:53 ouch 2011-11-06T06:26:57 and run the engine, and point it to your java bot 2011-11-06T06:27:15 i thought it written with java or so on 2011-11-06T06:27:24 ye i have python already 2011-11-06T06:27:48 *** pedrosorio has joined #aichallenge 2011-11-06T06:28:24 knott: why dont you follow the instructions on the site? 2011-11-06T06:28:50 mcstar: i dont understand, so the g should be 0 only for the starting square right? 2011-11-06T06:28:56 any step should add some cost 2011-11-06T06:29:07 and increase g in the next step 2011-11-06T06:29:11 marijnfs: actually, all my g's are -1 at the start 2011-11-06T06:29:14 that's technically true 2011-11-06T06:29:26 but since cost is constant they can be safely disregarded 2011-11-06T06:29:28 thats how i know if i considered that tile or not 2011-11-06T06:29:37 (every step is 1) 2011-11-06T06:29:44 you have to add cost otherwise the sorting will not work 2011-11-06T06:29:54 there is no sorting 2011-11-06T06:30:06 that's what the heuristic is for 2011-11-06T06:30:06 *** olexs has quit IRC (Quit: Leaving.) 2011-11-06T06:30:07 and of course i add +1 to the child's g 2011-11-06T06:30:09 you use a heap right? 2011-11-06T06:30:11 i'm assuming iti s A* 2011-11-06T06:30:12 no 2011-11-06T06:30:19 no point in using a heap 2011-11-06T06:30:29 i use a circular ring as a queue 2011-11-06T06:30:36 thats for the open set 2011-11-06T06:30:38 ok so you do bfs? 2011-11-06T06:30:45 or what? 2011-11-06T06:30:45 isn't a ring by definition an circle? lol 2011-11-06T06:30:48 ype, dijkstra 2011-11-06T06:31:00 mcstar: the way described on the site - is command-line way. I like it, but not in Windows. I thought there are any solutions already for this. 2011-11-06T06:31:18 bobbydroptable: circular queue 2011-11-06T06:31:20 knott : you run it on the command line, the results are shown in browser. 2011-11-06T06:31:23 mcstar: joke. 2011-11-06T06:31:33 yep i got it 2011-11-06T06:31:52 knott: just install cygwin, and you will start to like the command line 2011-11-06T06:31:55 knott you could just make a shortcut for it so you can double click it instead? 2011-11-06T06:33:04 mcstar: but you have to sort the unvisited nodes right? 2011-11-06T06:33:14 Like the tutorial instructs you to paste the commands into a .cmd 2011-11-06T06:33:15 ? 2011-11-06T06:33:17 you have to take the unvisited node with lowest value-thingy 2011-11-06T06:33:17 no 2011-11-06T06:33:23 no 2011-11-06T06:33:25 you're still thinking A* 2011-11-06T06:33:39 yo only need a priority queue for a* 2011-11-06T06:33:48 otherwise, the heuristic wouldnt matter 2011-11-06T06:33:53 The next current node will be the node marked with 2011-11-06T06:33:57 the lowest (tentative) distance in the unvisited set. 2011-11-06T06:34:01 i mean that part 2011-11-06T06:34:06 i'm confused 2011-11-06T06:34:12 i'm going to step out of this discussion lol 2011-11-06T06:34:25 hehe 2011-11-06T06:34:29 mcstar: i just install some right os 2011-11-06T06:34:29 *** choas has joined #aichallenge 2011-11-06T06:34:30 im just looking at the wiki of dijkstra 2011-11-06T06:34:45 marijnfs: bfs or dijsktar check all tiles up to a given length, before it increses its search length 2011-11-06T06:34:49 thats why its bfs 2011-11-06T06:34:58 theres no sorting/priorities 2011-11-06T06:36:08 it is not just bfs 2011-11-06T06:36:13 it has some selection going on 2011-11-06T06:36:13 thats too general 2011-11-06T06:36:17 thats why it is dijkstra 2011-11-06T06:36:21 those edges can have any weight 2011-11-06T06:36:30 but here all edges has weight 1 2011-11-06T06:36:48 have* 2011-11-06T06:36:59 so on a lattice, they are the same 2011-11-06T06:37:26 but a* can be better an a lattice too, if you know your destination coordinates 2011-11-06T06:37:31 yeah so, you still have to expand the node with the lowest tentative distance 2011-11-06T06:37:32 on* 2011-11-06T06:37:36 according to the algorithm 2011-11-06T06:38:00 no, because i dont know any "tentative distance" 2011-11-06T06:38:06 i only have the connectivity 2011-11-06T06:38:17 *** Naktibalda has joined #aichallenge 2011-11-06T06:38:36 isnt there a case where you have to go around a corridor or something and this starts to matter 2011-11-06T06:38:42 i use this to search for a specific condition on the map, not for a specific location 2011-11-06T06:39:11 this cant be helped if i want to search for a condition 2011-11-06T06:39:21 yeah you can create nice atrraction maps and stuff with it 2011-11-06T06:39:44 anyway, my point is in the implementation 2011-11-06T06:40:03 i guess that previously mentioned python code will be very slow compared to mine 2011-11-06T06:44:22 you mean because of python? 2011-11-06T06:44:25 or your early checknig 2011-11-06T06:46:13 *** HaraKiri has quit IRC () 2011-11-06T06:47:07 well, python iterations are usually slow, that dict lookup is slower than popping a queue, and heap implementation isnt necessarily fast, for small sizes 2011-11-06T06:47:11 *** asdasdasd has joined #aichallenge 2011-11-06T06:48:01 of course one has to profile it, or at least time it, but i thinkit will be slow compared to another implementation in python too 2011-11-06T06:48:37 i wonder how fast mine would be, in python, even if its bfs 2011-11-06T06:49:10 you use c++? 2011-11-06T06:49:12 it IS slow :) 2011-11-06T06:49:16 yes 2011-11-06T06:49:27 im looking for ways to optimize it still 2011-11-06T06:49:31 seems that i got it working at least 2011-11-06T06:49:42 what was wrong? 2011-11-06T06:50:32 the hashing was the main thing 2011-11-06T06:50:52 did == fail? 2011-11-06T06:51:17 yeah i couldn't just put my ANode class in the dict 2011-11-06T06:51:26 but putting the position tuple worked 2011-11-06T06:51:43 but its slow? 2011-11-06T06:51:48 it is :) 2011-11-06T06:52:00 times out with around 10 ants right now :/ 2011-11-06T06:52:31 marijnfs: for a comparison, mine does 12000, 60 step length paths on a maze map in 1 seconds 2011-11-06T06:52:39 -s 2011-11-06T06:53:12 jeej c++ 2011-11-06T06:53:16 combination of python being slow and my method being slow i guess 2011-11-06T06:53:20 i wonder how one would achieve that in pyton, unless writing it in c, and calling that 2011-11-06T06:53:34 *** xathis has joined #aichallenge 2011-11-06T06:53:44 rasmus: first change from using a map to an array for visited stuff 2011-11-06T06:53:46 no idea 2011-11-06T06:54:02 hmm 2011-11-06T06:54:02 yea 2011-11-06T06:54:22 i guess he means having a replica of the map 2011-11-06T06:54:50 well an array of booleans the size of the map 2011-11-06T06:54:55 you mean something like this? 2011-11-06T06:55:24 marijnfs: i guess you could store the g values on that map too 2011-11-06T06:55:25 visited = [[0 for col in range(ants.cols)] for row in range(ants.rows)] 2011-11-06T06:55:45 im not sure, but are lists linked lists or vectors in python? 2011-11-06T06:55:51 yeah or 'false' 2011-11-06T06:56:02 vectors 2011-11-06T06:56:03 vectors 2011-11-06T06:56:07 but this is a vector of vectors 2011-11-06T06:56:26 one big vector would be faster but hey 2011-11-06T06:56:51 im just asking cause a linked list would have bad characterisitcs here 2011-11-06T06:57:29 but consider numpy arrays 2011-11-06T06:57:35 Yeah, it's not a linked list 2011-11-06T06:57:37 [([False]*ant.rows)]*ant.cols 2011-11-06T06:57:43 since it is not run-time type checked 2011-11-06T06:58:16 ah yeah 2011-11-06T06:58:22 no need to do multi dimensional 2011-11-06T06:58:45 [([False]*ant.rows)]*ant.cols isnt this multi-d? 2011-11-06T06:59:18 i find it hard to read that.. 2011-11-06T06:59:19 *** Ashoka has quit IRC (Quit: Page closed) 2011-11-06T06:59:28 its just repetition 2011-11-06T06:59:42 but it looks 2d for me 2011-11-06T06:59:46 to me* 2011-11-06T07:00:15 ill keep it 2d anyway i think 2011-11-06T07:00:26 cause im not sure how to handle 1d 2011-11-06T07:00:42 row * cols + col 2011-11-06T07:00:58 exactly 2011-11-06T07:01:02 ah 2011-11-06T07:01:03 righto 2011-11-06T07:01:04 but you should do it the convenient way 2011-11-06T07:01:26 you dont want to write C code in python 2011-11-06T07:01:57 i've done c++ a lot more than python, so i might do a bit.. 2011-11-06T07:02:05 wanted to do python for this though :) 2011-11-06T07:02:11 *** knott has quit IRC (Quit: Page closed) 2011-11-06T07:02:38 RasmusL: i wonder how soon you will be going back to c++ :D 2011-11-06T07:02:39 *** Jak_o_Shadows has quit IRC (Quit: Leaving.) 2011-11-06T07:02:58 yeah haha 2011-11-06T07:03:17 the 2d list is a lot slower than the dictionary :/ 2011-11-06T07:04:03 im curious, initialize a numpy array with that list 2011-11-06T07:04:08 and try it again, will you? 2011-11-06T07:05:04 sure i'll just get numpy 2011-11-06T07:05:33 really? 2011-11-06T07:05:51 i cant imagine 2011-11-06T07:06:15 well it has to zero it every single time.. 2011-11-06T07:06:21 the search function is called 2011-11-06T07:06:44 *** conor_f has joined #aichallenge 2011-11-06T07:07:23 ? 2011-11-06T07:07:28 what does your code look like now 2011-11-06T07:07:41 oh derp.. numpy doesn't support python 3 2011-11-06T07:08:00 i just replaced the dictionary with the 2d list 2011-11-06T07:09:15 and yeah it's way slower :/ 2011-11-06T07:09:30 There is numpy for python 3.2 2011-11-06T07:09:35 yep 2011-11-06T07:10:11 Internally, a list is represented as an array; 2011-11-06T07:10:34 it shouldnt be slower than the dict for this 2011-11-06T07:10:46 maybe its because of the nesting 2011-11-06T07:10:57 depends on what you're trying to do? 2011-11-06T07:11:14 oh yeh maybe it is the nesting 2011-11-06T07:11:17 numpy for python 3.2? 2011-11-06T07:11:27 i can't find that 2011-11-06T07:11:36 i know i have it 2011-11-06T07:11:49 yep 2011-11-06T07:11:58 3.2.2 2011-11-06T07:12:17 have to get it from the repository? 2011-11-06T07:12:31 sure 2011-11-06T07:12:47 "Neither NumPy nor SciPy are currently compatible with Python 3." 2011-11-06T07:12:52 from their site.. 2011-11-06T07:13:02 well they suck 2011-11-06T07:13:12 who are they? 2011-11-06T07:13:40 http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/ 2011-11-06T07:13:40 http://numpy.scipy.org/ 2011-11-06T07:13:52 I'm using numpy on python 3.2 right now 2011-11-06T07:14:11 oh i see 2011-11-06T07:14:11 weird 2011-11-06T07:14:23 didn't see that one :) 2011-11-06T07:14:58 supports Python 2.4 - 2.7 and 3.1 - 3.2. 2011-11-06T07:15:24 those are official releases? 2011-11-06T07:15:25 lol 2011-11-06T07:15:32 yes 2011-11-06T07:15:43 says i don't have python 3.2.. haha 2011-11-06T07:15:44 i have 3.2.2 2011-11-06T07:15:45 so what does numpy do? 2011-11-06T07:15:47 Anyone care to test if numpy works on the server 2011-11-06T07:16:22 mcstar uses it apparently 2011-11-06T07:16:31 ? 2011-11-06T07:16:36 is bot is c++? 2011-11-06T07:16:38 ow no you have it 2011-11-06T07:16:39 his* 2011-11-06T07:16:45 ah 2011-11-06T07:17:07 gotta go for now, thanks for the help :) 2011-11-06T07:17:08 it doesnt matter if numpy is installed or not 2011-11-06T07:17:22 if it isnt, just ask amstan to install it 2011-11-06T07:17:27 or some other organizer 2011-11-06T07:19:05 *** alt^255 has left #aichallenge 2011-11-06T07:20:41 *** ztfw has quit IRC (Remote host closed the connection) 2011-11-06T07:21:46 *** RasmusL has quit IRC (Ping timeout: 265 seconds) 2011-11-06T07:28:47 *** Ellos has joined #aichallenge 2011-11-06T07:29:16 hm 2011-11-06T07:29:28 my bot shows an emergent behavior when it attacks hills 2011-11-06T07:29:30 zorun: sorry for the late reply - do you mean compiling to bytecode, or actually running through the toplevel interpreter? If bytecode then yes, on my system (linux) the starter package works correctly when compiled 2011-11-06T07:30:11 he wanted to run it in the interpreter 2011-11-06T07:30:20 mcstar: what sort of emergent behavior? 2011-11-06T07:30:58 when the first ant closest to the enemy hive reaches it, all the other ants neaby start to form aline, and attack one after another 2011-11-06T07:31:17 after its destroyed, the split sideways 2011-11-06T07:31:22 they* 2011-11-06T07:31:32 and i didnt program this in 2011-11-06T07:31:39 well, not intentinally 2011-11-06T07:31:42 ah lol 2011-11-06T07:32:16 that is some emergent behavior, yes... 2011-11-06T07:33:06 i think im gonna make a backup copy of this version :D 2011-11-06T07:33:17 git. 2011-11-06T07:33:19 use it 2011-11-06T07:33:19 lol 2011-11-06T07:33:24 well, its gitted 2011-11-06T07:33:30 but if i now run git 2011-11-06T07:33:34 you could have access to my code 2011-11-06T07:33:47 you don't need github to use git 2011-11-06T07:33:52 but i do 2011-11-06T07:33:57 why? o.O? 2011-11-06T07:34:10 because i wanted to share the code 2011-11-06T07:34:14 *** exezive has quit IRC (Remote host closed the connection) 2011-11-06T07:34:19 a very early version of this bot 2011-11-06T07:34:20 then what's wrong with me having access to the code? :D 2011-11-06T07:34:31 well, it wouldnt be fair now 2011-11-06T07:34:31 *** locle has joined #aichallenge 2011-11-06T07:34:38 hi! 2011-11-06T07:34:52 that's the point of git you git a local repo, then you push it to github 2011-11-06T07:35:08 if you want to continue work on it locally without affecting the github version just don't push 2011-11-06T07:35:21 *** Antimony has joined #aichallenge 2011-11-06T07:35:26 bobbydroptable: thanks for the enlightening remarks 2011-11-06T07:35:32 I implement a BFS but a lot of my ants do stufpid move with water (A -> B B->A) (with A B C on same row an C a water tile) 2011-11-06T07:35:40 *** grandiose has joined #aichallenge 2011-11-06T07:35:48 *** ztfw has joined #aichallenge 2011-11-06T07:35:50 any hints ? 2011-11-06T07:36:02 not sure if sarcasm. lol sarcasm-meter broken 2011-11-06T07:36:11 it is 2011-11-06T07:36:29 :P well, whatever 2011-11-06T07:36:36 you assume i dont know that much about git, but i managed to use it? 2011-11-06T07:36:42 *** Ashoka has joined #aichallenge 2011-11-06T07:37:06 no, i'm just not sure why you have to resort to making a backup copy of a repository you've already created? 2011-11-06T07:37:18 http://ants.fluxid.pl/replay.22899 2011-11-06T07:37:26 but maybe i'm missing something *shrug* 2011-11-06T07:37:38 you are only missing that git needs git 2011-11-06T07:37:43 http://aichallenge.org/visualizer.php?game=64204&user=8217 2011-11-06T07:37:48 but i can use a copy the way i want 2011-11-06T07:38:04 *** Belerafon has joined #aichallenge 2011-11-06T07:38:04 they're the _exact_ same version of the bot 2011-11-06T07:38:09 wtf like?? 2011-11-06T07:38:14 i dont really want to use versioning systems for a thing like this bot 2011-11-06T07:39:00 descrive conor 2011-11-06T07:39:02 b 2011-11-06T07:39:04 conor which player ? 2011-11-06T07:39:10 -s 2011-11-06T07:39:14 ok then lol 2011-11-06T07:39:16 conor_f is me 2011-11-06T07:39:18 sorry to tread on your toes lol 2011-11-06T07:39:27 bobbydroptable: get out 2011-11-06T07:39:30 *** IS has joined #aichallenge 2011-11-06T07:39:31 dont say sorry 2011-11-06T07:39:40 bobby:haha 2011-11-06T07:39:47 o.o 2011-11-06T07:39:50 marijnfs: well, in the aichallenge.com one, it works properly, in the fluxid one it just fails miserably 2011-11-06T07:40:00 mean 2011-11-06T07:40:17 Hi. What memory limitation on server for the bot? Can I take about 50Mb? :) 2011-11-06T07:40:25 1.5 GB 2011-11-06T07:40:26 conor_f: are you going for a snake bot? 2011-11-06T07:40:50 1.5 GB memory for all or for one my bot? 2011-11-06T07:40:50 mcstar: I'm going for a bot that gathers food right first of all :P 2011-11-06T07:40:57 for each bot 2011-11-06T07:41:01 thanks 2011-11-06T07:41:16 it has a weird(interesting) behavior 2011-11-06T07:41:25 mcstar: mine? 2011-11-06T07:41:26 i always wonder how people do that 2011-11-06T07:41:28 yes 2011-11-06T07:41:32 all it does is gather food lol 2011-11-06T07:41:37 it moves smei-collectively 2011-11-06T07:41:42 using bfs to decide where to go to 2011-11-06T07:41:50 but all of them at once? 2011-11-06T07:42:08 you assign multiple ants to a food tile? 2011-11-06T07:42:11 the reason for the grouping is because I haven't made one ant go for one food, everyone goes to their closest one 2011-11-06T07:42:16 I guess it's a question of letting the ants search food or the food searching ants 2011-11-06T07:42:52 *** Belerafon has quit IRC (Remote host closed the connection) 2011-11-06T07:42:54 *** Rinum has joined #aichallenge 2011-11-06T07:43:12 anyone any idea why it works on the official server + locally and not on fluxid? :/ 2011-11-06T07:43:37 fluxid is basically the same as locally... 2011-11-06T07:43:50 except it's over tcp 2011-11-06T07:43:53 yeah, but it works locally and doesn't on fluxid 2011-11-06T07:43:57 maybe your internet is broken 2011-11-06T07:44:05 *** grwip has joined #aichallenge 2011-11-06T07:44:13 I'll double check locally 2011-11-06T07:44:14 conor_f: check your router if it filters the Ants protocol 2011-11-06T07:44:23 :P 2011-11-06T07:44:30 conor_f: have you tested with the same map locally? 2011-11-06T07:44:44 not the same map, but I've tested similar maps 2011-11-06T07:44:45 Well yea, fluxid runs locally so... ;p 2011-11-06T07:44:56 conor_f: try the same then 2011-11-06T07:45:09 yeah, I will 2011-11-06T07:45:16 conor_f: why dont you replicate fluxid's server? 2011-11-06T07:45:25 strange how it would work on some maps and not on all though 2011-11-06T07:46:06 some maps are bigger and if you're doing bfs across a larger map it might be timing out? 2011-11-06T07:46:11 once mine crashed on some map, turned out, i handled wrapping badly, and on 1 particular map, the spawn point was at the very corner 2011-11-06T07:46:25 *** IS has quit IRC (Ping timeout: 265 seconds) 2011-11-06T07:46:36 i implement the BFS algo but some ants do the same like Nielsrobin's ant (on conor_f replay) any hints to correct that stupid behavior ? 2011-11-06T07:46:48 bobbydroptable: it's not timing out, just doing stupid things like sticking in the corners 2011-11-06T07:47:10 shit 2011-11-06T07:47:11 brb 2011-11-06T07:47:39 *** marijnfs has quit IRC (Quit: leaving) 2011-11-06T07:48:23 *** ikaros has joined #aichallenge 2011-11-06T07:48:24 *** knott has joined #aichallenge 2011-11-06T07:48:49 conor_f: are you still running games on tcp? 2011-11-06T07:48:58 *** thestinger has joined #aichallenge 2011-11-06T07:49:46 okey, guys i connected visualizator to eclipse. But there is a problem. 2011-11-06T07:50:13 when he said it wasn't working i thought he meant timing out or crashing. sticking to corners doesn't seem to be related to tcp at all. 2011-11-06T07:50:59 when breakpoint stop occur debugger disconnects and playgame.py stops. 2011-11-06T07:51:26 i think it is step timeout. Anyone knows how to bypass it? 2011-11-06T07:51:39 *** conor_f has quit IRC (Ping timeout: 252 seconds) 2011-11-06T07:52:23 playgame.py has a turntime parameter 2011-11-06T07:52:38 set it to infinity big? 2011-11-06T07:52:48 i just removed it 2011-11-06T07:53:03 set it to a big number 2011-11-06T07:53:14 in milliseconds 2011-11-06T07:53:38 default turntime is 1000 2011-11-06T07:53:45 khm 2011-11-06T07:53:56 it doesnt helped for me 2011-11-06T07:54:30 what didn't help? 2011-11-06T07:55:26 set turntime to a big number 2011-11-06T07:55:26 did you put, for example, "--turntime 60000" 2011-11-06T07:55:38 yep 2011-11-06T07:55:46 --turntime 5000000 2011-11-06T07:56:22 is the breakpoint during turn or load? might need to change --loadtime as well? 2011-11-06T07:57:55 i tried to set in turn but it does same 2011-11-06T07:59:34 oh, it seems to set loadtime to big int is helped for me, thanks ! 2011-11-06T07:59:58 ^^ 2011-11-06T08:01:13 *** locle has quit IRC (Quit: Page closed) 2011-11-06T08:05:53 *** conor_f has joined #aichallenge 2011-11-06T08:10:30 *** boreus has joined #aichallenge 2011-11-06T08:11:23 *** bobbydroptable has quit IRC (Quit: Leaving) 2011-11-06T08:11:59 is there a way to download the code for your own submissions? 2011-11-06T08:12:03 i may not have the old code anymore :) 2011-11-06T08:12:15 it must be stored somewhere on the servers 2011-11-06T08:12:23 jix: it works perfectly on the same map 2011-11-06T08:12:36 mcstar: too ^^ 2011-11-06T08:12:46 boreus: what happened to your code? 2011-11-06T08:13:49 boreus: you should really use git/hg :), but I'm sure amstan or another admin will give you your code from the server if they can (just ask when they're on) 2011-11-06T08:14:04 conor_f: just kept working on it, but yeah no version control (: 2011-11-06T08:14:10 *** retybok_ has joined #aichallenge 2011-11-06T08:14:23 yeah, an admin will give it to you if you ask nicely ;) 2011-11-06T08:14:28 @seen roflmao 2011-11-06T08:14:28 conor_f: roflmao was last seen in #aichallenge 1 day, 12 hours, 33 minutes, and 17 seconds ago: what's up pair? 2011-11-06T08:14:32 bleh 2011-11-06T08:14:40 thestinger: yah okay thats what i figured, thanks 2011-11-06T08:15:20 i usually write better code on the second try 2011-11-06T08:15:56 *** rosty has joined #aichallenge 2011-11-06T08:16:26 *** HaraKiri has joined #aichallenge 2011-11-06T08:16:31 lol, the basic HunterBot.py pwns me every time :P 2011-11-06T08:16:53 conor_f: play on a big map :), hunterbot won't do anything 2011-11-06T08:17:07 heh, yeah. at least mine lives a bit 2011-11-06T08:17:12 small maps are kind of weird 2011-11-06T08:17:20 yeah 2011-11-06T08:17:22 *** sigh has quit IRC (Remote host closed the connection) 2011-11-06T08:17:28 on the tcp server the small multi hill maps are basically just a clusterfuck every time 2011-11-06T08:17:44 the winner is pretty random... 2011-11-06T08:17:47 *** twymer has joined #aichallenge 2011-11-06T08:17:50 my bots being a dick though. works good locally and on the official server, but fails miserably on fluxid :/ 2011-11-06T08:17:59 using the exact same maps and everything 2011-11-06T08:18:30 http://ants.fluxid.pl/replay.22937 <- my foraging branch :) 2011-11-06T08:18:46 Too much latency 2011-11-06T08:19:51 *** qwertyasdfgh has joined #aichallenge 2011-11-06T08:19:53 wow, thestinger good job 2011-11-06T08:19:58 I actually "reuse" ants for foraging, so I can use the same code to only send 1 ant to gather a few food that are right next to each other - too lazy to do it atm though 2011-11-06T08:20:00 hi! 2011-11-06T08:20:12 do you know hot to change the map in the tutorial? 2011-11-06T08:20:25 vim tutorial.sh 2011-11-06T08:20:25 by "foraging" I mean going back and revisiting explored areas after not seeing them for a while 2011-11-06T08:20:27 *** dvladim has quit IRC (Quit: Konversation terminated!) 2011-11-06T08:20:36 I'm also experimenting with assigning an ant to forage in a "room" 2011-11-06T08:20:36 --mapfile "" 2011-11-06T08:20:57 thestinger: like zoning each ant? :P 2011-11-06T08:21:09 i have this: --map_file tools/maps/maze/maze_02p_01.map 2011-11-06T08:21:12 conor_f: yeah 2011-11-06T08:21:14 but doesnt work 2011-11-06T08:21:58 quotes 2011-11-06T08:22:00 the canvas show the map, but the play doesnt start 2011-11-06T08:22:08 oh, I dunno so :/ sorry 2011-11-06T08:22:17 thestinger: that'd be intresting 2011-11-06T08:22:39 hmm, thinking about it 2011-11-06T08:23:08 yeah, can't think of any major shortcomings with it, bar maybe having a tight zone for defense 2011-11-06T08:23:24 *** xcvxcv has joined #aichallenge 2011-11-06T08:23:42 zorun: here are my thoughts on running a bot in the ocaml toplevel: http://pastebin.com/7tHeV9qx 2011-11-06T08:26:39 *** grandiose has quit IRC (Quit: Leaving.) 2011-11-06T08:26:46 *** Harpyon has joined #aichallenge 2011-11-06T08:27:56 *** retybok_ has quit IRC (Ping timeout: 256 seconds) 2011-11-06T08:28:33 woot 2011-11-06T08:28:37 *** qwertyasdfgh has quit IRC (Quit: Page closed) 2011-11-06T08:28:40 got over 400 ants on one level XD 2011-11-06T08:29:47 *** HaraKiri has quit IRC (Ping timeout: 252 seconds) 2011-11-06T08:29:59 the forage branch of my bot is a bit retarded atm and it gets 600+ ants on the biggest multi-hill maze map :P 2011-11-06T08:30:41 what map is that? 2011-11-06T08:31:11 the 8p version of multi_hill_maze 2011-11-06T08:31:21 yeah 2011-11-06T08:31:23 ok 2011-11-06T08:32:11 *** HaraKiri has joined #aichallenge 2011-11-06T08:32:16 thestinger: man, your good :O looking at your official profile 2011-11-06T08:32:21 ranked 25!?! 2011-11-06T08:32:52 I dunno how that happened 2011-11-06T08:33:06 that version of my bot is before I did anything about enemy ants 2011-11-06T08:33:26 and it has a bug where my ants get stuck next to my own hills (fixed now) 2011-11-06T08:33:41 and another bug where my ants can have collisions when food spawns next to them (fixed now too) 2011-11-06T08:35:00 it's still good 2011-11-06T08:35:00 *** icefox has quit IRC (Quit: icefox) 2011-11-06T08:35:38 thestinger: I'm running my bot on that map now too 2011-11-06T08:35:58 see how it does, even though 6 of it's opponents are itself :P 2011-11-06T08:36:10 I have ~5 variations of my bot now in different branches, so running them against each other on there is interesting 2011-11-06T08:36:19 I can see :P 2011-11-06T08:36:31 strcat_forage, _attack? 2011-11-06T08:36:34 my defense branch is basically useless atm, it just explores/forages slower and static defenses are useless 2011-11-06T08:36:44 I've seen a few strcat_*s though :P 2011-11-06T08:36:47 yeah 2011-11-06T08:37:10 Surprisingly difficult to make a robust BFS... 2011-11-06T08:37:14 strcat is what I currently have tagged as "stable" in my master branch, _next is the current revision of master, the rest are branches (defense, cautious, forage, etc.) 2011-11-06T08:37:44 I'm not sure which stuff will actually pan out so I'm just leaving it separate and I'll merge it if it's an improvement 2011-11-06T08:38:02 yeah 2011-11-06T08:38:06 or merge them all :P 2011-11-06T08:38:33 *** Antimony has quit IRC (Ping timeout: 260 seconds) 2011-11-06T08:38:59 *** rosty has quit IRC (Quit: Page closed) 2011-11-06T08:39:43 *** alt^255 has joined #aichallenge 2011-11-06T08:41:02 thestinger: mine got up to 200 with a load of competition for food and nearly 200 stuck in the (razed) hill :P 2011-11-06T08:44:44 yipppppie i successfully programmed a mass-suicide 2011-11-06T08:44:48 pairofdice: simple bfs should be easy with a queue, Aim.values() and ants.tile() 2011-11-06T08:45:23 *** Rinum has quit IRC (Ping timeout: 265 seconds) 2011-11-06T08:51:38 lol 2011-11-06T08:51:45 I've got a great system going here XD 2011-11-06T08:52:09 it took me <5mins to change my code from food search to enemy hill search and attack :P 2011-11-06T08:52:12 *** caution has joined #aichallenge 2011-11-06T08:52:43 one thing I don't get, do I have to use the Ants class when doing python? 2011-11-06T08:52:54 you can use whatever you like 2011-11-06T08:52:58 ok. 2011-11-06T08:54:12 *** Mooloo has quit IRC (Read error: Operation timed out) 2011-11-06T08:54:17 *** NotABug has joined #aichallenge 2011-11-06T08:56:16 *** Antimony has joined #aichallenge 2011-11-06T08:56:23 mcstar: order all ants to one spot and hope no one survives? :) 2011-11-06T08:57:13 im writing code that tries to defend the hill 2011-11-06T08:57:23 but stupid things just die instead 2011-11-06T08:57:29 :) 2011-11-06T08:57:41 ive got to make the parameters right 2011-11-06T08:57:48 Intelligent Desing 2011-11-06T08:58:25 I've written my ai so that my ants can't kill each other 2011-11-06T08:58:48 all move orders go through one function that checks if it's safe 2011-11-06T08:58:50 Minthos: me too, thats why i was surprised 2011-11-06T08:58:55 Minthos: that's what I did first 2011-11-06T08:59:38 :@ I'm actually getting pretty annoyed now that I can't test on fluxid anymore :/ 2011-11-06T09:00:13 smiley1983: I was rather thinking of running the bot like "ocaml " 2011-11-06T09:00:27 boreus, it is. And I got a simple BFS working. But I'm trying to bolt some bug... features on it 2011-11-06T09:00:36 smiley1983: so that there is no need to recompile to test new things 2011-11-06T09:00:52 smiley1983: but running from the interpreter looks like a neat idea also :) 2011-11-06T09:01:06 smiley1983: weren't Lisp folks doing that last year? 2011-11-06T09:01:29 pairofdice: features are the best (; 2011-11-06T09:03:24 zorun: sbcl is compiled, what you mean is a REPL 2011-11-06T09:03:42 mcstar: yes, I know 2011-11-06T09:04:02 The ultimate C++ bot has tinyscheme.c :D 2011-11-06T09:04:10 its incredibly good to develop under common lisp though, i miss it 2011-11-06T09:04:22 Zao: :) 2011-11-06T09:04:24 Zao :) 2011-11-06T09:04:43 Racket is quite lovely if you want a decent REPL, but it's not much embeddable at all, sadly. 2011-11-06T09:04:55 Greenspun's tenth rule 2011-11-06T09:05:05 meh, I am using almost no existing libraries in my implementation, very demotivating :-) 2011-11-06T09:06:08 *** cobracom has joined #aichallenge 2011-11-06T09:06:37 import random; random.choice(directions) 2011-11-06T09:07:17 *** Mooloo has joined #aichallenge 2011-11-06T09:07:35 zorun: I think the closest to that would be to compile to bytecode, and then use "ocamlrun /path/MyBot.byte" - bytecode compilation is faster, but I don't think there's any option of skipping the compile step entirely 2011-11-06T09:08:11 and indeed, Lisp is much better suited to the sort of dynamic debugging I thought you were after 2011-11-06T09:08:41 I've written a bit more about how it might be done, but I don't think it's very practical: http://pastebin.com/aK2PSZ9D 2011-11-06T09:09:43 *** retybok_ has joined #aichallenge 2011-11-06T09:10:06 :@ I actually can't use fluxid anymore :/ it works locally, fails on fluxid _every_ time 2011-11-06T09:10:16 *** alt^255 has left #aichallenge 2011-11-06T09:11:46 *** retybok has quit IRC (Ping timeout: 255 seconds) 2011-11-06T09:12:41 *** retybok has joined #aichallenge 2011-11-06T09:13:24 in what way does it fail, timeout? 2011-11-06T09:13:31 conor_f: have you tried Accoun's tcp server? 2011-11-06T09:14:15 no, details? 2011-11-06T09:14:32 caution: nope. just doesn't work. try the same map locally and it's fine 2011-11-06T09:14:39 _every_ time 2011-11-06T09:14:48 I know it makes no sense, but it's what's happening 2011-11-06T09:14:57 doesn't work isn't an effective way to describe a problem with a computer program 2011-11-06T09:15:16 *** cobracom has quit IRC (Quit: Page closed) 2011-11-06T09:15:24 well, it performs differently on fluxid then locally, even when running the exact same map 2011-11-06T09:15:29 Ummm, is there a better way to reset all the values of a 3-dimensional list than looping through it. In python 2011-11-06T09:15:34 Err 2011-11-06T09:15:41 Along a given dimension 2011-11-06T09:16:07 conor_f: have you tried downloading the bot input from fluxid? 2011-11-06T09:16:14 and running it with that 2011-11-06T09:16:34 Minthos: no 2011-11-06T09:16:40 that is a good idea 2011-11-06T09:16:44 pairofdice: use numpy 2011-11-06T09:16:55 smiley1983: it's just weird that it doesn't work when interpreted ("ocaml path/my_bot.ml"), because that's exactly what python bots are doing 2011-11-06T09:17:30 pairofdice: you can do assignment with a slice instead of a for loop, and that might be faster (but seriously, use numpy :P) 2011-11-06T09:17:48 Minthos: ahh, debug works with the TCP server, just remembered 2011-11-06T09:17:51 smiley1983: actually, when trying to interpret, the program does not even wait for commands on stdin 2011-11-06T09:17:52 what would you do in numpy? 2011-11-06T09:18:18 conor_f: http://213.88.39.97:2080/ and http://aichallenge.org/forums/viewtopic.php?f=25&t=1505 2011-11-06T09:18:49 caution: numpy lets you do allocation/filling and various types of iteration with a slow python for loop 2011-11-06T09:18:59 without a slow python for loop* 2011-11-06T09:19:04 on standard python lists? 2011-11-06T09:19:15 no, on numpy arrays 2011-11-06T09:19:45 are they typed? 2011-11-06T09:19:55 smiley1983: tyvm 2011-11-06T09:20:27 yes (so is array.array from the python standard lib, but that's basically the same as a "list" in python, just of values instead of pointers) 2011-11-06T09:20:51 caution: http://docs.scipy.org/doc/numpy/reference/ really nice docs 2011-11-06T09:21:05 LOL 2011-11-06T09:21:09 Yeah I'll look into numpy 2011-11-06T09:21:12 I know now whats wrong XD 2011-11-06T09:21:22 I was using the wrong version of my bot lol 2011-11-06T09:21:28 in pure python, list comprehensions will also be faster than iterating with a for loop most of the time (but you can't really do stuff in-place) 2011-11-06T09:21:47 map(), filter() and reduce() could also be a performance improvement sometimes 2011-11-06T09:21:50 I'm _such_ a tool 2011-11-06T09:22:08 Yes you are :D 2011-11-06T09:22:38 python doesn't give you a way to allocation a list faster than '[0] * 100' 2011-11-06T09:22:43 zorun: yes, I just tried running it through ocaml directly (didn't know it was possible), and after solving dependency issues, I am also confused about why it does not work 2011-11-06T09:22:46 or a nice fast way to set them all to something 2011-11-06T09:22:59 lol, this is going really well actually, I'm in the top 5 in my country now XD 2011-11-06T09:23:07 s/allocation/allocate/ (I really can't type today) 2011-11-06T09:23:24 zorun: I can only imagine that it's doing something strange with stdin and stdout which prevent it from working, but if so it seems like a mistake 2011-11-06T09:23:33 [0]*100 just gives you 100 references to the same list of [0] ;) 2011-11-06T09:24:41 *** Murashka has quit IRC (Quit: Page closed) 2011-11-06T09:27:47 smiley1983: it might be related to the ";;" (which aren't really needed after all) 2011-11-06T09:28:06 smiley1983: I tried to add a () function, but it's not better 2011-11-06T09:28:08 on the TCP server, what do the Mu and Sigma headings mean? 2011-11-06T09:28:57 Your rank's normal distribution values 2011-11-06T09:30:14 conor_f: https://research.microsoft.com/en-us/projects/trueskill/ 2011-11-06T09:31:40 ah, ok. ty 2011-11-06T09:32:13 so thats how opponents are chosen on the official/TCP server? 2011-11-06T09:33:30 well, that's how ranking works 2011-11-06T09:33:39 on the tcp server it seems like you just get the first available match 2011-11-06T09:33:48 yeah 2011-11-06T09:33:51 kk, ty 2011-11-06T09:34:08 I think they can do w/e they want for matchmaking and trueskill will still work fine 2011-11-06T09:34:19 what would be an intresting change to the TCP server is if you could force whatever map type 2011-11-06T09:34:19 *** Ashoka has quit IRC (Quit: Page closed) 2011-11-06T09:34:45 and unless specified, the bot will play on any map 2011-11-06T09:34:57 then when one person wants a particular map, it'll be played on it 2011-11-06T09:35:03 *** abcxyz has joined #aichallenge 2011-11-06T09:35:20 thestinger: if you're looking for performance, glance at the array module 2011-11-06T09:35:28 thestinger: and for vector maths, look at numpy 2011-11-06T09:35:44 yeah, I know (I'm actually using C++, I was just giving some tips to other people) 2011-11-06T09:35:52 i hope numpy is available on the hosted environment :/ 2011-11-06T09:36:01 it is for python2 2011-11-06T09:36:06 sweet 2011-11-06T09:36:08 the python3 version isn't available iirc 2011-11-06T09:36:17 I think you might even be able to use scipy 2011-11-06T09:37:02 so guys, my approach is to calculate first where each ant wants to go and then to somehow adjust their "target" to the closest possible movement that won't go into walls, and won't go into other ants 2011-11-06T09:37:15 what i'm wondering is how 2011-11-06T09:37:24 a line sweep solver? 2011-11-06T09:38:16 a what? 2011-11-06T09:38:23 sounds like you want pathfinding 2011-11-06T09:38:31 use a BFS or A* 2011-11-06T09:40:25 nah 2011-11-06T09:41:56 lericson: nice idea... i might just rethink my initial "go with prolog to screw with everyone's brain" approach and use something like that 2011-11-06T09:43:29 I need to make my ants attack in formation 2011-11-06T09:43:59 *** conor_f has quit IRC (Ping timeout: 248 seconds) 2011-11-06T09:46:42 one of the toughest challenges, i find, with the ai challenge is that it is very hard to inject useful debugging info 2011-11-06T09:46:54 like i would love to paint arrows and stuff on my ants, heatmap overlays and whanot 2011-11-06T09:47:21 you can 2011-11-06T09:47:29 http://aichallenge.org/forums/viewtopic.php?f=25&t=1633&sid=694102ab81808c32ec95ab169aa406c9 2011-11-06T09:47:43 check this out, someone made a really nice debugging thing for the visualizer 2011-11-06T09:48:35 you use 'v' (instead of 'o') to draw stuff basically 2011-11-06T09:48:59 I haven't actually ended up using it yet 2011-11-06T09:50:45 please hold while judgement is being generated... 2011-11-06T09:51:33 can you check out the visualizer alone or do you have to build everything? 2011-11-06T09:51:45 yeah, I was expecting something like that 2011-11-06T09:51:58 I'm still using gnuplot at this time 2011-11-06T09:52:26 nice 2011-11-06T09:52:40 caution: it's all python, there's nothing to build 2011-11-06T09:52:49 I thought it was java 2011-11-06T09:53:06 the visualizer is javascript/canvas 2011-11-06T09:53:21 I think the .jar is just a way to stream stuff live to it or something like that 2011-11-06T09:53:22 I thought the live visualiser is java 2011-11-06T09:53:26 *** danielharan has joined #aichallenge 2011-11-06T09:53:28 oh I see 2011-11-06T09:55:10 sadly it's not as simple as replacing the visualizer directory in tools 2011-11-06T09:55:15 zorun: if I enter the commands into the ocaml toplevel to input_line from a fifo pipe (like in the example in my paste) then it can read from the pipe; the same functions seem to fail under ocamlrun, so I don't know what's going on, but thankfully the compiled versions all work as expected :) 2011-11-06T09:55:28 *** knott has quit IRC (Ping timeout: 265 seconds) 2011-11-06T09:57:22 *** paddington_ has joined #aichallenge 2011-11-06T09:57:34 *** smiley1983 has quit IRC (Quit: leaving) 2011-11-06T09:57:36 *** knott has joined #aichallenge 2011-11-06T10:01:26 *** RasmusL has joined #aichallenge 2011-11-06T10:01:51 *** abcxyz has quit IRC (Quit: Page closed) 2011-11-06T10:02:39 *** Naktibalda has quit IRC (Ping timeout: 248 seconds) 2011-11-06T10:03:01 *** danielha_ has joined #aichallenge 2011-11-06T10:04:36 *** danielh__ has joined #aichallenge 2011-11-06T10:04:44 *** danielharan has quit IRC (Ping timeout: 258 seconds) 2011-11-06T10:04:53 *** knott has quit IRC (Quit: Page closed) 2011-11-06T10:05:30 *** conor_f has joined #aichallenge 2011-11-06T10:05:48 *** danielharan has joined #aichallenge 2011-11-06T10:06:35 *** xcvxcv has quit IRC (Ping timeout: 265 seconds) 2011-11-06T10:08:57 *** danielh__ has quit IRC (Ping timeout: 258 seconds) 2011-11-06T10:11:24 anyone here doing the stanford intro to ai class? 2011-11-06T10:11:36 *** retybok_ has quit IRC (Ping timeout: 258 seconds) 2011-11-06T10:12:12 yes 2011-11-06T10:12:21 I'm also taking the ml class 2011-11-06T10:12:44 I should have taken the ml class, but it would have been too much for me to join in after a week or 2 :/ 2011-11-06T10:12:47 *** Mak__ has quit IRC (Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20110928134238]) 2011-11-06T10:13:16 is there an IRC channel for them? 2011-11-06T10:13:20 ai-class.com that is 2011-11-06T10:13:45 yeah, it's kind of hard for me now, I have ml + ai + courses at uni + this ai challenge which I can't stop working on... 2011-11-06T10:14:18 heh, I know. I just had a midterm and I did _nothing_ but this :P 2011-11-06T10:14:30 study's going to be rough when I get back lol 2011-11-06T10:14:39 conor_f: I guess there are yes, but I don't know the names, I think you can find that on the sites or maybe in the reedit forums 2011-11-06T10:15:01 k, I'll check it out 2011-11-06T10:15:07 how did you find this weeks stuff? 2011-11-06T10:15:26 boring D: 2011-11-06T10:15:33 yeah 2011-11-06T10:15:36 kind of yeah 2011-11-06T10:15:49 I didn't watch any of the second set of videos lol 2011-11-06T10:15:51 what are you covering this week? 2011-11-06T10:15:59 really easy intro to logic 2011-11-06T10:16:04 and planning 2011-11-06T10:16:09 boolean algebra? 2011-11-06T10:16:14 nope :P 2011-11-06T10:16:25 just basic logic and planning as grwip said 2011-11-06T10:16:29 *** delt0r_ has quit IRC (Ping timeout: 252 seconds) 2011-11-06T10:16:30 not really, more a vulgarization of predicat and first order logics 2011-11-06T10:16:31 Actually, some boolean algebra 2011-11-06T10:16:48 ah 2011-11-06T10:16:57 pairofdice: really? where? 2011-11-06T10:17:18 we're dealing with truth/false value but not really boolean algebra, for example there is no mention of the De Morgan rules 2011-11-06T10:17:29 i'd do it, but i use enough time on this and it's not even relevant to my major :D 2011-11-06T10:17:30 conor, in the truth tables :p 2011-11-06T10:17:43 lol, I dunno if that even counts :P 2011-11-06T10:17:56 Sure, why not 2011-11-06T10:18:05 when I studied logic at uni it was forbidden to use truth tables 2011-11-06T10:18:09 btw, /join #ai-class 2011-11-06T10:18:15 that was not accepted as a demonstration 2011-11-06T10:18:18 weird 2011-11-06T10:18:37 hope I did good in this weeks homework 2011-11-06T10:18:44 that was nice, you had to go through more formal stuff, using axioms and Modus ponens 2011-11-06T10:18:53 100% in the last two \o/ -_- 2011-11-06T10:19:08 :O I didn't understand any of the maths until last week lol 2011-11-06T10:19:10 anyway maybe we'll stop squatting this room and follow up on #ai-class... 2011-11-06T10:19:20 *** marijnfs has joined #aichallenge 2011-11-06T10:19:27 yeah :P 2011-11-06T10:21:15 *** retybok_ has joined #aichallenge 2011-11-06T10:24:23 *** pedrosorio has quit IRC (Quit: Page closed) 2011-11-06T10:27:50 Nothing happens when I print to stderr, why? 2011-11-06T10:28:06 language? 2011-11-06T10:28:24 Python 2011-11-06T10:28:39 thestinger: are you even looking at all the games your bots are playing? :P 2011-11-06T10:28:50 *** HaraKiri has quit IRC (Read error: Connection reset by peer) 2011-11-06T10:28:56 is there not a bug class or something similar there for debugging? 2011-11-06T10:29:52 I wouldn't know really, I know if it dies it'll print out exceptions 2011-11-06T10:30:06 *** u_ has joined #aichallenge 2011-11-06T10:30:10 *** delt0r_ has joined #aichallenge 2011-11-06T10:30:52 lericson: in the cpp bot, theres a bug class which you use for writing any debug messages. works fine for me and I presume there's something similar for the py bot 2011-11-06T10:31:06 ah it seems my bot times out 2011-11-06T10:31:23 conor_f: hm haven't seen anything like that 2011-11-06T10:32:03 lericson: sorry then, I haven't seen the PY bot... 2011-11-06T10:32:09 http://ants.fluxid.pl/replay.23076 2011-11-06T10:32:21 look at row 75 col 42 2011-11-06T10:32:39 from move 235 onwards 2011-11-06T10:32:47 that is damn impressive... 2011-11-06T10:34:17 *** marijnfs has quit IRC (Quit: Changing server) 2011-11-06T10:34:37 *** RasmusL has quit IRC (Ping timeout: 265 seconds) 2011-11-06T10:36:47 conor_f: oh, i've seen similar situation 2011-11-06T10:36:49 lemme find it 2011-11-06T10:37:24 thats pretty cool tbh 2011-11-06T10:37:28 *** Blkt has joined #aichallenge 2011-11-06T10:37:54 *** McLeopold has joined #aichallenge 2011-11-06T10:39:11 conor_f: http://aichallenge.org/visualizer.php?game=45543&user=757 2011-11-06T10:39:24 beautiful spawnkills at the end 2011-11-06T10:41:02 lol 2011-11-06T10:41:10 Fluxid: nice that you had a sole survivor for the last part of the game :P 2011-11-06T10:41:13 a wall of them just come to pwn 2011-11-06T10:41:45 that's pretty impressive 2011-11-06T10:42:26 good evening everyone 2011-11-06T10:43:02 conor_f: yeah, almost got foraging working well 2011-11-06T10:43:02 hey 2011-11-06T10:43:22 looking pretty good to me :) 2011-11-06T10:43:29 I need to make some sort of a defense now 2011-11-06T10:43:32 then can pwn :P 2011-11-06T10:43:43 I just need to limit the % that are allowed to forage 2011-11-06T10:44:17 yeah 2011-11-06T10:44:22 good idea 2011-11-06T10:44:38 what are you doing for defence? 2011-11-06T10:45:02 *** pedrosorio has joined #aichallenge 2011-11-06T10:46:04 conor_f: dunno yet, static defense turned out to be useless so I'll try a swarm-like defense later 2011-11-06T10:47:09 *** yoden has joined #aichallenge 2011-11-06T10:47:16 k 2011-11-06T10:47:38 *** cyphase has quit IRC (Ping timeout: 258 seconds) 2011-11-06T10:52:59 *** bmh has joined #aichallenge 2011-11-06T10:53:00 *** bmh has joined #aichallenge 2011-11-06T10:55:36 splendid replay Fluxid 2011-11-06T10:57:25 bmh: do you guys have a bot yet? 2011-11-06T10:57:38 *** choas has quit IRC (Read error: Operation timed out) 2011-11-06T10:57:53 what makes him get the kills at turn 375? 2011-11-06T10:58:09 caution: which game? 2011-11-06T10:58:18 http://aichallenge.org/visualizer.php?game=45543&user=757 2011-11-06T10:58:26 oh hi there scrollback 2011-11-06T10:59:03 I'm starting over my bot behavior from scratch 2011-11-06T10:59:46 is one of them moving forward but the replay only shows the death? 2011-11-06T10:59:54 caution: if you arrow to turn 376 and then press the '>|' button you'll see it advance into the attack phase where you can see xathis and macelon both moved ants toward each other 2011-11-06T11:00:38 the viewer sort of shows what led to the death before making the ants disappear that way 2011-11-06T11:01:01 *** amanforindia has joined #aichallenge 2011-11-06T11:01:15 anyone got any ideas for a non-static defense? 2011-11-06T11:01:32 yes! 2011-11-06T11:01:36 make your ants swarm around in a certain radius around your hill 2011-11-06T11:01:40 I think Antimony, you had a pretty cool one... 2011-11-06T11:01:55 thestinger: how do you let other ants out then? 2011-11-06T11:02:05 *** Fandekasp has joined #aichallenge 2011-11-06T11:02:12 you can let ants out even if the hill is totally surrounded 2011-11-06T11:02:14 don't let enemy ants get closer to your hill than you are. times N. and assume unseen areas may contain enemy ants so try to minimize those near your hills. 2011-11-06T11:02:28 *** boreus has left #aichallenge 2011-11-06T11:02:36 *** bmh has quit IRC (Quit: bmh) 2011-11-06T11:02:50 caution: how? 2011-11-06T11:02:56 2011-11-06T11:03:02 a1k0n: hmm, that seems a lot harder to implement though... 2011-11-06T11:03:10 move the outer ant and have the inner ant take its place 2011-11-06T11:03:12 i lost 5000 places on the rankings.. it's gonna take a week to get back 2011-11-06T11:03:34 conor_f: well, it depends on what you already have implemented 2011-11-06T11:03:56 a1k0n: I have nothing implemented yet 2011-11-06T11:03:59 defense wise 2011-11-06T11:04:01 a1k0n: I tried something like that... but in the end it just caused my ants to stick around the hill without doing something usefull because the enemy always backed off again... 2011-11-06T11:04:16 do these rankings matter? only the final submitted bot does right? 2011-11-06T11:04:30 amanforindia: correct 2011-11-06T11:04:50 Fluxid: you should purge old games on your tcp server, as a lot of the ranking bots are unassailable because they don't play anymore 2011-11-06T11:04:54 if the enemy backed off the defence worked 2011-11-06T11:05:12 *** olexs has joined #aichallenge 2011-11-06T11:05:15 the only thing I'm keeping is my collision avoidance solver 2011-11-06T11:05:18 caution: only enough to not get killed... just to approach again 2011-11-06T11:05:28 <_flag> Fluxid: I'd like to second a1k0n's proposal 2011-11-06T11:05:33 I decided that my old pathfinding/goal selection was a flawed approach 2011-11-06T11:05:57 caution: until I was weak enough (because my ants were busy guarding the hill instead of exploring/gathering food) to be killed completly 2011-11-06T11:06:18 hmm 2011-11-06T11:06:29 I need to think about these ideas for a while, thanks guys 2011-11-06T11:06:30 so to make it effective you have to use a more offensive hill guarding strategy that doesn't stop you from expanding 2011-11-06T11:06:37 yeah you need to balance conflicting priorities to get your ants to explore 2011-11-06T11:06:42 the old explore/exploit tradeoff 2011-11-06T11:06:50 that was a major problem with my current bot 2011-11-06T11:06:52 *** dvladim has joined #aichallenge 2011-11-06T11:06:55 but for that I'd need good attacking micro management 2011-11-06T11:07:04 the defenders hurt expansion a lot 2011-11-06T11:08:55 *** Migi32 has joined #aichallenge 2011-11-06T11:09:49 any ideas how to promote exploration with influence maps? 2011-11-06T11:10:45 a1k0n: is purging whole db and starting from scratch acceptable? 2011-11-06T11:10:47 _flag: ? 2011-11-06T11:11:30 i dunno about that but maybe everything prior to games a couple days ago? is it hard to re-run the trueskill stuff from scratch on a limited set? 2011-11-06T11:11:37 or like 2011-11-06T11:11:50 keep the games but only include fresh games in the trueskill run 2011-11-06T11:12:15 what's the problem? 2011-11-06T11:12:15 i'm guessing you're not familiar enough with the server's implementation to do that off hand 2011-11-06T11:12:32 check the 'last seen' for most of the bots on http://ants.fluxid.pl/ranking 2011-11-06T11:13:01 new bots have a much larger sigma than the ones that are on there but not playing (and are basically disconnected from the graph of active users) 2011-11-06T11:13:13 *** conor_f has quit IRC (Ping timeout: 260 seconds) 2011-11-06T11:13:19 yeah, I noticed that a few days ago already 2011-11-06T11:13:19 *** olexs1 has joined #aichallenge 2011-11-06T11:13:23 so for instance there's no way anyone's gonna beat greentea 2011-11-06T11:13:30 this is why the Glicko rating system lets sigma increase over time 2011-11-06T11:13:43 a1k0n: wouldn't it be enough to just hide inactive bots from the rankings? 2011-11-06T11:13:57 possibly, yes 2011-11-06T11:14:09 but i'm still worried about what it does to trueskill 2011-11-06T11:14:23 re: large uncertainty in rankings 2011-11-06T11:14:23 because trueskill is designed to give a reliable ranking inependent of what players there are (as far as that is possible) 2011-11-06T11:14:55 so if you recompute everything with some players removed... the skills of the remaining players should be close 2011-11-06T11:14:58 *** bmh has joined #aichallenge 2011-11-06T11:14:58 *** bmh has joined #aichallenge 2011-11-06T11:14:58 *** olexs has quit IRC (Ping timeout: 260 seconds) 2011-11-06T11:15:00 tow hat was there before 2011-11-06T11:15:07 *to what 2011-11-06T11:15:14 oh, yeah, agreed. i thought you were suggesting removing them from the display only 2011-11-06T11:15:22 yeah I was 2011-11-06T11:15:28 because it should be almost the same 2011-11-06T11:15:35 er, right. i see. 2011-11-06T11:15:40 but just removing them from display is easier (probably) 2011-11-06T11:15:40 maybe so. 2011-11-06T11:16:07 a1k0n: i don't want to play with sqlite db to purge old data and keep db consistent 2011-11-06T11:16:18 for me it's easier just to remove db file and restart 2011-11-06T11:16:22 or just sort on mu? The mu-3*sigma is just a lower bound, actually not something you should sort on anyway 2011-11-06T11:17:25 the db is raw sqls, i'd need to understand what is going on in there, but i don't want to do this :) 2011-11-06T11:17:29 Fluxid: I think just hiding everyone who was inactive for should work 2011-11-06T11:18:18 jix: the thought of adding functionality to this code does not make me happy :) 2011-11-06T11:18:22 it's actually sort of impressive how when you sort by mu it groups different versions of the same bot together 2011-11-06T11:19:13 a1k0n, that's mostly coincidence, I think 2011-11-06T11:19:48 i think that means it's working. 2011-11-06T11:20:55 *** HaraKiri has joined #aichallenge 2011-11-06T11:23:49 *** conor_f has joined #aichallenge 2011-11-06T11:25:04 for the final ranking of the contest, will it sort on mu or on mu-3*sigma? 2011-11-06T11:25:37 Migi32: it shouldn't matter much if all players play a similar amount of games 2011-11-06T11:25:38 mu-3*sigma 2011-11-06T11:26:07 but i would expect sigma to be more similar than what it is on fluxid's server 2011-11-06T11:26:18 since a smaller population of bots played for a while and got a nice stable ranking, then stopped 2011-11-06T11:26:21 *** TheLinker has joined #aichallenge 2011-11-06T11:26:34 then everyone else came along 2011-11-06T11:26:52 in implementing pathfinding should i compute the next step every time or just execute from memory? 2011-11-06T11:28:44 amanforindia: I recompute everything at every turn, but if performance is an issue for you caching can certainly improve things. 2011-11-06T11:29:56 ok... 2011-11-06T11:32:49 a1k0n, I don't know too much about trueskill, so I don't really know how much choosing mu-3*sigma over mu would affect the ratings if everyone played a similar amount of games, but still, the system was designed to have mu as the most accurate guess of someone's skill 2011-11-06T11:33:24 agreed; perhaps that's how the final rankings should be decided 2011-11-06T11:34:02 what I'm trying to say is, imagine we were sorting on mu-10*sigma, then consistency in your results becomes very important 2011-11-06T11:34:18 yes, i know what you're saying 2011-11-06T11:34:26 *** aslvrstn has joined #aichallenge 2011-11-06T11:34:50 also, I have now made my bot significantly better than it is on the server, but I don't want to resubmit because it resets my sigma 2011-11-06T11:34:54 subtracting 3*sigma is supposed to enable comparisons of players with many games vs. players with few games 2011-11-06T11:35:06 after the final tournament, that shouldn't be an issue so mu makes more sense 2011-11-06T11:35:26 *** amstan_ has joined #aichallenge 2011-11-06T11:35:29 heh, yes, i just resubmitted and am waiting at #5027 for a game 2011-11-06T11:35:32 last time I reuploaded, my mu was close to what it is now within like 5 games, but after 17 games my sigma is still dropping 2011-11-06T11:35:33 *** ChanServ sets mode: +o amstan_ 2011-11-06T11:35:57 can you see what your mu/sigma is on the production contest site? 2011-11-06T11:36:07 yes 2011-11-06T11:36:25 hover over your skill on your profile 2011-11-06T11:36:32 oh whoa 2011-11-06T11:36:58 *** redjack has joined #aichallenge 2011-11-06T11:36:59 what's in parens? adjustment from last game? 2011-11-06T11:37:04 yes 2011-11-06T11:37:21 *** Rinum has joined #aichallenge 2011-11-06T11:37:24 or no, adjustment caused by the result of this game 2011-11-06T11:37:40 er, yeah. that's what i meant. 2011-11-06T11:38:00 is there an easy way to play a 1v1 vs. another person's bot...? 2011-11-06T11:38:29 hmm, you could pipe the bot through netcat 2011-11-06T11:38:42 *** dscy has quit IRC (Quit: WeeChat 0.3.2) 2011-11-06T11:38:47 ++a1k0n's idea :) 2011-11-06T11:39:34 except you need a bidirectional redirect to the bot somehow 2011-11-06T11:39:47 stdout -> socat(p1) -> network -> socat(p2) -> game 2011-11-06T11:39:51 socat :P 2011-11-06T11:40:21 or just dup the stdin and stdout to a socket 2011-11-06T11:40:23 woo, my sigma is down to 9.5 2011-11-06T11:40:33 is low sigma good? 2011-11-06T11:40:46 yes 2011-11-06T11:40:48 low sigma means there's a good estimate of your score 2011-11-06T11:40:58 i have now played two games 2011-11-06T11:41:17 *** amanforindia has quit IRC (Quit: Leaving) 2011-11-06T11:41:30 and how low is low? 2011-11-06T11:42:08 it looks like 1.3 is about as low as it gets 2011-11-06T11:42:13 i wonder how trueskill would deal with a bot that randomly switches from its usual logic to leftybot in 50% of the games. 2011-11-06T11:42:14 (on the contest site) 2011-11-06T11:42:43 bqf: it'd fit a normal distribution to what is actually a bimodal distribution.. so it'd have a mu halfway between their strengths and a huge sigma 2011-11-06T11:43:12 theory says that ought to work :) 2011-11-06T11:43:21 rewarding low sigma isn't bad, I think. Maybe 3*sigma is just too much 2011-11-06T11:44:13 *** McLeopold has left #aichallenge 2011-11-06T11:45:13 well you can use it to compute likelihood of dominance to compare players. for ranking i'm not sure what the ideal thing to do is 2011-11-06T11:45:13 so all one has to do to get more games on the official servers is to have that switch logic in the bot for the first X games (by not switching anymore after some predefined date) then? ;) 2011-11-06T11:45:24 subtracting 3*sigma is supposed to enable comparisons of players with many games vs. players with few games <- I don't really get what you mean with that 2011-11-06T11:45:27 *** James has joined #aichallenge 2011-11-06T11:45:47 *** yassya has joined #aichallenge 2011-11-06T11:45:47 *** James is now known as stepForward 2011-11-06T11:45:53 hello 2011-11-06T11:45:55 Migi32: since ants is pretty noisy, it's still possible for a shitty bot to beat a slew of really good ones occasionally 2011-11-06T11:46:13 is there a fog a war ? 2011-11-06T11:46:13 Migi32: if he just plays one game he'll have a huge skill but it wouldn't be fair to put him up at #2 or whatever 2011-11-06T11:46:19 stepForward: yep 2011-11-06T11:46:34 a1k0n: this fog of war is very strange 2011-11-06T11:46:42 how so? 2011-11-06T11:46:56 my ants discover somehow some water square for parts of the map 2011-11-06T11:47:01 a1k0n, this can also be fixed by letting people start with low sigma 2011-11-06T11:47:25 Migi32: that implies you have a good estimate of their skill, which you don't 2011-11-06T11:48:26 actually in 90% of the cases, you do, cause it's a starter bot :) 2011-11-06T11:48:32 stepForward: well it's either a bug or the fact that water squares persist after your ants leave the area (as there's no way for a water square to move or change once you've seen it) 2011-11-06T11:48:40 hahah, true 2011-11-06T11:48:59 a1k0n: i'm starting at 32 65 and get info on water like: w 27 62 w 27 65 w 27 66 w 27 68 w 27 69 2011-11-06T11:49:26 sure. your ants can see about eight squares away in a circle 2011-11-06T11:49:40 oh eight square ! 2011-11-06T11:49:46 *** manny has joined #aichallenge 2011-11-06T11:50:02 a1k0n, if you just let good bots start with low sigma, their sigma would first rise, then fall again, but I think they'll get to the top quicker than if they start with this huge sigma of 16.67 2011-11-06T11:50:08 so my a* has to no go beyond 8 square then 2011-11-06T11:50:12 *** manny is now known as Guest75271 2011-11-06T11:50:13 stepForward: dx^2 + dy^2 <= sqrt(77) to be exact 2011-11-06T11:50:14 a1k0n: thx mate ! 2011-11-06T11:50:22 er, 2011-11-06T11:50:27 not sqrt, just 77 2011-11-06T11:50:28 er ? 2011-11-06T11:50:32 it's called viewradius2 2011-11-06T11:50:40 the squared radius your ants can see 2011-11-06T11:50:41 ok 2011-11-06T11:50:44 i'll use that :P 2011-11-06T11:50:57 a1k0n: thx again then :_ 2011-11-06T11:51:19 i could have read the tutorials, but when i play game, i usually avoid manual haha ^^ 2011-11-06T11:51:21 stepForward: but like.. once you've explored a little of the map your A* is going to have to search much farther than that 2011-11-06T11:51:32 since you'll start to reveal all the water, etc 2011-11-06T11:51:35 yep 2011-11-06T11:51:43 *** danielharan has quit IRC (Remote host closed the connection) 2011-11-06T11:52:05 also i'm not sure how to handle the "basic" direction when there's no food 2011-11-06T11:52:39 * stepForward go back in his cave, think about it >< 2011-11-06T11:52:44 have fun 2011-11-06T11:52:54 same for you :P 2011-11-06T11:53:00 *** Antimony has quit IRC (Ping timeout: 244 seconds) 2011-11-06T11:53:50 *** Guest75271 has quit IRC (Client Quit) 2011-11-06T11:56:35 *** danielharan has joined #aichallenge 2011-11-06T11:57:22 a1k0n, coming back to the mu-3*sigma thing, what do you think of proposing these 2 changes: 1. don't reset your rating when you reupload your code and 2. do the final ranking on mu instead of mu-3*sigma 2011-11-06T11:57:48 Is there a tcpserver with a lower thinking time? It would be nice to avoid waiting for the slow bots... 2011-11-06T11:58:36 i agree with 2. 1 is tricky because your rating comes from your bot's games, and this is a new bot. you could alter the prior for the skill distribution though, maybe like give it the same mu but set sigma to 3* the old sigma 2011-11-06T11:58:51 i don't know if that can be gamed or not 2011-11-06T11:59:07 *** ecarpenter84 has joined #aichallenge 2011-11-06T11:59:36 The only way it could be gamed would be by "sandbagging" to artificially inflate everyone elses scores, but doesn't gain you much 2011-11-06T11:59:50 retybok_: the turntime is that high on the tcp servers to avoid running into problems with network lag. 2011-11-06T12:02:06 a1k0n, if you see that you can just disqualify them. Rules say: "Entries which are deemed to violate the spirit of fair and sportsmanlike competition will be disqualified" 2011-11-06T12:02:23 true. it also doesn't help for the actual tournament. 2011-11-06T12:02:32 Since you can't chose your pairings it makes it hard 2011-11-06T12:02:43 if I give a direction not in range (e.g, 5) will my bot stay where it is? 2011-11-06T12:02:48 and it would take friggin' forever. but you'd get more games by resubmitting often. 2011-11-06T12:03:10 (but your sigma would just top out and you'd be in 5000th place so whatever) 2011-11-06T12:03:40 your place in the queue doesn't change when you resumbit 2011-11-06T12:03:51 bqf: in practice though when in games with fast bots we play several turns every second 2011-11-06T12:03:52 i thought it gave you a priority boost for your first game 2011-11-06T12:04:09 it would be nice to have a fast server along with the slow one 2011-11-06T12:04:12 only for your very first game of your first sumbission 2011-11-06T12:04:14 for quick testing 2011-11-06T12:04:18 oh really? nice. 2011-11-06T12:05:52 anyway, it sounds like a feasible solution in theory. i'm pretty sure i remember janzert and McLeopold discussing this issue. i don't know if the trueskill implementation being used is open to having per-user priors 2011-11-06T12:06:35 but it would probably work IMHO 2011-11-06T12:07:14 what's a prior? 2011-11-06T12:07:43 I know you've said it like 3 2011-11-06T12:07:52 times already but I can't find it on google :P 2011-11-06T12:08:35 so if you have to estimate my skill given 10 games, you can take some kind of average 2011-11-06T12:09:02 the prior is what you get when you want to estimate the skill given 0 games. you specify the distribution of likely skills given no other infomration. 2011-11-06T12:09:46 in fact the problem with this approach is that it would limit the amount of skill you can gain per submission because a tighter prior would weakly pull your skill back to what it was last time, rather than pulling it much more weakly towards 50 2011-11-06T12:10:42 and if you use mu=old mu, sigma=11 or whatever the default is, then you're basically getting a small free boost for no gain 2011-11-06T12:11:14 is there a way to know if an area has fog or not ? 2011-11-06T12:11:22 the tutorial covers that 2011-11-06T12:11:24 I think prior is short for "prior information" or "prior knowledge" 2011-11-06T12:11:27 anyway um, if you want to to look it up on wikipedia: http://en.wikipedia.org/wiki/Bayesian_inference 2011-11-06T12:11:27 under exploring 2011-11-06T12:11:34 retybok_: yes 2011-11-06T12:11:39 prior distribution technically 2011-11-06T12:11:49 trueskill assumes normal distributions over skills 2011-11-06T12:11:57 and the prior is mu=50, sigma=a lot 2011-11-06T12:12:00 I was trying to be simple :) 2011-11-06T12:12:05 stepForward, you have to calculate that yourself. It's not in fog if it's further away than sqrt(77) from any of your ants 2011-11-06T12:12:12 retybok_: true. you could talk to Fluxid about it, maybe he would be willing to lower the turntime a bit. 2011-11-06T12:12:21 stepForward, sorry, the other way round 2011-11-06T12:12:39 bqf: maybe I'll volunteer to run a "fast" server when my box is back up 2011-11-06T12:12:55 I understand the need for a slow server for people with bad connections 2011-11-06T12:12:56 a1k0n, but why does trueskill even have to know that you've resubmitted? 2011-11-06T12:13:10 Migi32: because it would suck to have old versions of your bot drag you down 2011-11-06T12:13:11 *** master_ninja has joined #aichallenge 2011-11-06T12:13:12 I don't get this. If you use trueskill for humans, they also get better/worse after each game 2011-11-06T12:13:30 Migi32: because if you don't tell him, you're hiding information from it and violating its assumptions 2011-11-06T12:13:34 but a bot isn't some kind of being learning to play the game 2011-11-06T12:13:38 Migi32: i think, i can set a value on square to define if the square has been viewed or not by one of my ants 2011-11-06T12:13:45 eeach bot is a completely separate program 2011-11-06T12:13:47 retybok_: even someone with a decent connection would run into trouble if the server is halfway around the globe. 2011-11-06T12:14:14 bqf: it's for people who don't care about ranking but just want quick test games 2011-11-06T12:14:25 I certainly don't care about my ranking on the test server 2011-11-06T12:14:27 a1k0n, why does that matter? For trueskill, each player is just a black box 2011-11-06T12:14:57 Migi32: nope, it's designed with real people in mind 2011-11-06T12:15:07 thx everyone 2011-11-06T12:15:17 also, it's not like it's a new bot written by a different person. It's probably fairly similar to the previous version 2011-11-06T12:15:31 if you want to measure the performance of a given program, it makes no sense to include previous incarnations of the program in your estimation 2011-11-06T12:15:36 stepForward, yes, setting a flag for each square is what most bots do 2011-11-06T12:15:43 stepForward: http://aichallenge.org/ants_tutorial_step_4.php 2011-11-06T12:15:49 it covers keeping a list of unseen areas 2011-11-06T12:16:01 yes it's probably similar so you can make some assumptions to speed up convergence but to do so introduces small biases 2011-11-06T12:16:08 you can move that list into your do_turn and it will only keep track of what is unseen on that specific turn 2011-11-06T12:16:23 ecarpenter84: i usually avoid tutorials for game, i should probably go check it :P as long as it is a particular game 2011-11-06T12:16:41 the sample bot isnt finished 2011-11-06T12:16:42 upon further reflection i have to say i agree with the current situation, even though it really sucks to wait a week. it'd be better just to have more servers 2011-11-06T12:16:50 btw does the server handle multiple connections under the same user? as in it doesn't try to pair me with myself? 2011-11-06T12:17:44 a1k0n: I guess the idea is to use the tcp server to develop your bot and only upload major improvements to the main server 2011-11-06T12:18:09 "A" completely destroys my bot :( 2011-11-06T12:18:32 that's what i'm doing 2011-11-06T12:18:35 *** Belerafon has joined #aichallenge 2011-11-06T12:18:39 <_flag> xathis completely destroys my bot :( 2011-11-06T12:18:40 thestinger: i know, isn't he irritating? 2011-11-06T12:18:56 everyone not using the starter package completly destroys my bot :( 2011-11-06T12:19:16 i think my bot does better against xathis than _flag's 2011-11-06T12:19:16 <_flag> Well, most of the time anyway 2011-11-06T12:19:20 <_flag> I win a few 2011-11-06T12:19:28 er than it does against _flag's, rather 2011-11-06T12:19:29 <_flag> a1k0n: xathis is less agressive 2011-11-06T12:19:41 i can win against him if he times out 2011-11-06T12:19:47 <_flag> haha 2011-11-06T12:19:52 :) 2011-11-06T12:20:22 *** praveen_ has joined #aichallenge 2011-11-06T12:20:29 sir_macelon has scored better than me in two of my 6 latest game 2011-11-06T12:20:33 really need to fix this problem: http://ants.fluxid.pl/replay.23133 turn 1086+ 2011-11-06T12:21:03 <_flag> xathis: Is the bot you're using on tcp newer than the one on the main server or the same thing? 2011-11-06T12:21:10 *** zorun has left #aichallenge 2011-11-06T12:21:36 _flag: it's the same 2011-11-06T12:21:53 *** Antimony has joined #aichallenge 2011-11-06T12:21:57 i don't have much time atm, i have ideas what to improve 2011-11-06T12:22:13 *** danielharan has quit IRC (Remote host closed the connection) 2011-11-06T12:22:15 a1k0n: that was pretty sad and probably painful to watch :) 2011-11-06T12:22:15 are you really xathis? 2011-11-06T12:22:37 Anttimony: i am :) 2011-11-06T12:22:41 yup. second time i've seen it happen 2011-11-06T12:23:02 is it a bug or is your bot simply lacking the feature? 2011-11-06T12:23:16 no, it's a bug 2011-11-06T12:23:25 it knows what's going to happen and it does it anyway 2011-11-06T12:23:33 I have issues too, a small bug I discovered that makes it "spastic" on some big maps: http://aichallenge.org/visualizer.php?game=65756&user=7617 2011-11-06T12:24:05 it was a really small fix, and I want to upload it because it looks so embarrassing, but I can't because it resets rating :/ 2011-11-06T12:24:37 haha 2011-11-06T12:24:50 my bot doesn't know anything about other ants yet. I find that part the most challenging by far 2011-11-06T12:25:48 Hi. What about attack radius? I get "attackradius2", calc float sqrt from it and calc float distances to enemy. And what? Simply compare it? 2011-11-06T12:26:22 Belerafon: http://aichallenge.org/specification_battle.php 2011-11-06T12:26:37 Belaferon, you don't really need float. If you just test (x1-x2)^2 + (y1-y2)^2 <= attackradius2 you can work with only ints 2011-11-06T12:26:44 how can I make an ant stay where they are? 2011-11-06T12:26:52 conor_f: don't move it? 2011-11-06T12:27:09 thanks 2011-11-06T12:27:10 easiest question all morning 2011-11-06T12:27:15 :D 2011-11-06T12:27:17 lol 2011-11-06T12:27:27 just pretend each ant has 5 moves 2011-11-06T12:27:32 where the 5th is to not make a move 2011-11-06T12:27:44 n,e,s,w,gtfo! 2011-11-06T12:27:47 I mean what do I give to getLocaion/makeNextMove to make it stay still? 2011-11-06T12:27:52 nothing 2011-11-06T12:27:54 don't call it 2011-11-06T12:28:09 you could pass it an invalid value but that's kind of bad design 2011-11-06T12:28:30 I keep a set of lazy_ants which I need to prevent collisions :P 2011-11-06T12:28:37 ty Antimony 2011-11-06T12:28:45 collision prevention is the one thing my bot does well 2011-11-06T12:28:58 it can manage 5x5 squares without any collision 2011-11-06T12:29:16 I prevent collision by not allowing an ant to move where another ant moved already... unless... there is no other move... which sucks as collision prvention 2011-11-06T12:29:21 however, it's almost never useful to make an ant stay still, right? Always keep them moving 2011-11-06T12:29:31 jix: same :P 2011-11-06T12:29:33 no it's often useful 2011-11-06T12:29:37 Migi32: defense 2011-11-06T12:29:37 just finished my last exam for the year :D 2011-11-06T12:29:45 woot, congrats :D 2011-11-06T12:29:46 I never have collisions because my step() function won't allow a move to a tile with an ant that doesn't have an order 2011-11-06T12:29:46 *** nullkuhl has joined #aichallenge 2011-11-06T12:29:50 now get hammered antimatroid ;) 2011-11-06T12:29:57 but that's just a fallback for the real movement/anti-collision code 2011-11-06T12:29:59 if my ants cant make the move they were supposed to. i have them randomly try each direction until one works 2011-11-06T12:30:01 i used to have a dependency chain of ants... now it's just representationally impossible for them to collide 2011-11-06T12:30:06 conor_f: it's 4:30am and i have to hand it in at 11am :P 2011-11-06T12:30:12 and i still have to give a 50 minute talk thursday 2011-11-06T12:30:27 mine creates a full graph of ants and does constraint satisfaction 2011-11-06T12:30:29 why are you doing an exam at 04:30... 2011-11-06T12:30:31 but it takes almsot the whole time 2011-11-06T12:30:33 hello, are there any offline visualizers for the ants game ? 2011-11-06T12:30:37 it's a 48 hour take home exam 2011-11-06T12:30:46 i just finished off the last few parts that had been ruining me 2011-11-06T12:30:47 conor_f, last I checked the world is round 2011-11-06T12:30:49 wow, those sound brutal 2011-11-06T12:30:54 ... still doesn't answer the question :P 2011-11-06T12:30:58 they're mega brutal 2011-11-06T12:31:06 but i prefer it to sit in exams 2011-11-06T12:31:06 Oh wait 2011-11-06T12:31:22 @seen roflmao 2011-11-06T12:31:22 conor_f: roflmao was last seen in #aichallenge 1 day, 16 hours, 50 minutes, and 10 seconds ago: what's up pair? 2011-11-06T12:31:29 :/ 2011-11-06T12:31:32 48 hours? That probably turns out to be 48 hours straight for many people 2011-11-06T12:31:47 damn it... my bots keep killing each other 2011-11-06T12:31:50 whats the point in a take home exam lol? 2011-11-06T12:31:55 nah it's not that bad, if you try and get more than half done the first day you should be alright 2011-11-06T12:31:56 I can has interwebz? 2011-11-06T12:32:01 but take at home? can't you discuss answers with friends etc? 2011-11-06T12:32:03 conor_f: prove all the things :P 2011-11-06T12:32:08 weird, my bot failed to start 2011-11-06T12:32:12 proofs :3 2011-11-06T12:32:42 *** ecarpenter84 has quit IRC (Quit: Page closed) 2011-11-06T12:32:44 http://ants.fluxid.pl/replay.23194 I wanted to see if combat had improved and instead I had to watch my version with foraging totally fail at it 2011-11-06T12:32:49 i hope to never think about jacobson radicals again 2011-11-06T12:32:52 wish I had take home exams lol 2011-11-06T12:32:59 I just had an idea for exploration 2011-11-06T12:33:08 instead of trying to code exploration directly 2011-11-06T12:33:15 I'll just create some fake food in the unexplored region 2011-11-06T12:33:17 Migi32: you could cheat, but they trust us not to 2011-11-06T12:33:25 they are fools lol ;) 2011-11-06T12:33:28 or give rich a people free pass, because they can pay smart people to make the exam for them? 2011-11-06T12:33:28 there's only 3 people in the class, and both already did the exam last week i think :P 2011-11-06T12:33:32 why would you cheat? 2011-11-06T12:33:44 because you want to do good? 2011-11-06T12:33:47 it would probably also be pretty obvious if we all did everything the same 2011-11-06T12:33:59 wow, only 3 in a class :O 2011-11-06T12:34:21 conor_f: grad maths classes at a fairly small uni :P 2011-11-06T12:34:31 In highschool, my math teacher created a class for me where I was the only one, since I was a year ahead 2011-11-06T12:34:37 and she had me grade my own tests even 2011-11-06T12:34:56 antimatroid: explains a lot :P 2011-11-06T12:35:00 the analysis lecturer at my uni did that one semester for just a friend because he wanted to graduate a semester early :P 2011-11-06T12:35:09 Antimony: that's harsh, grading your own exams... 2011-11-06T12:35:20 no, took the class with him as the only student 2011-11-06T12:35:25 she marked his assignments and exam 2011-11-06T12:35:32 oh, my bad >_< 2011-11-06T12:35:35 yeah, the tough part is deciding how much extra credit to give 2011-11-06T12:35:50 it's so nice when you get everything right because then there's no need to worry about grading 2011-11-06T12:35:51 without being too obvious :P 2011-11-06T12:35:57 hello, are there any offline visualizers for the ants game ? 2011-11-06T12:36:01 sorry, not extra credit, I mean partial credit 2011-11-06T12:36:13 yeah i think i got 100% on my topology exam, only time i've ever been confident on that 2011-11-06T12:36:14 nullkuhl: did you checkout the starter kits? 2011-11-06T12:36:22 nullkuhl: yes, you can play the game locally 2011-11-06T12:36:22 probably more like 95+ on this one i just finished 2011-11-06T12:36:34 What name of bot "A" on aichallenge.org? 2011-11-06T12:36:38 *** whoishere has joined #aichallenge 2011-11-06T12:36:51 Belerafon: that's FlagCapper, flag_ in irc here 2011-11-06T12:36:59 ok 2011-11-06T12:37:50 meh, building the next layer for my bot is always slow… (and I'm always complaining I'm doing it too slow) 2011-11-06T12:38:18 *** nullkuhl has quit IRC () 2011-11-06T12:39:37 *** ISpecies has joined #aichallenge 2011-11-06T12:41:43 is there any way to skip a load of text in more? 2011-11-06T12:41:48 or less for that matter 2011-11-06T12:42:28 conor_f: for what? 2011-11-06T12:42:41 skipping to turn 30 2011-11-06T12:42:44 in debug.txt 2011-11-06T12:42:53 *** mleise has joined #aichallenge 2011-11-06T12:42:56 does search help? :-) 2011-11-06T12:43:07 conor_f: page down / page up 2011-11-06T12:43:22 shit... 2011-11-06T12:43:26 ty both of you 2011-11-06T12:43:34 ctrl-U and ctrl-D do a half page like vi/vim 2011-11-06T12:43:57 well, in 'less' 2011-11-06T12:44:00 don't use 'more' :P 2011-11-06T12:44:05 less is more 2011-11-06T12:44:10 *** Belerafon has quit IRC (Remote host closed the connection) 2011-11-06T12:44:25 heh, yeah :P 2011-11-06T12:44:42 and ofc '/' to search 2011-11-06T12:45:02 yeah 2011-11-06T12:45:30 * avdg wonders about search and page down combined :-) 2011-11-06T12:46:16 _flag: ha you resubmitted too 2011-11-06T12:47:14 wtf? 2011-11-06T12:47:48 it looks like my Ant constructer is getting run for every ant, even the ones already made..... 2011-11-06T12:47:56 ahh, I know 2011-11-06T12:47:57 nvm 2011-11-06T12:47:58 *** cafaro has joined #aichallenge 2011-11-06T12:48:06 *** jerez_z has joined #aichallenge 2011-11-06T12:48:17 wow, that would be a huge cost I believe 2011-11-06T12:49:05 why? 2011-11-06T12:49:57 can I /msg someone about a bit of an issue I just found in my bot. need someone to help me logic it out 2011-11-06T12:50:11 *** hacklash has joined #aichallenge 2011-11-06T12:50:15 it should just be an allocation and some initialization code, not expensive unless the init code calls something heavy 2011-11-06T12:51:11 I'm having a problem with my bot timing out 2011-11-06T12:51:40 Got to do an assignment now. But my mind is thinking about this only, in fact I am not doing either :) and just watching this. 2011-11-06T12:51:49 it's in Java and I think that the problem is Garbage Collection takes longer than my turn 2011-11-06T12:52:00 hacklash: you can check how much time remains of each turn with the starting kit 2011-11-06T12:52:21 I'm using that to track how long I have left 2011-11-06T12:52:30 fine, I'll just ramble along in here... 2011-11-06T12:52:41 gc shouldn't take long unless you have huge amounts of objects in a big graph 2011-11-06T12:52:49 and a subroutine that usually takes 2 ms never completes and I time out with ~700ms left 2011-11-06T12:53:09 I need to keep track of individual ants as I've stored vars for them in a class instance for them 2011-11-06T12:53:19 sounds like a bug, infinite loop probably 2011-11-06T12:53:30 i'm not sure the server is giving java bots the correct heap size 2011-11-06T12:53:30 i guess its possible 2011-11-06T12:53:46 i've been having the same gc issues; runs fine locally with -Xmx900m 2011-11-06T12:53:49 times out on server 2011-11-06T12:53:59 but the way that ants are "kept track" of by the game state is just if theres an ant there, add 1 to the number of ants you have 2011-11-06T12:54:02 does your bot use that much memory? 2011-11-06T12:54:06 which isn't good enough for me. 2011-11-06T12:54:22 me or yoden? i don't know 2011-11-06T12:54:36 I need to find a way to keep using the original instances of the ants 2011-11-06T12:54:40 any ideas? 2011-11-06T12:54:43 hacklash: both :p 2011-11-06T12:55:02 conor_f: keep track of their locations 2011-11-06T12:55:04 meh, the java gc is fast 2011-11-06T12:55:09 use all the memory you can xD 2011-11-06T12:55:10 not sure how to profile how much memory is being used. Is there an easy way? 2011-11-06T12:55:17 conor_f: compare with their new locations when the turn begins 2011-11-06T12:55:19 hacklash: use visualvm 2011-11-06T12:55:23 remember where you move the ants and compare those locations with the new ones from the next turn 2011-11-06T12:55:25 ok 2011-11-06T12:55:34 conor_f: have a grid of pointers to your instances and move the pointers everytime you move your ants 2011-11-06T12:55:35 Minthos: that's awkward and ugly though... 2011-11-06T12:55:44 basically what ikaros said 2011-11-06T12:55:50 conor_f: it's pretty much the only way to do it 2011-11-06T12:56:02 and how do I loop through each ant to get it's next move? 2011-11-06T12:56:30 I store the moves separately when I issue an order 2011-11-06T12:56:35 just when you call your move function.. and its successful add the new location to a hash or sth 2011-11-06T12:56:36 so I know where each ant plans to go 2011-11-06T12:57:40 bleh, there must be a better way to do it... 2011-11-06T12:58:20 where does it get decided that one of my ants eat some food and that I get a new ant? 2011-11-06T12:59:33 in the server 2011-11-06T12:59:47 :/ no good so 2011-11-06T13:00:36 ug I keep getting a compile error for some random system header 2011-11-06T13:00:45 that defined "rad1" as a macro! 2011-11-06T13:02:14 *** retybok_ has quit IRC (Ping timeout: 244 seconds) 2011-11-06T13:02:23 In all the games I've played (3) since I uploaded my bot I've beaten my oponents ranked way higher then me, should my ranking not be brought up to above them? 2011-11-06T13:02:37 *** master_ninja has quit IRC (Ping timeout: 240 seconds) 2011-11-06T13:02:38 e.g me ranked 3,248th beats people ranked in the 500s 2011-11-06T13:02:47 should I not be moved up to the 500s? 2011-11-06T13:03:07 conor_f: technically you are. if you hover over your skill number you'll see its breakdown by mu and sigma 2011-11-06T13:03:13 conor_f: Give the ranking algorithm some time. It needs to be assured of your skill ;) 2011-11-06T13:03:16 yeah 2011-11-06T13:03:18 *** epicmonkey has quit IRC (Remote host closed the connection) 2011-11-06T13:03:19 :P mleise 2011-11-06T13:03:32 *** epicmonkey has joined #aichallenge 2011-11-06T13:03:43 my sigma is low, doesn't that mean that my ranking is pretty accurate? 2011-11-06T13:04:03 how low is low? 2011-11-06T13:04:18 4.5 2011-11-06T13:04:24 that's pretty high 2011-11-06T13:04:29 oh, ok 2011-11-06T13:04:32 it'll be like 1.5 after convergence 2011-11-06T13:04:32 grand so :P 2011-11-06T13:04:44 ah, ok 2011-11-06T13:04:57 ty 2011-11-06T13:05:44 Antimony: why did you make this starter kit so awkward to work with!! ;) 2011-11-06T13:06:09 *** choas has joined #aichallenge 2011-11-06T13:06:25 I didn't make the starter kit 2011-11-06T13:06:39 :/ 2011-11-06T13:06:40 but the C++ starter kit definitely has some questionable coding practices 2011-11-06T13:06:53 ahh, antimatroid 2011-11-06T13:06:55 :p 2011-11-06T13:07:03 my bad, irssi tab completion fail 2011-11-06T13:07:14 maybe when I'm done I'll upload a better starter kit 2011-11-06T13:07:18 what's so awkward? :P 2011-11-06T13:07:34 well for one thing, the timer causes windows headers to be included everywhere 2011-11-06T13:07:42 which defines rad1 as a macro 2011-11-06T13:07:45 yeah the timer was a pita 2011-11-06T13:07:53 just use pimpl 2011-11-06T13:08:10 also, why use clock() and not QueryPerformanceCounter? 2011-11-06T13:08:18 why wouldn't you just have an ant class and say if it's dead or alive, instead you just count how many ants you have with no idea of who they were before :P 2011-11-06T13:08:28 because QueryPerformanceCounter is a windows-specific function? 2011-11-06T13:08:32 you shouldn't care about dead ants 2011-11-06T13:08:33 Antimony: i don't know much about timers :P 2011-11-06T13:08:35 gettimeofday() is actually deprecated in POSIX:2008 2011-11-06T13:08:40 I was surprised 2011-11-06T13:08:49 they have nicer clock_ functions now though 2011-11-06T13:08:55 alk0n, I'm referring to the windows timer 2011-11-06T13:09:06 the mac/linux uses something different 2011-11-06T13:09:11 Antimony: I actually care about tracking my ants though, so I can say where they've been, what sort they are, etc 2011-11-06T13:09:36 I track ants too, but I don't keep track of dead ones 2011-11-06T13:09:44 how do you do it so? 2011-11-06T13:10:00 keep track of their previous locaion + dest location + current location? 2011-11-06T13:10:13 each ant has a pos and a next 2011-11-06T13:10:17 at the start of the turn 2011-11-06T13:10:21 *** Naktibalda has joined #aichallenge 2011-11-06T13:10:22 if the next isn't among the seen ants, it is removed 2011-11-06T13:10:41 and then it creates a new agent for every seen ant that wasn't matched to an existing agent 2011-11-06T13:11:23 so a for loop for every ant currently on the board, then a second one for every ant in the class 2011-11-06T13:12:02 then if ant on board's location != any ant in the class's next loc 2011-11-06T13:12:06 add it 2011-11-06T13:12:38 else, if it is, set some bool value 2011-11-06T13:12:39 http://ants.fluxid.pl/replay.23256 :D 2011-11-06T13:12:42 starting to work 2011-11-06T13:13:00 then once you've gone through them all, remove all ants in the class without the value set? 2011-11-06T13:13:09 *** praveen_ has quit IRC (Ping timeout: 265 seconds) 2011-11-06T13:14:20 thestinger: nice how they group together :) 2011-11-06T13:14:32 a1k0n, I thought some more about the issue with priors and how you could be at a disadvantage, and I think I understand it now. I agree that setting the prior to your current mu/sigma would be bad. But what I'm proposing is to keep the prior at mu=50, s=16.67 and let the current rating stay the same (or in other word: doing nothing at all) 2011-11-06T13:15:30 makes sense? 2011-11-06T13:15:33 Migi32: ...er? what happens after your first game of your second submission? 2011-11-06T13:15:58 *** Antimony has quit IRC (Ping timeout: 252 seconds) 2011-11-06T13:16:03 the same as what would've happened if this was the next game of your previous submission 2011-11-06T13:16:39 only it was played with the new version of your bot 2011-11-06T13:16:41 then if your old submission was terrible and your new one is awesome, then you are forever sandbagged by your old games 2011-11-06T13:17:30 *** ISpecies has quit IRC (Ping timeout: 265 seconds) 2011-11-06T13:17:54 when the last words of my sister before she's suddenly offline are "Oh shit" 2011-11-06T13:17:58 what could that mean? 2011-11-06T13:18:24 ok, apparently I still don't get it. How can you be forever sandbagged? Once your mu increases to its real rating, how are these past games a disadvantage? 2011-11-06T13:19:50 *** Tumi_ has left #aichallenge 2011-11-06T13:19:59 trueskill works with only the current mu/sigma, right? 2011-11-06T13:21:12 i guess i was assuming it does batch updates based on game histories rather than being completely offline but i'm probably mistaken there 2011-11-06T13:21:19 er, online 2011-11-06T13:22:03 no, I'm probably the one who's mistaken 2011-11-06T13:22:16 I thought this was the reason Whole History Ratings were invented 2011-11-06T13:22:16 mleise, could be any of a million things 2011-11-06T13:22:18 Migi32: no you are right 2011-11-06T13:22:35 it only works with mu/sigma and indeed should adapt fast 2011-11-06T13:23:14 but not as fast as it does if you reset the values 2011-11-06T13:24:05 pairofdice: i bet either a hotplate in the kitchen was on and she stumbled over the power cord or she spilled a glas of water 2011-11-06T13:24:06 jix, that's only true if your new version is indeed way better than your current version 2011-11-06T13:24:44 yeah, in that case a new submission could just double sigma or something to give it more freedom of motion for the first couple games 2011-11-06T13:25:14 Last time she destroyed her keyboard with focussed sun rays by a makeup mirror 2011-11-06T13:27:23 is there a list of resources somewhere, like tcp servers and stuff? 2011-11-06T13:27:37 Migi32: it will always converge 2011-11-06T13:27:38 *** tmandry has joined #aichallenge 2011-11-06T13:27:38 *** tmandry has joined #aichallenge 2011-11-06T13:28:13 oh these sun rays converged to a small spot, believe me 2011-11-06T13:28:24 heh 2011-11-06T13:28:53 *** twymer has quit IRC (Quit: leaving) 2011-11-06T13:29:21 *** awildturtok has joined #aichallenge 2011-11-06T13:38:11 *** UncleVasya has joined #aichallenge 2011-11-06T13:38:13 *** ajf|offline has quit IRC (Ping timeout: 240 seconds) 2011-11-06T13:41:22 *** hacklash has left #aichallenge 2011-11-06T13:41:59 *** RasmusL has joined #aichallenge 2011-11-06T13:42:23 ach 2011-11-06T13:42:58 guys, I've forgotten how to pass variables to a constructer when it's in a vector.push_back() again >_< 2011-11-06T13:43:11 so when did the DST happen? 2011-11-06T13:43:19 2am local time 2011-11-06T13:43:24 today? 2011-11-06T13:43:29 this AM 2011-11-06T13:43:33 slash last night, whatever 2011-11-06T13:43:54 did DST not happen ~a week ago? 2011-11-06T13:43:56 yeah.. all my clocks are in sync, so i have no idea, lol 2011-11-06T13:44:08 :P 2011-11-06T13:44:12 microwave time might be changed though 2011-11-06T13:44:15 in the US it got pushed back to the first week in November a couple years ago 2011-11-06T13:44:22 sorry, .us is different 2011-11-06T13:44:48 i have an analog radio controlled clock. it wakes me up when the change happens ssssrrrrrrrr..... 2011-11-06T13:45:12 so I'm not going to get any sympathy again for messing up? :P 2011-11-06T13:45:12 heh i have one of those too 2011-11-06T13:45:29 it happened from saturday's night to sunday's morning 2011-11-06T13:46:04 conor_f: what do you mean? 2011-11-06T13:46:22 how about simply passing it? 2011-11-06T13:46:32 yeah 2011-11-06T13:46:49 but what happens is it gets passed to the vector constructer instead of the class constructer 2011-11-06T13:47:03 *** Antimony has joined #aichallenge 2011-11-06T13:47:22 nvm 2011-11-06T13:47:26 myvector.push_back(myclass(carg)) 2011-11-06T13:47:30 yeah 2011-11-06T13:47:34 got it eventually 2011-11-06T13:47:35 ty 2011-11-06T13:47:43 *** ccc has joined #aichallenge 2011-11-06T13:47:44 what? if you vector.push_back(Foo(x,y,z)) it constructs a Foo and then Foo's copy constructor copies the temporary into the vector 2011-11-06T13:48:01 and hopefully that all gets inlined and optimized away 2011-11-06T13:48:22 dont you think the move constructor is being called? 2011-11-06T13:48:40 whatever you want to call the Foo(const Foo &) constructor 2011-11-06T13:48:49 at least in c++11 2011-11-06T13:49:07 C++11 defines a move constructor separate from the copy constructor and operator=? 2011-11-06T13:49:15 *** analyst74 has quit IRC (Quit: HydraIRC -> http://www.hydrairc.com <-) 2011-11-06T13:49:22 yep, there are default move constructors 2011-11-06T13:49:22 a1k0n: all I know is that it works :P 2011-11-06T13:49:22 is it a bad idea to use the methods in the supplied Ants file? i mean mostly in terms of speed 2011-11-06T13:49:24 I feel like the values python's pow() gives depend on the phases of the moon 2011-11-06T13:49:38 huh, sure enough 2011-11-06T13:50:29 *** dvladim has quit IRC (Ping timeout: 240 seconds) 2011-11-06T13:51:00 *** ajf|offline has joined #aichallenge 2011-11-06T13:51:26 *** ajf|offline is now known as Guest14629 2011-11-06T13:51:41 whoa, i lasted 700 turns on the tcp server 2011-11-06T13:52:18 *** redjack has quit IRC (Ping timeout: 265 seconds) 2011-11-06T13:52:41 *** master_ninja has joined #aichallenge 2011-11-06T13:53:02 Moving an ant diagonally (e.g., ne or sw) takes atleast 2 turns right 2011-11-06T13:53:04 +? 2011-11-06T13:53:20 yeh 2011-11-06T13:53:22 *yeah 2011-11-06T13:53:31 ok 2011-11-06T13:54:07 *** goffrie has joined #aichallenge 2011-11-06T13:57:24 *** olexs1 has quit IRC (Quit: Leaving.) 2011-11-06T13:58:32 *** ProperChaos has joined #aichallenge 2011-11-06T13:59:52 *** ben---- has quit IRC () 2011-11-06T14:01:37 *** jacob_strauss has joined #aichallenge 2011-11-06T14:02:28 *** stepForward has quit IRC (Ping timeout: 265 seconds) 2011-11-06T14:06:41 :/ the constructer isn't actually being called 2011-11-06T14:07:07 *** olexs has joined #aichallenge 2011-11-06T14:07:38 *** wombot_ has joined #aichallenge 2011-11-06T14:09:51 I think I've finally fixed my c++ bot :) doesn't timeout anymore 2011-11-06T14:10:15 goodbye python, you slowpoke 2011-11-06T14:12:04 *** conor_f has quit IRC (Ping timeout: 252 seconds) 2011-11-06T14:12:51 someone called his destructor though 2011-11-06T14:14:01 *** the-mgt has joined #aichallenge 2011-11-06T14:14:36 *** capa has joined #aichallenge 2011-11-06T14:16:17 How to run a php bot? 2011-11-06T14:18:48 what to put instead of "python HunterBot.py" to run a php bot in the tutorial.cmd ? 2011-11-06T14:19:52 the command of the php interpreter if there's such a thing 2011-11-06T14:20:07 yes, "php foo.php" 2011-11-06T14:20:15 *** choas has quit IRC (Ping timeout: 248 seconds) 2011-11-06T14:20:16 *** morsil has joined #aichallenge 2011-11-06T14:20:33 hey 2011-11-06T14:20:36 *** dvladim has joined #aichallenge 2011-11-06T14:20:42 hey 2011-11-06T14:20:58 a1k0n: what i said about the move contructor, i think it is not being called in that case 2011-11-06T14:21:24 *** morsil has quit IRC (Client Quit) 2011-11-06T14:21:32 it sounds like it was invented for that case 2011-11-06T14:21:49 well, for returning big objects wo copying 2011-11-06T14:22:03 9 players on this map? geez 2011-11-06T14:22:05 but as i read upon it, i dont see mention of it for stl containers 2011-11-06T14:22:32 *** HaraKiri has quit IRC () 2011-11-06T14:24:32 *** Saulzar has quit IRC (Ping timeout: 260 seconds) 2011-11-06T14:24:37 *** Antimony_ has joined #aichallenge 2011-11-06T14:25:51 *** djr_ has joined #aichallenge 2011-11-06T14:26:12 *** Antimony has quit IRC (Ping timeout: 260 seconds) 2011-11-06T14:26:17 *** Antimony_ is now known as Antimony 2011-11-06T14:28:28 vector( vector&& other ) 2011-11-06T14:28:39 ok, there it is, i just wasnt looking hard enough 2011-11-06T14:29:03 *** Printz has joined #aichallenge 2011-11-06T14:29:50 Hey just wondering, which language would be easier to get a grasp of faster java or python? 2011-11-06T14:30:59 yes, definitely 2011-11-06T14:31:29 Printz: it depends on what languages you already know. if you're just starting out, python is probably a good idea - it tends to look a lot like pseudo-code ;) 2011-11-06T14:31:49 true dat 2011-11-06T14:31:53 Printz: Python 2011-11-06T14:32:03 and you dont have to think in terms of "classes" 2011-11-06T14:32:37 but if i were you, i would probably learn java cause its faster 2011-11-06T14:33:30 Hmm... Sounds reasonable, 2011-11-06T14:33:31 meh, a fast language only compensate performance, if you can deal with the performance part, its no problem for using a high level language 2011-11-06T14:35:05 fast languages can actually be slower, dependent on the implementation 2011-11-06T14:35:12 i would say get confortable with java, than learn clojure 2011-11-06T14:35:37 maybe the other way around is better 2011-11-06T14:36:07 *** cyphase has joined #aichallenge 2011-11-06T14:36:41 i know you all gonna hate me, but i consider python a scripting language, i.e. for writing disposable scripts 2011-11-06T14:36:43 well, its still the developer who has to make the choice ;-) 2011-11-06T14:37:00 nothing wrong with that part 2011-11-06T14:37:15 if you want speed, use C++, not JAva 2011-11-06T14:37:17 mcstar: clojure is dynamically typed too 2011-11-06T14:37:27 if you want something that's easy to learn and code in, use Python 2011-11-06T14:37:38 if you hate yourself, use Java 2011-11-06T14:37:53 thestinger: after you get comfortable in java, you can write performance critical parts in java, and call them from clojure 2011-11-06T14:38:04 i think its a very nice symbiosis in principle 2011-11-06T14:38:11 maybe we shouldn't allow people to answer "what language should i use" questions 2011-11-06T14:38:12 lol 2011-11-06T14:38:21 maybe :-) 2011-11-06T14:38:31 just becomes a baseless flamewar every time 2011-11-06T14:38:34 mcstar: that's the same idea with C extensions and CPython - and it sucks 2011-11-06T14:38:42 mcstar: scala is competitive in speed with java - why not use that? :P 2011-11-06T14:38:58 thestinger: because its not a lisp 2011-11-06T14:39:01 the path of the least resistance is mostly the best one :-) 2011-11-06T14:39:05 thestinger: if you're used to do a lot of metaprogramming.... 2011-11-06T14:39:43 (unless you hit things you can't do with that path) 2011-11-06T14:39:43 thestinger: you can give type hints in clojure, although ive neve tried it 2011-11-06T14:39:46 i just started using Python because of aichallenge 2011-11-06T14:39:47 not sure if i like it :) 2011-11-06T14:39:56 Python is awesomex 2011-11-06T14:40:04 thestinger: as clojure gets better, java will jit optimize more and more things too 2011-11-06T14:40:06 it's okay.. :D 2011-11-06T14:40:09 I wonder which language is actually performing the worst 2011-11-06T14:40:21 define "performing" 2011-11-06T14:40:22 python is the easiest language to use that I know of 2011-11-06T14:40:32 slow, unhandy, crashes? 2011-11-06T14:40:33 lets say iterations 2011-11-06T14:40:40 tbh it's not much easier than c++ 2011-11-06T14:40:49 what is the saddest language? 2011-11-06T14:40:50 avdg: c64 basic? 2011-11-06T14:40:55 that is pretty slow 2011-11-06T14:41:01 are you kidding? 2011-11-06T14:41:08 LOLCode! 2011-11-06T14:41:10 to me it isn't :/ 2011-11-06T14:41:21 i have to read the python docs constantly haha 2011-11-06T14:41:27 hmm, does lolcode even work? 2011-11-06T14:41:33 sure 2011-11-06T14:41:35 well, you know C++ - you can't compare the ease of a language you know to one you' 2011-11-06T14:41:36 go ahead 2011-11-06T14:41:39 you're learning* 2011-11-06T14:41:40 all you really need to know are map and list comphrehensions 2011-11-06T14:41:52 I know C++ and I still think Python is easier 2011-11-06T14:41:59 I've been doing C++ for years 2011-11-06T14:42:13 yeah me too, might be why im biased 2011-11-06T14:42:21 im just waiting for someone to write a bot in J 2011-11-06T14:42:34 if i have to call class methods from within another class method, do i HAVE to write self.method? :( 2011-11-06T14:42:40 yes 2011-11-06T14:42:49 uglyyy 2011-11-06T14:43:03 RasmusL: not ugly, good style 2011-11-06T14:43:12 well that's the tradeoff of allowing variable declarations 2011-11-06T14:43:21 you have to have a way to distinguish scope 2011-11-06T14:43:34 so x creates a global and self.x creates a member 2011-11-06T14:43:50 that's the same in JavaScript 2011-11-06T14:43:56 Well.. i just can't make the python code work, it will excute, but getting lone survivor after first round... after trying to use the avoid collision code, u guys know a way? 2011-11-06T14:44:03 python definitely gets too much attention here, sad 2011-11-06T14:44:03 Antimony: you mean x creates a local, right? 2011-11-06T14:44:09 sorry yeah 2011-11-06T14:44:15 *** jerez_z has quit IRC (Quit: Page closed) 2011-11-06T14:44:29 it's only global if it's outside of a class or function 2011-11-06T14:44:52 They should have done this in JS as well I think 2011-11-06T14:45:34 mcstar: It is all about C++, Java and Python if you look at the language usage statistics 2011-11-06T14:45:35 Printz: probably means you're timing out 2011-11-06T14:45:40 don't you get an exception? 2011-11-06T14:45:51 the only real downside is that due to lack of compilation, you won't even see typos until runtime 2011-11-06T14:46:17 nope just lonesurvivor 2011-11-06T14:46:25 Is java beating C#? 2011-11-06T14:46:38 Antimony: Isn't there an IDE that may give a hint on undefined variables or methods? 2011-11-06T14:46:43 well if you get it after the first round you're timing out for sure :/ 2011-11-06T14:46:45 Antimony: well, that's due to dynamic typing - there are compiled languages that can have runtime type errors 2011-11-06T14:47:18 Go, C++, etc. 2011-11-06T14:47:18 but if you mistype a variable name for instance 2011-11-06T14:47:34 you won't get an error until the function is actually run in python 2011-11-06T14:47:56 who actually uses dynamic casts in C++? 2011-11-06T14:47:58 RasmusL: how can i check that? 2011-11-06T14:48:02 at least the errors are usually very helpful 2011-11-06T14:48:05 in python 2011-11-06T14:48:07 yeah 2011-11-06T14:48:13 a name, stacktrace everything 2011-11-06T14:48:18 so much nicer than debugging C++ 2011-11-06T14:48:33 Printz: you're running it locally right? 2011-11-06T14:48:41 foRei: In what sense? Users or performance? 2011-11-06T14:49:02 From what I've seen, C# is basically JAva done right 2011-11-06T14:49:02 Antimony: i think i used that for big-endian little-endian translation with a union 2011-11-06T14:49:19 I mean it does have uses, it's just not very common 2011-11-06T14:49:22 RasmusL: yeah i am 2011-11-06T14:49:27 mleise users 2011-11-06T14:49:39 so you should see a message in cmd 2011-11-06T14:49:49 any exception gets printed in cmd 2011-11-06T14:50:01 foRei: Yes, in the competition there are more than twice as many people using Java, just look at the rankings 2011-11-06T14:50:12 and if any exception happens you will timeout 2011-11-06T14:50:13 *** dvladim has quit IRC (Ping timeout: 244 seconds) 2011-11-06T14:50:52 Oh, I ment on a general "weapon of choice" world wide :D 2011-11-06T14:51:08 that's because every CS class teaches Javax 2011-11-06T14:51:12 *Java 2011-11-06T14:51:36 C++ is the weapon of choice worldwide :P 2011-11-06T14:51:41 Is there a reason why they choose java over other languages for CS classes? 2011-11-06T14:51:56 im totally unbiased i promise 2011-11-06T14:51:58 hmm... It doesn't seem so 2011-11-06T14:52:10 that's weird. 2011-11-06T14:52:38 If it weren't for the javascript story... Java would be dominant right now =P 2011-11-06T14:52:49 i think the indentations are more than usually wrong... but i just can't figure it 2011-11-06T14:52:51 RasmusL: i would have thought you'd do your bot in php 2011-11-06T14:53:22 *** conor_f has joined #aichallenge 2011-11-06T14:53:29 oh of course ;) 2011-11-06T14:53:52 are you actually that rasmus? 2011-11-06T14:54:10 i'm not, haha 2011-11-06T14:54:21 When C# was created it was a cross-platform language, but being written by Microsoft there was only a Windows implementation. 2011-11-06T14:54:35 do you get accused of that often? :) 2011-11-06T14:54:42 So Java is still considered more "open" I guess 2011-11-06T14:55:21 oh not too often, I'm not in many places with programmers so few people know him I guess 2011-11-06T14:56:05 he worked for yahoo while i did, so i guess that's how i knew 2011-11-06T14:56:18 *** Accoun has quit IRC () 2011-11-06T14:56:38 i see 2011-11-06T14:56:43 *** Printz has quit IRC (Quit: Page closed) 2011-11-06T14:57:18 *** roflmao has joined #aichallenge 2011-11-06T14:57:33 hello ladies 2011-11-06T14:58:20 i wonder, should i avoid using classes in python like you would in c++? 2011-11-06T14:58:21 RasmusL: are you sure you're not THE Rasmus? Your IP does put you in Denmark... 2011-11-06T14:58:45 i'm itching to create an Ant class :) 2011-11-06T14:59:15 i am from Denmark 2011-11-06T14:59:17 mleise: https://blogs.oracle.com/henrik/entry/moving_to_openjdk_as_the it is more open _now_, but we have Sun to thank for that - Oracle probably hates the idea, but it was too late to change course 2011-11-06T14:59:47 mono will always be playing catch-up, and they have a C# implementation, not the full platform it's used with (.NET) 2011-11-06T15:01:07 *** Jolonis has joined #aichallenge 2011-11-06T15:01:21 im gonna sharpen my f's 2011-11-06T15:02:33 oh hey mcstar :) i got the A* working but that just created new problems :D 2011-11-06T15:02:49 k 2011-11-06T15:02:53 did we meet before? 2011-11-06T15:02:59 i'm having an extremely epic battle on fluxid's server that will never end 2011-11-06T15:03:02 you helped me earlier, haha 2011-11-06T15:03:09 mcstar: you are the one with the fast a* implementation 2011-11-06T15:03:17 RasmusL: sry, i cant keep up with this many peopl :D 2011-11-06T15:03:20 0,3ms/path 2011-11-06T15:03:28 Hello 2011-11-06T15:03:51 Is is possible to launch the program in debug mode in order to get the output of our bots ? 2011-11-06T15:04:10 mleise: 0.09 ms, bfs 2011-11-06T15:04:21 mleise: a* was a long time ago for me 2011-11-06T15:04:29 Jolonis: yes, run playgame.py and look at the options it displays 2011-11-06T15:04:59 thx :) 2011-11-06T15:05:13 mcstar: I'm kinda allergic to these greedy algorithms 2011-11-06T15:05:39 mleise: what do you have? 2011-11-06T15:05:53 or more precisely, anything that scans the sourroundings like that 2011-11-06T15:06:03 i dont mind 2011-11-06T15:06:10 the computer does it, not me 2011-11-06T15:06:10 mcstar: I have nothing. My pathfinder is too complicated to implement 2011-11-06T15:06:21 o.O 2011-11-06T15:06:28 *** spp has joined #aichallenge 2011-11-06T15:06:35 how do you handle scheduling? the problem is that obviously I have an A* path, but I can only move each ant 1 square per turn 2011-11-06T15:06:45 mcstar: that vector constructer thing isn't working :/ 2011-11-06T15:06:58 i wanna associate a path with an ant and move until its done.. 2011-11-06T15:07:01 but dunno 2011-11-06T15:07:08 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20111008085652]) 2011-11-06T15:07:10 conor_f: were you the one with the nested stl troube yesterday? 2011-11-06T15:07:17 stl vecotr* 2011-11-06T15:07:22 yeah :P 2011-11-06T15:07:32 just replan each frame. anything else is premature optimization 2011-11-06T15:07:39 soo, here comes my joke, you seem to break the compilers, man 2011-11-06T15:07:39 mcstar: I have a several pages document on how it is supposed to work, but the dynamic update implementation and algorithms to support it are taking all the fun out of it 2011-11-06T15:07:44 but this is todays problem again. vector.push_back() with classes 2011-11-06T15:08:03 conor_f: works for me (TM) 2011-11-06T15:08:16 copy ctor anyone? 2011-11-06T15:08:18 a1k0n: but running A* search for each ant each turn is really heavy 2011-11-06T15:08:23 hmm, weird 2011-11-06T15:08:25 or my A* algorithm is bad :) 2011-11-06T15:08:29 true. i don't use A* at all. 2011-11-06T15:08:39 RasmusL: it should take less time than mine 2011-11-06T15:08:46 RasmusL: You should ideally be between 0.3-0.5 seconds with A* 2011-11-06T15:08:51 a path in 0.1 ms is not heavy 2011-11-06T15:08:52 sorry, ms per path 2011-11-06T15:09:03 because I put a debug print in the constructer and it never gets hit 2011-11-06T15:09:04 if you use A*, only use it for food 2011-11-06T15:09:09 it's probably around 1s for 25 ants 2011-11-06T15:09:18 :S 2011-11-06T15:09:20 mleise: i just check option, i found the log option, but i didn't found how to directly ouput in my terminal the errors 2011-11-06T15:09:21 ouch 2011-11-06T15:09:25 haha 2011-11-06T15:09:53 Jolonis: does -E work? I don't know... didn't touch the tools for a while 2011-11-06T15:10:04 arf 2011-11-06T15:10:06 i'll try 2011-11-06T15:10:11 -e makes it show stderr 2011-11-06T15:10:22 it works 2011-11-06T15:10:23 RasmusL: what language do you use? and what priority queue implementation? 2011-11-06T15:10:31 conor_f: if you want i can take a look at a complete code sample 2011-11-06T15:10:32 DON'T say you use an array 2011-11-06T15:10:34 Python 3.2, heapq 2011-11-06T15:10:39 ok ;) 2011-11-06T15:10:50 mcstar: you won't like what you'd see 2011-11-06T15:10:51 :P 2011-11-06T15:11:08 you can do a couple thousand a* paths per turn pretty easily 2011-11-06T15:11:10 still seems slow though. maybe you don't go low-level enough 2011-11-06T15:11:12 no reason to store IMO 2011-11-06T15:11:27 i also use a dictionary for visited nodes 2011-11-06T15:11:36 no wait, i switched to a set 2011-11-06T15:11:41 seems faster than anything else 2011-11-06T15:11:43 yoden: a couple maybe: 2000, but not much more 2011-11-06T15:12:07 numpy array is much slower than the set 2011-11-06T15:12:16 i'm pretty sure I can do way more than 2000 in 1 second 2011-11-06T15:12:24 a* is only taking about 20ms atm 2011-11-06T15:12:30 yoden: you only get 500ms! 2011-11-06T15:12:37 oh, i thought it was 1s 2011-11-06T15:12:39 still :> 2011-11-06T15:12:41 i can't do 100 in a second! :D 2011-11-06T15:12:41 mleise: 6000 2011-11-06T15:12:47 mcstar: wtf?!?! 2011-11-06T15:12:55 thats what i was saying 2011-11-06T15:13:01 and its not even a* 2011-11-06T15:13:05 RasmusL: A set is no priority queue 2011-11-06T15:13:14 no the set is for the visited nodes 2011-11-06T15:13:17 ok 2011-11-06T15:13:22 yoden: I would love to see your A* implementation =P 2011-11-06T15:13:35 Rinum: i have the advantage of having done this before for iphone games :X 2011-11-06T15:13:51 mleise: pathfinding is fast, however i could only do a 2-turn game tree for small situations in reasonable time 2011-11-06T15:14:02 make use of the constant cost of 1 for every edge in the graph ;) 2011-11-06T15:14:12 meaning, for 100 ants i will not be able to do better 2011-11-06T15:14:26 mleise: http://pastebin.com/9aFcb7bJ 2011-11-06T15:14:30 overview of the alg :) 2011-11-06T15:14:50 ok let's all flame RasmusL for his code ;) 2011-11-06T15:14:51 pypy supported yet? 2011-11-06T15:15:03 caution: not that I know of 2011-11-06T15:15:03 you can do that :D i'm sure it's bad 2011-11-06T15:15:57 uh... RasmusL where is your cost function? 2011-11-06T15:16:17 oh it's calculated in the getChildNodes function 2011-11-06T15:16:24 it returns a tuple of ANodes :) 2011-11-06T15:16:38 I see, I don't speak Python 2011-11-06T15:16:59 i'm sure it's a bit obscure when I leave out most of the functions anyway 2011-11-06T15:17:36 *** Accoun has joined #aichallenge 2011-11-06T15:18:55 *** amstan_ has quit IRC (Ping timeout: 248 seconds) 2011-11-06T15:18:58 i'm not sure how to integrate pathfinding and combat though 2011-11-06T15:19:05 my ants are just scaredy cats atm 2011-11-06T15:19:47 *** Jolonis has quit IRC (Ping timeout: 265 seconds) 2011-11-06T15:20:17 RasmusL: do you manage a closed list? 2011-11-06T15:20:26 mine are stupid and just randomly go after food ^^ 2011-11-06T15:20:37 *** djr_ has quit IRC (Ping timeout: 240 seconds) 2011-11-06T15:21:02 well I guess pq kinda is 2011-11-06T15:21:08 my ants are pacifists: they try to avoid any ants dieing xD 2011-11-06T15:21:32 i just get the path by reversing from the dest node up the parents 2011-11-06T15:21:44 until im back at the start 2011-11-06T15:21:47 :D 2011-11-06T15:23:07 RasmusL: A closed list is where nodes go that you already expanded and checked so they don't end up being checked again. 2011-11-06T15:23:13 wtf 2011-11-06T15:23:21 my bot is sending every move order twice 2011-11-06T15:23:23 ah 2011-11-06T15:23:23 excellent! My c++ bot can now control 100s of ants! (compared to a mere ~40 with Python with the same algorithms) 2011-11-06T15:23:44 RasmusL: It will save you some time. I just store that info as a bool flag in my nodes. 2011-11-06T15:23:46 well, i just add every single node i've been to, to the visited list 2011-11-06T15:23:55 ! 200 ants moved in only 30ms! 2011-11-06T15:23:57 or the visited set, rather 2011-11-06T15:24:00 RasmusL: that is a different list 2011-11-06T15:24:11 which includes file IO 2011-11-06T15:24:14 You want to check the visited nodes again 2011-11-06T15:24:24 neat Rinum 2011-11-06T15:24:26 i do? D: 2011-11-06T15:24:31 i don't 2011-11-06T15:24:42 thanks! I'm so glad I made the switch to C++ 2011-11-06T15:24:47 ok then we have different visited lists ^^ 2011-11-06T15:25:02 hmm what else could make it slow... 2011-11-06T15:25:16 oh mine is quite simple :D once i've added the 4 child nodes to the heap 2011-11-06T15:25:18 it's flagged as visited 2011-11-06T15:25:21 and never gets visited again 2011-11-06T15:25:43 ok, that's the closed list then 2011-11-06T15:26:01 i see 2011-11-06T15:26:08 can i use that to generate the path? 2011-11-06T15:26:14 it should be illegal to implement algorithms with a different terminology than the wikipedia reference implementation 2011-11-06T15:26:15 xD 2011-11-06T15:26:16 what value does the first node have you put in the heap? 2011-11-06T15:26:32 it's the ant's start location 2011-11-06T15:26:43 RasmusL: the closed list doesn't contain the path unfortunately. 2011-11-06T15:26:51 oops 2011-11-06T15:27:00 I was acicdently calling the makeMoves function twice 2011-11-06T15:27:01 yeah as far as i understood from reading 2011-11-06T15:27:09 RasmusL: and what is its 'value' in the priority queue? zero or the actual distance? 2011-11-06T15:27:15 all I could do was start at the destination node and run backwards through the parents 2011-11-06T15:27:24 thats how you're supposed to do it 2011-11-06T15:27:30 it's value is G+H 2011-11-06T15:27:31 each visited node stores its parent 2011-11-06T15:27:40 then backtrack to get the path once your done 2011-11-06T15:27:48 *** Strepto has joined #aichallenge 2011-11-06T15:28:00 so 0 2011-11-06T15:28:08 actually.. 2011-11-06T15:28:13 RasmusL: Your algorithm should really run faster I think. Maybe you can have it print the number of expanded nodes for debugging 2011-11-06T15:28:46 yeah 2011-11-06T15:28:50 You could also implement this: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties 2011-11-06T15:29:24 adding a tie breaker is suuuuper important for this grid map 2011-11-06T15:29:44 A* doesn't work too well when a lot of paths have the same value as in Ants (because of the Manhatten metric) 2011-11-06T15:29:59 maybe my heuristic is bad also? 2011-11-06T15:30:05 never :) 2011-11-06T15:30:08 what is it? 2011-11-06T15:30:20 anyone know where I can see the debug messages produced by greedyBot in the python starter package? 2011-11-06T15:30:25 it should almost always be rows + cols 2011-11-06T15:30:25 distance in rows + distance in cols from destination 2011-11-06T15:30:50 RasmusL: that's fine ... never overestimate the distance if you want an optimal path 2011-11-06T15:31:21 and the G is of course parent's G + 1 2011-11-06T15:32:19 *** spp has quit IRC (Quit: Page closed) 2011-11-06T15:32:33 *** Naktibalda has joined #aichallenge 2011-11-06T15:32:39 You did everything right I guess. You could probably exchange the visited set with a boolean flag, but I don't think it will make it faster by orders of magnitude 2011-11-06T15:33:21 seems that checking if a value is in a set is O(1) 2011-11-06T15:33:24 so it doesn't get much better 2011-11-06T15:33:39 O(log n) I would guess 2011-11-06T15:33:55 O(1) for python sets, they are unordered 2011-11-06T15:33:58 is it a hash set? 2011-11-06T15:34:04 yes 2011-11-06T15:34:11 dict/set in python are unordered 2011-11-06T15:34:18 there's an ordered dict in the standard lib 2011-11-06T15:34:24 ok, still it is slower in constant time than a boolean flag ;) 2011-11-06T15:34:29 yeah 2011-11-06T15:34:36 set is a bad way to store the visited nodes 2011-11-06T15:34:53 it also has to allocate memory etc. etc. 2011-11-06T15:35:15 Does anyone else use Python and can give performance hints? 2011-11-06T15:35:26 i can't just put a boolean flag in the ANode class :/ 2011-11-06T15:35:30 mleise, take a look at cython 2011-11-06T15:35:34 I can't belive that it shouldn't be possible to compute the paths for 100 ants 2011-11-06T15:35:45 it is definitely possible 2011-11-06T15:35:55 i'm sure it is, just gotta figure it out :D 2011-11-06T15:36:04 cyphase: I'm not using Python. I was asking for RasmusL :) 2011-11-06T15:36:23 I just generally like optimizing stuff 2011-11-06T15:36:41 ah, well then, look at cython RasmusL :) 2011-11-06T15:36:42 mleise is the root of all evil 2011-11-06T15:36:42 *** Rinum has quit IRC (Ping timeout: 265 seconds) 2011-11-06T15:36:54 will cython help me on the server tho? 2011-11-06T15:37:07 mcstar: did I say premature *g* ? 2011-11-06T15:37:21 RasmusL, you can use cython to compile a .so module, then use that from your python script 2011-11-06T15:37:23 mleise is the root of all premature evil 2011-11-06T15:37:27 i see 2011-11-06T15:37:57 RasmusL: how do you store the graph? 2011-11-06T15:38:12 you should use a 2d list/array.array or a numpy array 2011-11-06T15:38:25 thestinger: look here: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties 2011-11-06T15:38:26 then you can mark stuff as visited in there 2011-11-06T15:38:29 sorry 2011-11-06T15:38:34 http://pastebin.com/9aFcb7bJ 2011-11-06T15:38:41 damn clipboard on linux 2011-11-06T15:38:52 thestinger: it's stored in a heapq 2011-11-06T15:39:10 ah, you can just store it as a preallocated 2d array though 2011-11-06T15:39:34 i thought the heap helped by popping the smallest F values tho? 2011-11-06T15:39:49 oh, you're using A*? 2011-11-06T15:39:53 yup 2011-11-06T15:40:31 well, don't use plain old A* to send multiple ants to 1 target - use it sparingly when you need to move 1 ant somewhere 2011-11-06T15:40:40 *** UncleVasya has quit IRC (Read error: Connection reset by peer) 2011-11-06T15:41:06 hmm 2011-11-06T15:41:07 you can just do a BFS from a target and save all the distances, then use that to pathfind for any number of ants 2011-11-06T15:42:32 hey, wha editor supports c++11? 2011-11-06T15:42:34 wha 2011-11-06T15:42:37 hat 2011-11-06T15:43:03 ive been using qtcreator, nice ide, but my lambda's are messing up its indentation 2011-11-06T15:43:18 does emacs know about the new standard? 2011-11-06T15:44:04 mcstar: it should be fine 2011-11-06T15:44:16 you can use clang to autocomplete in vim/emacs/whatever if that's what you want 2011-11-06T15:44:52 yeah, well qtcreator worked oob, i didnt have the time to configure cedet 2011-11-06T15:45:58 *** Antimony has quit IRC (Ping timeout: 255 seconds) 2011-11-06T15:46:02 *** hapy has joined #aichallenge 2011-11-06T15:48:02 *** yassya has quit IRC (Quit: Leaving) 2011-11-06T15:48:15 *** xathis has quit IRC (Read error: Connection reset by peer) 2011-11-06T15:48:18 *** RasmusL has quit IRC (Ping timeout: 265 seconds) 2011-11-06T15:50:59 bleh, back to school tomorrow :( 2011-11-06T15:51:10 no more programming for me for a while 2011-11-06T15:51:25 anywhoo, see you next week some time :P 2011-11-06T15:51:26 *** conor_f has quit IRC (Quit: leaving) 2011-11-06T15:55:27 i couldnt help him 2011-11-06T15:56:25 *** Blkt has quit IRC (Remote host closed the connection) 2011-11-06T15:56:49 *** ltriant has joined #aichallenge 2011-11-06T15:56:57 *** master_ninja has quit IRC (Quit: ...) 2011-11-06T15:57:09 *** choas has joined #aichallenge 2011-11-06T15:57:35 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20111008085652]) 2011-11-06T16:00:45 *** awildturtok has quit IRC (Quit: Page closed) 2011-11-06T16:00:45 *** bmh has quit IRC (Quit: bmh) 2011-11-06T16:01:19 *** exezive has joined #aichallenge 2011-11-06T16:01:54 *** ccc has quit IRC (Quit: Computer has gone to sleep.) 2011-11-06T16:04:31 *** McLeopold has joined #aichallenge 2011-11-06T16:04:47 *** The_Digital_Ninj has quit IRC (Ping timeout: 248 seconds) 2011-11-06T16:05:10 *** Hexren has joined #aichallenge 2011-11-06T16:05:27 *** caution has quit IRC (Quit: caution) 2011-11-06T16:08:12 *** djr_ has joined #aichallenge 2011-11-06T16:08:43 *** ant__ has joined #aichallenge 2011-11-06T16:12:06 *** ztfw has quit IRC (Remote host closed the connection) 2011-11-06T16:12:23 *** Qwop has joined #aichallenge 2011-11-06T16:17:20 *** g0llum has quit IRC (Read error: Connection reset by peer) 2011-11-06T16:20:34 *** hapy has quit IRC (Quit: Page closed) 2011-11-06T16:22:14 *** Palmik has quit IRC (Remote host closed the connection) 2011-11-06T16:22:52 *** paddington_ has quit IRC () 2011-11-06T16:23:07 *** Strepto has quit IRC (Ping timeout: 265 seconds) 2011-11-06T16:24:02 *** Guest14629 is now known as ajf 2011-11-06T16:24:18 *** exezive has quit IRC (Remote host closed the connection) 2011-11-06T16:26:32 *** tmandry has quit IRC (Ping timeout: 258 seconds) 2011-11-06T16:29:39 *** kilae has quit IRC (Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20110928134238]) 2011-11-06T16:30:45 *** retybok_ has joined #aichallenge 2011-11-06T16:33:22 *** Ellos has quit IRC (Quit: Page closed) 2011-11-06T16:42:19 *** ikaros_ has joined #aichallenge 2011-11-06T16:48:17 *** Antimony has joined #aichallenge 2011-11-06T16:50:33 *** kloeri has quit IRC (Ping timeout: 606 seconds) 2011-11-06T16:50:56 *** goffrie_ has joined #aichallenge 2011-11-06T16:51:01 *** goffrie has quit IRC (Ping timeout: 252 seconds) 2011-11-06T16:57:23 *** pairofdice has quit IRC (Quit: Just keep breathing) 2011-11-06T17:00:19 *** capa has quit IRC (Ping timeout: 265 seconds) 2011-11-06T17:01:05 *** retybok_ has quit IRC (Ping timeout: 276 seconds) 2011-11-06T17:06:37 http://pastebin.com/uEsuzs7W 2011-11-06T17:06:49 what could be the problem 2011-11-06T17:07:34 *** jacob_strauss has quit IRC (Ping timeout: 265 seconds) 2011-11-06T17:07:34 *** aslvrstn has quit IRC (Ping timeout: 265 seconds) 2011-11-06T17:07:35 *** kloeri has joined #aichallenge 2011-11-06T17:07:50 null? 2011-11-06T17:08:20 *** Regis has quit IRC (Quit: ... mains libres) 2011-11-06T17:08:34 or wrong pointer? 2011-11-06T17:08:52 *** tmandry has joined #aichallenge 2011-11-06T17:08:52 *** tmandry has joined #aichallenge 2011-11-06T17:09:09 its a linking error 2011-11-06T17:11:24 *** goffrie_ is now known as goffrie 2011-11-06T17:11:30 as if i needed to link in a hashtable lib 2011-11-06T17:11:31 mcstar: std::hash is not defined by default. 2011-11-06T17:12:18 so the template is not compiled 2011-11-06T17:12:47 *** kloeri has quit IRC (Read error: Connection reset by peer) 2011-11-06T17:12:55 *** kloeri has joined #aichallenge 2011-11-06T17:13:57 ejls: what do you suggest? 2011-11-06T17:14:16 By default, std::unordered_* use the specialization of std::hash for the key type. If no specialization is found, the default template class is used which does not define the operator(). 2011-11-06T17:14:29 ejls: passing your own hasher has an argument. 2011-11-06T17:14:46 or specialize std::hash<> for std::pair. 2011-11-06T17:15:46 aham, so i just need a third template argument to unordered_map<> 2011-11-06T17:16:45 *** whoishere has quit IRC (Ping timeout: 265 seconds) 2011-11-06T17:17:10 If you don't want to specialize std::hash, yes. 2011-11-06T17:17:27 *** bmh has joined #aichallenge 2011-11-06T17:17:27 *** bmh has joined #aichallenge 2011-11-06T17:18:10 *** kloeri has quit IRC (Read error: Connection reset by peer) 2011-11-06T17:18:19 *** kloeri has joined #aichallenge 2011-11-06T17:18:22 ejls: and if i want to? 2011-11-06T17:18:26 how would i do that? 2011-11-06T17:18:28 You can use the cantor pairing function for exemple. 2011-11-06T17:18:42 mcstar: wait, I will paste my code. 2011-11-06T17:19:29 http://ideone.com/CDKzR 2011-11-06T17:19:53 I'm hashing a std::complex, just change real() by first and imag() by second. 2011-11-06T17:21:35 *** NotABug has quit IRC (Ping timeout: 265 seconds) 2011-11-06T17:22:24 Coord is a typedef of std::complex here, just change it by std::pair. 2011-11-06T17:23:06 i dont get this fuss 2011-11-06T17:23:11 *** bmh has quit IRC (Read error: Connection reset by peer) 2011-11-06T17:23:14 ejls: thx for your help though 2011-11-06T17:23:31 *** Antimony has quit IRC (Ping timeout: 260 seconds) 2011-11-06T17:23:34 in common lisp you could stuff anything into a hashtable 2011-11-06T17:23:47 *** kloeri has quit IRC (Read error: Connection reset by peer) 2011-11-06T17:24:05 and it should be pointer based internally, so only int-hashers would be needed 2011-11-06T17:24:07 *** maysam has joined #aichallenge 2011-11-06T17:24:43 ejls: si that arithmetic is for making a unique rel from a complex number? 2011-11-06T17:24:46 so* 2011-11-06T17:24:49 someone should write a user-friendly wrapper around the whole stl 2011-11-06T17:24:53 *** bmh has joined #aichallenge 2011-11-06T17:24:54 *** bmh has joined #aichallenge 2011-11-06T17:25:03 stl is already user fiendly, isnt it? 2011-11-06T17:25:11 nah 2011-11-06T17:25:14 parts of it 2011-11-06T17:25:16 mcstar: yeah, it's a bijection N<->N. 2011-11-06T17:25:18 im just annoyed, because im used to better 2011-11-06T17:25:30 parts of it yes 2011-11-06T17:26:19 especially that unordered stuff 2011-11-06T17:26:49 theres no need for that, couldnt you just make some memcmp instead? 2011-11-06T17:27:08 mcstar: It can't work pointer based : int *a=new int(42), *b=new int(42); conceptually, a is equal to b. 2011-11-06T17:27:54 well, if every number has the same address... 2011-11-06T17:28:00 :D 2011-11-06T17:28:28 'row * ROWS + col' is what I was using to get a unique int somewhere for coords 2011-11-06T17:28:34 ejls: so,about what i wrote a moment ago? 2011-11-06T17:28:35 Yeah... but Coord is my class for position, with the cantor pairing function if my unordered_map is big enough I'm sure there ll be no collision. 2011-11-06T17:29:09 I mean 'row * COLS + col' 2011-11-06T17:29:23 or something like that... I'm confused now :) 2011-11-06T17:29:31 second is ok 2011-11-06T17:29:58 *** cyphase has quit IRC (Ping timeout: 245 seconds) 2011-11-06T17:30:01 i mean, for hashing you only need to establish equivalence, dont you? 2011-11-06T17:30:23 Yes but this formula is dependant on another variable. It's ok in this case but I don't like it. :p 2011-11-06T17:31:13 ejls: so if i define that in std i dont have to provide it? 2011-11-06T17:31:21 It's not a good idea, if I decide to hash tile after the end of the row (for an iterator for exemple) it'll not work. 2011-11-06T17:31:25 its like adding one more type for the basci types 2011-11-06T17:31:57 mcstar: yes. 2011-11-06T17:33:17 thx 2011-11-06T17:34:40 hm 2011-11-06T17:34:42 well 2011-11-06T17:35:16 in common lisp, that pointer exmaple is not a problem, cause simple numbers are hashed by value 2011-11-06T17:35:40 and under the hood, compund objects are hashed by their memory location i think 2011-11-06T17:36:12 i never gave it thought before, you just use it :) 2011-11-06T17:36:33 Btw, the cantor pairing function (the one in my code) is good for numbers in N only, it'll work for negative numbers but may be less efficient. 2011-11-06T17:36:44 but there you can provide a function, by which to compare objects 2011-11-06T17:37:10 im reading up on this now 2011-11-06T17:37:19 *** Hexren has quit IRC (Quit: Leaving.) 2011-11-06T17:37:21 ill probably use my own hashing than 2011-11-06T17:38:04 C++ is designed to be efficient, in the case of pair hashing, the best is to let the user define the hashing function. 2011-11-06T17:38:45 well, it is certainly flexible :) 2011-11-06T17:40:35 how long have you guys been using c++? 2011-11-06T17:41:17 *** McLeopold has left #aichallenge 2011-11-06T17:45:41 *** epicmonkey has quit IRC (Ping timeout: 240 seconds) 2011-11-06T17:47:43 *** Antimony has joined #aichallenge 2011-11-06T17:49:55 *** eater has joined #aichallenge 2011-11-06T17:50:47 hi 2011-11-06T17:52:03 *** mvigilant has joined #aichallenge 2011-11-06T17:52:38 *** userjjb has joined #aichallenge 2011-11-06T17:53:43 *** danielharan has joined #aichallenge 2011-11-06T17:54:00 quick question: I believe the C++ starter package uses vectors for storing things like the map etc. Are there any problems with dynamicly creating arrays with the "new" command? 2011-11-06T17:54:12 instead of using vectors 2011-11-06T17:55:11 no, just remember to delete them 2011-11-06T17:56:01 ok, wasn't sure if there was performance advantages either way 2011-11-06T17:56:29 *** danielharan has quit IRC (Remote host closed the connection) 2011-11-06T17:57:21 userjjb: std::vector can resize itself, but aren't faster than an array (in fact, they're typically backed by a dynamically allocated array) 2011-11-06T17:58:05 template T* _array::operator [] (unsigned int index){ 2011-11-06T17:58:06 return m + index * _cols; 2011-11-06T17:58:08 } 2011-11-06T17:58:20 this is all that is needed for a proper 2d array 2011-11-06T17:59:45 *** bmh has quit IRC (Quit: bmh) 2011-11-06T18:02:01 *** Draakon has quit IRC () 2011-11-06T18:04:14 *** The_Digital_Ninj has joined #aichallenge 2011-11-06T18:07:47 you're better off using a 1d vector with operator overloading 2011-11-06T18:07:52 I can give you my class if you want 2011-11-06T18:08:06 it doesn't have any ai logic so it's not agasint the rules 2011-11-06T18:08:29 *** The_Digital_Ninj has quit IRC (Ping timeout: 240 seconds) 2011-11-06T18:10:44 *** Jak_o_Shadows has joined #aichallenge 2011-11-06T18:12:10 Antimony: ^^ that is exactly this 2011-11-06T18:12:26 no mine is better 2011-11-06T18:12:55 what way? 2011-11-06T18:12:59 *** amstan_ has joined #aichallenge 2011-11-06T18:12:59 *** ChanServ sets mode: +o amstan_ 2011-11-06T18:13:12 http://pastebin.com/vUQ0yrr9 2011-11-06T18:13:41 Antimony: I might not understand it yet, but I'll certaintly save it and look at it in a little bit,. My knowledge of C++ is very limited so I'm teaching myself as I go. 2011-11-06T18:14:17 generally, you shouldn't be messing with raw pointers like that 2011-11-06T18:14:19 *** Harpyon has quit IRC (Quit: Textual IRC Client: http://www.textualapp.com/) 2011-11-06T18:14:26 it's not idiomatic 2011-11-06T18:14:41 Antimony: i fail to see how is that better 2011-11-06T18:15:05 you mean it's safer? 2011-11-06T18:15:10 yes 2011-11-06T18:15:12 and easier to use 2011-11-06T18:15:17 not easier 2011-11-06T18:15:23 you can pass a position directly 2011-11-06T18:15:25 but yeah, safer 2011-11-06T18:15:45 you can use mine liek this: array[row][col] 2011-11-06T18:16:03 mine can use either int indexing or positions 2011-11-06T18:16:18 but i prefer not putting the wrapping code into the array class 2011-11-06T18:16:22 *** delt0r_ has quit IRC (Ping timeout: 244 seconds) 2011-11-06T18:16:23 *** eater has quit IRC (Quit: Page closed) 2011-11-06T18:16:24 why not? 2011-11-06T18:16:42 because i use that elsewhere too 2011-11-06T18:16:51 ? 2011-11-06T18:16:52 and it sort of hides from me 2011-11-06T18:17:04 i guess, you want that 2011-11-06T18:17:10 if you don't want stuff to be hidden, just code in c 2011-11-06T18:17:36 i hide what i want 2011-11-06T18:20:07 *** VoidXC has joined #aichallenge 2011-11-06T18:20:17 T& operator()(size_t y, size_t x) 2011-11-06T18:20:24 const T& operator()(size_t y, size_t x) const 2011-11-06T18:20:30 Antimony: what is the difference? 2011-11-06T18:20:45 *** olexs has quit IRC (Quit: Leaving.) 2011-11-06T18:21:29 const correctness 2011-11-06T18:21:47 look it up 2011-11-06T18:21:56 mcstar: What scares me most about that is that it's quite probable that the implementer will return a reference to a local :D 2011-11-06T18:22:33 Oh, an array. 2011-11-06T18:22:45 So used to op() being for function calls, not for people who are too lazy to chain op[] :D 2011-11-06T18:23:29 Hey guys, just started this and I'm using the python starter pack. Is there a way to run the game but have it print out values for testing when running? I'm using cmd.exe and running the command script to test bots moving, but I'm trying to create a graph from render_text_map() and need to print it out so I can see if it is making the graph properly 2011-11-06T18:23:29 i dont see why () is necessary 2011-11-06T18:23:39 you can overload [] to accept Pos structs 2011-11-06T18:23:56 [] only allows one argument, and I wanted to have it the same way for pos and row,col 2011-11-06T18:24:00 *** Draakon has joined #aichallenge 2011-11-06T18:24:04 and I didn't get around to implementing slicing 2011-11-06T18:25:19 currently it just says - #unknown action when I try to print 2011-11-06T18:25:31 VoidXC: dont print to stdout 2011-11-06T18:25:37 except game commands 2011-11-06T18:25:43 write to a file? 2011-11-06T18:26:11 *** cyphase has joined #aichallenge 2011-11-06T18:27:51 write to file 2011-11-06T18:27:51 mcstar: I'm becoming a fan of free functions or just named member functions, instead of wild guesses of the purpose of operators. 2011-11-06T18:27:58 *** asdasdasd has quit IRC (Quit: Page closed) 2011-11-06T18:28:46 Zao: ive never used seriously c++ before the contest 2011-11-06T18:29:19 I think it makes sense to use ooperator overloading when the actual function is similar to the standard one 2011-11-06T18:29:22 *** delt0r_ has joined #aichallenge 2011-11-06T18:29:23 like indexing for [] 2011-11-06T18:33:38 I wish C++ had strong typedefs. 2011-11-06T18:33:54 .at(Row row, Col col) would be awesome. 2011-11-06T18:33:57 *** ajf is now known as ajf|offline 2011-11-06T18:34:12 Dealing with raw ints all over the place is about as safe as void* :D 2011-11-06T18:35:30 make a class 2011-11-06T18:36:10 well, i guess typdef is just an alias, and that is from where everything developed 2011-11-06T18:36:13 *** tmandry has quit IRC (Ping timeout: 245 seconds) 2011-11-06T18:36:56 but than you couldnt compare Rows with Cols and such 2011-11-06T18:41:00 mcstar: I've had way too many bugs of the kind "is it rows or cols first, now again". 2011-11-06T18:41:12 A bit of inconvenience is worth it if it makes it explicit and clear. 2011-11-06T18:41:47 mcstar: Why would you want to compare a row with a col? 2011-11-06T18:41:51 well if you use pos for indexing in most places, it won't be a problem 2011-11-06T18:42:04 I only use row,col indexing for soem internal state functions 2011-11-06T18:42:10 like visibility 2011-11-06T18:42:21 nickjohnson: why not? why would i want to do arithmetic on them? why not? 2011-11-06T18:42:40 *** hjax has joined #aichallenge 2011-11-06T18:42:58 mcstar: Okay, what if you want to compare a username to their phone number? 2011-11-06T18:43:00 Zao: i guess you would feel unconfortable in an untyped language 2011-11-06T18:43:03 whats the conditions for rank stabilized to run? 2011-11-06T18:43:12 *** ikaros_ has quit IRC (Quit: Ex-Chat) 2011-11-06T18:43:16 *** pawel__ has joined #aichallenge 2011-11-06T18:43:17 nickjohnson: i hope i will never have to do that 2011-11-06T18:43:24 hjax: When no number of remaining hives being destroyed would change the rankings. 2011-11-06T18:43:32 mcstar: Right. So why would you want to compare a row with a col? 2011-11-06T18:43:49 nickjohnson: no, i mean im not doing corporate stuff 2011-11-06T18:44:10 mcstar: My point was that they're two unlike things for which comparisons don't really make sense. Likewise for rows and cols. 2011-11-06T18:44:31 rows and cols are very much alike 2011-11-06T18:44:32 nickjohnson: what about the possibility of a bot crashing and another bot destroying everything (last man standing) 2011-11-06T18:44:45 They're unlike enough that you're unlikely to want to compare them to each other 2011-11-06T18:44:51 Or add or subtract them from each other 2011-11-06T18:45:15 mcstar: I do. Relying on user competence and awareness of all the unwritten rules is frightening. 2011-11-06T18:46:08 nickjohnson: is 1 of type Row or Col ? 2011-11-06T18:46:23 mcstar: I don't see how that's relevant 2011-11-06T18:46:30 Guys - something must be really wrong with java starter package.... I made some simple changes into the starter code - well I tested my code on computer using tutrial.sh script (testing script) and was working well. It also compiled. I was developing in Eclipse - and this also did not show any mistakes, but whenever I try to submit my code - I can only see a long list of errors on my account - such as : duplicated class - what e 2011-11-06T18:46:33 why??????? 2011-11-06T18:46:57 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-06T18:47:04 You raised "but than (sic) you couldnt (sic) compare Rows with Cols and such" as an objection; I'm just asking why it would be useful to be able to do so. 2011-11-06T18:47:15 why do poople write essays than paste it here? 2011-11-06T18:48:05 pawel__: Did you try tools/test_bot.sh? I believe that is what the upload does 2011-11-06T18:48:08 Lol. My ants are Spartans! http://aichallenge.org/visualizer.php?game=63904&user=3845 2011-11-06T18:48:20 *** maysam has quit IRC (Ping timeout: 276 seconds) 2011-11-06T18:48:21 yes i did - it was working well 2011-11-06T18:48:32 pawel__: Your message was truncated. 2011-11-06T18:48:39 nickjohnson: lets say you want to compute manhattan distance 2011-11-06T18:48:54 now since Row and Col are incompatible what do you do? 2011-11-06T18:48:56 pawel__: Try to adhere to the IRC protocol limit of 512 characters (including framing) for a message. 2011-11-06T18:49:03 Or if you've got big gobs of text, paste sites. 2011-11-06T18:49:11 ah ok - I didn't know 2011-11-06T18:49:15 mcstar: row - row -> int, col - col -> int 2011-11-06T18:49:19 Ordinals vs cardinals. 2011-11-06T18:49:27 but anyway - i did - it was working 2011-11-06T18:49:32 or lets say, i want to know if something is below or above the diagonal? 2011-11-06T18:49:32 So it's (row2 - row1) + (col2 - col1) 2011-11-06T18:49:56 actually no 2011-11-06T18:50:04 Subtract it from row/col 1, or explicitly cast it, but I don't know why you'd want to do that. 2011-11-06T18:50:21 to keep you interested? 2011-11-06T18:52:10 *** Ephemera has quit IRC (Read error: Connection reset by peer) 2011-11-06T18:52:46 Um, okay... 2011-11-06T18:54:19 nickjohnson: btw i hope you use abs in your manhattan distance 2011-11-06T18:54:46 mcstar: Yes? You still haven't demonstrated why you'd need to compare a row to a col. 2011-11-06T18:54:55 Antimony: Which are your ants? 2011-11-06T18:55:18 ah, parasprites 2011-11-06T18:56:31 *** pawel__ has quit IRC (Quit: Page closed) 2011-11-06T18:56:51 Antimony: Nice. I think defeating a cluster like that would just about be impossible for an ant AI. 2011-11-06T18:57:16 it's tricky, but possible 2011-11-06T18:57:36 but the ai needs to be able to coordinate 3 or 4 ants in formation to do it 2011-11-06T18:57:43 I should say, writing a general AI that can identify the need and then attack in formation would be just about impossible 2011-11-06T18:58:23 Antimony: i think timing out is generally not a good strategy :D 2011-11-06T18:59:01 My bot exits when 95% of time has been used (25ms remaining) 2011-11-06T18:59:03 *** gcflymoto has joined #aichallenge 2011-11-06T18:59:16 but sometimes random varitions in the OS cause delays of more than that 2011-11-06T18:59:26 at least I assume it's OS delays 2011-11-06T18:59:42 they said similar thing in pw too 2011-11-06T18:59:43 I'll set it to 35ms in the next release 2011-11-06T19:00:02 s* 2011-11-06T19:00:14 for TCP you need it even higher because of network latency 2011-11-06T19:00:32 i have unexplained timeouts there 2011-11-06T19:00:55 im sure my bont finishes much less than 100ms, and still timouts 2011-11-06T19:01:16 but flux.id set it to 5000ms i think 2011-11-06T19:03:58 *** Antimony_ has joined #aichallenge 2011-11-06T19:06:39 *** Antimony has quit IRC (Ping timeout: 248 seconds) 2011-11-06T19:06:54 *** Antimony_ is now known as Antimony 2011-11-06T19:07:11 *** choas has quit IRC (Ping timeout: 248 seconds) 2011-11-06T19:11:39 *** Antimony has quit IRC (Ping timeout: 256 seconds) 2011-11-06T19:15:18 *** mvigilant has quit IRC (Quit: Page closed) 2011-11-06T19:18:38 *** Antimony has joined #aichallenge 2011-11-06T19:18:59 *** replore_ has joined #aichallenge 2011-11-06T19:19:56 nite 2011-11-06T19:19:58 *** mcstar has quit IRC (Quit: WeeChat 0.3.6) 2011-11-06T19:22:53 *** userjjb has quit IRC (Quit: Page closed) 2011-11-06T19:24:03 *** Extrarius has joined #aichallenge 2011-11-06T19:29:56 *** Antimony has quit IRC (Ping timeout: 276 seconds) 2011-11-06T19:30:38 *** NefariousZhen has quit IRC (Ping timeout: 265 seconds) 2011-11-06T19:36:24 *** bmh has joined #aichallenge 2011-11-06T19:44:50 this has probably been asked a few dozen times -- who's using a diffusion/automata approache? 2011-11-06T19:47:49 *** djr_ has quit IRC (Ping timeout: 244 seconds) 2011-11-06T19:50:34 it is a hivemind 2011-11-06T19:53:04 it is kind of a bfs approach 2011-11-06T20:01:06 *** Antimony has joined #aichallenge 2011-11-06T20:02:57 anyone have a good idea for how to defend your hills without hurting food gathering? 2011-11-06T20:03:41 making food a priority when your hill is under attack 2011-11-06T20:03:52 collect food and that'll popup out ants at your base 2011-11-06T20:04:45 that doesn't work at higher levels 2011-11-06T20:04:53 because you can't collect enough food to maintain production 2011-11-06T20:05:08 yeah but I don't know of any other way that doesn't hurt food gathering :P 2011-11-06T20:07:15 *** mleise has quit IRC (Ping timeout: 260 seconds) 2011-11-06T20:12:43 *** NoxiaZ^ has joined #aichallenge 2011-11-06T20:14:17 I guess one approach is to assign some ants to be guards and limit them to at most x distance from hill 2011-11-06T20:14:44 but I'm not sure how to keep track of the guards 2011-11-06T20:14:46 Antimony: make sure you have a hull around your hill and defend the surface of the hull 2011-11-06T20:14:52 everyone within the hull can forage 2011-11-06T20:15:04 that's hard to do 2011-11-06T20:15:16 *** ltriant has quit IRC (Quit: leaving) 2011-11-06T20:15:31 Or you could count the amount of enemies within x range of your anthill, if more than you = pull ants back to defend, else keep gathering food 2011-11-06T20:15:48 the problem with taht 2011-11-06T20:15:58 is that you're not gaurentted to have nats near your hill 2011-11-06T20:16:04 so pulling back won't help 2011-11-06T20:16:18 don't forget that getting food = getting ants near your hill 2011-11-06T20:16:38 yep :) 2011-11-06T20:16:52 but unless you've got constant production going, they'll often leave soon afterwards 2011-11-06T20:16:56 I hear a1k0n has some secret mojo where he doesn't bother defending :) 2011-11-06T20:17:02 I've seen it happen too many times 2011-11-06T20:17:05 Antimony: forage harder! 2011-11-06T20:17:09 lol 2011-11-06T20:17:30 what's a1k0n's username? 2011-11-06T20:17:30 *** Jak_o_Shadows1 has joined #aichallenge 2011-11-06T20:17:34 a1k0n 2011-11-06T20:17:48 * bmh is skynet, has submitted a real bot 2011-11-06T20:18:17 *** djr_ has joined #aichallenge 2011-11-06T20:20:23 *** Jak_o_Shadows has quit IRC (Ping timeout: 245 seconds) 2011-11-06T20:21:40 Does anyone have suggestions for pathfinding? I assume you need to create a graph of the whole map, with nodes and neighbors (water can't be a neighbor) and then use something like A* right? 2011-11-06T20:21:48 use bfs 2011-11-06T20:21:49 cheaper 2011-11-06T20:21:52 *** tmandry has joined #aichallenge 2011-11-06T20:21:52 *** tmandry has joined #aichallenge 2011-11-06T20:22:10 a star is good when you have one ant to one objective 2011-11-06T20:22:10 I just use bfs 2011-11-06T20:22:16 I've never had a problem with speed 2011-11-06T20:22:19 but bfs is better for general pathfinding 2011-11-06T20:22:22 hierarchical A*. next question :) 2011-11-06T20:22:52 ok, well that should make it simpler, I've never used A* before lol 2011-11-06T20:23:05 VoidXC: do you know Dijkstra's algorithm? 2011-11-06T20:23:06 A* is only useful for a single target earch 2011-11-06T20:23:08 a star is just bfs with 3 different properties 2011-11-06T20:23:12 1. sorting 2011-11-06T20:23:15 2. sorting by heuristic 2011-11-06T20:23:18 3. stopping once you get to your target 2011-11-06T20:23:44 roflmao: 3 is incorrect :) 2011-11-06T20:23:49 roflmao: I thought A* was more like DFS than BFS? 2011-11-06T20:23:59 yea it is 2011-11-06T20:24:02 Yeah I'm familiar with dijkstra's algorithm, needed to use it in a class I had 2011-11-06T20:24:17 you sort by lowest heurisitic 2011-11-06T20:24:23 pick nodes with lowest estimated cost 2011-11-06T20:24:27 so you end up visiting way less nodes 2011-11-06T20:24:30 than in a standard dfs or bfs 2011-11-06T20:24:37 *** ltriant has joined #aichallenge 2011-11-06T20:24:37 VoidXC: ok, great -- A* is the same thing as Dijkstra's. The only difference is you add a number to each value as you insert it into the priority queue. 2011-11-06T20:25:09 VoidXC: In Dijkstra's, as you enqueue things, you insert them with a score g(x) where g is the distance travelled to that point 2011-11-06T20:25:47 let's make this notationally better -- you have a source s and a target t -- g(s,x) is the cost to get from s to x 2011-11-06T20:25:48 right 2011-11-06T20:26:04 in A* you enqueue with the value g(s,x) + h(x,t) where h is a function that estimates the distance 2011-11-06T20:26:32 the only constraint on h(x,t) is that it cannot overestimate the distance 2011-11-06T20:26:47 Dijkstra's algorithm is just A* with h(x,t) = 0 -- and with that, I'm going to seat some soup. 2011-11-06T20:26:52 yea 2011-11-06T20:26:52 %s/seat/eat/ 2011-11-06T20:26:59 in fact underestimating the distance is frequently used 2011-11-06T20:27:10 you sacrifice the most optimal path but reduce the number of visited nodes by a huge margin 2011-11-06T20:27:12 This guy wrote some interesting stuff on pathfinding http://harablog.wordpress.com/category/pathfinding/ 2011-11-06T20:27:25 *** Antimony has quit IRC (Ping timeout: 240 seconds) 2011-11-06T20:27:31 ohhh ok, so I could just use the distance(loc1, loc2) method in the starter pack as the h function 2011-11-06T20:27:37 yep 2011-11-06T20:27:40 that returns the shortest distance 2011-11-06T20:27:40 that's a standard manhattan heuristic 2011-11-06T20:27:46 yep :) 2011-11-06T20:27:51 I think they have eucledian in there as well 2011-11-06T20:28:04 also — the heuristic you use produces a different walking pattern 2011-11-06T20:28:13 manhattan produces a walking pattern like a right angle 2011-11-06T20:28:17 first goes straight in one direction 2011-11-06T20:28:21 then goes straight in another 2011-11-06T20:28:28 eucledian produces a zigzag 2011-11-06T20:28:44 oh ok 2011-11-06T20:28:55 but in reality they both do the same thing in terms of optimal path 2011-11-06T20:29:07 what do you want to use a star for? 2011-11-06T20:29:40 I thought I would use it for finding the shortest path from an ant to a goal (food, enemy ant colony, etc) 2011-11-06T20:29:47 yea, bad idea 2011-11-06T20:29:49 unless it is one ant 2011-11-06T20:30:02 if you have a specific objective for one ant then a star is good 2011-11-06T20:30:05 otherwise use bfs 2011-11-06T20:30:08 was gonna use it for all my ants, given that my ants have a goal 2011-11-06T20:30:14 you can't 2011-11-06T20:30:20 because the heuristic uses a target and destination 2011-11-06T20:30:41 so a-star is specifically for one-to-one 2011-11-06T20:30:43 i just realized something stupid 2011-11-06T20:30:52 BFS will give you a global costmap 2011-11-06T20:30:57 do one bfs from all the food goals 2011-11-06T20:31:06 and you will have a costmap you can use for all your hundreds of ants 2011-11-06T20:31:11 i can use the same bfs grid on multiple ants with the same target >.> instead of recalculating it 2011-11-06T20:31:13 so it is much more efficient 2011-11-06T20:31:16 what's going on? 2011-11-06T20:31:28 yes exactly hjax! that's the point of using bfs instead of a*! :) 2011-11-06T20:31:37 hi amstan_ 2011-11-06T20:31:38 makes sense 2011-11-06T20:31:41 *** amstan_ is now known as amstan 2011-11-06T20:32:01 i was just about to start coding my bfs, any tips for a noob 2011-11-06T20:32:31 hjax: i really doubt i'm a good resource for this 2011-11-06T20:32:35 make sure you use the right types of lists 2011-11-06T20:32:43 don't do something like 2011-11-06T20:32:45 I use multi-BFS to generate tons of different influence maps, then use those for guiding pathfinding 2011-11-06T20:32:51 same extrarius 2011-11-06T20:33:06 amstan, i was saying it to roflmao, forgot to add his name at the beginning 2011-11-06T20:33:30 hjax: make sure you don't do something like transverse your entire open list each loop 2011-11-06T20:33:46 hjax: if you implement it properly it should take 10 or so miliseconds 2011-11-06T20:33:52 *** foRei has quit IRC (Quit: Bye) 2011-11-06T20:33:53 but I use a pathfinding algorithm that I haven't seen anybody mention and I kinda feel bad keeping it a secret but it's such an obvious choice for the task at hand 2011-11-06T20:34:03 roflmao: in python 2011-11-06T20:34:12 Extrarius: you can tell me 2011-11-06T20:34:24 Extrarius: you can tell me too :P 2011-11-06T20:34:28 so for the bfs with food, you do a BFS from every food location, and stop as soon as you find an ant location - this is the closest ant - and then give that ant the path? 2011-11-06T20:34:41 VoidXC: nononono :) 2011-11-06T20:34:55 VoidXC: bfs uses a FIFO queue, first in first out 2011-11-06T20:35:02 which means that you can do ONE bfs 2011-11-06T20:35:10 for ALL food locations 2011-11-06T20:35:16 VoidXC: im finding the target first, then using bfs to get there 2011-11-06T20:35:20 pass in all your food locations as the initial open_set 2011-11-06T20:35:28 roflmao: i still dont understand that 2011-11-06T20:35:29 VoidXC: For food, I make a map filled with a max value, set the value at each food to 0, then set every square to 1 + the min of its neighbors 2011-11-06T20:35:59 hjax: have you seen a heightmap? 2011-11-06T20:36:05 black and white, some games use it for generating terrain 2011-11-06T20:36:12 uh no 2011-11-06T20:36:19 iterate the last step until it converges, then you have a map that tells you the direction to go for food from any square on the map 2011-11-06T20:37:03 you can do the same for enemy ants, hills, unseen squares, etc 2011-11-06T20:37:20 hjax: k, nevermind, doesn't work anyways as an analogy :P 2011-11-06T20:37:28 Extrarius: that seems like A*, with a metric that's valid for multiple destinations 2011-11-06T20:37:38 hjax: since the queue is FIFO. when you add ALL foods to the open set and roll with that as your starting point 2011-11-06T20:37:45 Extrarius: but it seems easy 2011-11-06T20:37:47 hjax: ALL those foods will be evaluated first before any neighbors are evaluated 2011-11-06T20:37:55 amstan: more like bfs starting at all the target locations 2011-11-06T20:37:58 hjax: so the balance of "neighbor evaluation" is completely fair and even 2011-11-06T20:38:07 but that is just to generate the influence maps 2011-11-06T20:38:10 *** Jak_o_Shadows1 has quit IRC (Read error: Connection reset by peer) 2011-11-06T20:38:23 hjax: here let me draw you a small graph 2011-11-06T20:38:26 roflmao: what im about to do is generate a bfs map for each target, so if i have 5 foods im going after then i have to make 5 small maps, one of each food 2011-11-06T20:38:27 for actual pathfinding, I'm working on imiplementing moving target D*-Lite 2011-11-06T20:38:31 is that wrong 2011-11-06T20:38:34 hjax: yes it is 2011-11-06T20:38:40 hjax: you generate one map with all 5 foods in it 2011-11-06T20:39:00 hjax; just give me a few secs and I'll illustrate it visually :) 2011-11-06T20:39:07 ok, 2011-11-06T20:39:14 I'm listening as well :) 2011-11-06T20:39:19 *** Jak_o_Shadows has joined #aichallenge 2011-11-06T20:40:11 D*-Lite being a good algorithm for dynamic enviroments (ie 'hey, there is a wall there I didn't know about a moment ago), and the 'moving target' part being a modification that makes it more efficient if you're chasing something down or change targets etc 2011-11-06T20:40:52 Extrarius: your "map" is equivalent to performing BFS simultaneously from all food locations 2011-11-06T20:41:35 pedrosorio: yep, and I believe I said that above when amstan said it was like A* 2011-11-06T20:41:49 Extrarius: ups 2011-11-06T20:41:51 xD 2011-11-06T20:42:41 I don't implemented it like a common BFS, I just have while (changed) with two for loops to iterate over the map and update every square 2011-11-06T20:43:49 now you that you know my secrets, you too can have a rank in the 300-500 range on fluxid =-) 2011-11-06T20:45:35 arighty 2011-11-06T20:46:38 I still (apparently) havent' figured out a good way to make use of in the information provided by the influence maps i generate, maybe you can do better =-) 2011-11-06T20:46:39 http://i.minus.com/ixJTjWl64lQk7.png 2011-11-06T20:46:47 numbers represent steps to target 2011-11-06T20:46:55 so your ant would go to a neighbor with the lowest number 2011-11-06T20:47:03 when you calculate it with two objectives 2011-11-06T20:47:12 it simply creates a "combined" map that also works 2011-11-06T20:47:38 and if the ant is closer to the purple objective (neighbor tiles have lower cost) it will move towards purple 2011-11-06T20:47:43 if ant is closer to green objective 2011-11-06T20:47:45 it will move to green 2011-11-06T20:48:10 i put the numbers in different colors so you could see from which target they "stemmed" from 2011-11-06T20:48:20 ohhh i understand know 2011-11-06T20:48:23 now* 2011-11-06T20:48:28 now it is EXTREMELY important 2011-11-06T20:48:32 *** foob has joined #aichallenge 2011-11-06T20:48:39 that you do NOT 'revisit' a node you have already visited in your bfs algorithm 2011-11-06T20:48:45 if a number has been generator on X,Y Tile 2011-11-06T20:48:50 you do not regenerate a number from it 2011-11-06T20:48:59 e.g. from purple's perspective 2011-11-06T20:49:04 when does the turn-timer start counting? from when we receive "turn #" or when we receive "go" 2011-11-06T20:49:06 i was assigning ants to the food instead of foods to ants 2011-11-06T20:49:08 the green 4's are actually 5's, 2011-11-06T20:49:17 yea you do the bfs from the target 2011-11-06T20:49:23 if you do it from the source it doesn't work 2011-11-06T20:49:34 so simply do a bfs where you pass in a list of all your foods as the starting "open_set" 2011-11-06T20:49:38 and it will work 2011-11-06T20:49:43 one bfs map for all your foods for all your ants 2011-11-06T20:49:54 foob: from turn # 2011-11-06T20:50:18 *** Jak_o_Shadows has quit IRC (Read error: Connection reset by peer) 2011-11-06T20:50:19 i wasnt planning on using bfs for the decision making of what foods an ant should go for 2011-11-06T20:50:22 or most accurately from when your process gets it's SIGCONT to resume 2011-11-06T20:50:52 hjax: it works so I recommend :) 2011-11-06T20:51:11 but doing i have to apply bfs for the entire visable map then? 2011-11-06T20:51:17 dont* 2011-11-06T20:51:27 yes you do 2011-11-06T20:51:32 bfs is by definition exhaustive 2011-11-06T20:51:48 hjax: you don't have to use it directly, but it is valuable information to have available for other algorithms 2011-11-06T20:52:10 bugnuts: thanks! 2011-11-06T20:52:46 Now for the graph on which this bfs will be run, do you generate it every turn or somehow only add information to it that is new, ie stuff that just became visible? 2011-11-06T20:52:48 hmmm i was just planning on doing bfs to the sight range of the ant that saw the food, but i suppose if theres 5 ants i dont want to do it 5 times 2011-11-06T20:53:33 hjax: bfs should not be expensive 2011-11-06T20:53:38 it is way cheaper to do one bfs for all your ants 2011-11-06T20:53:45 err for all your foods 2011-11-06T20:53:52 and that one bfs works for every single ant on your map 2011-11-06T20:54:03 if you have 150 that's a 150 pathfinds combined into one 2011-11-06T20:54:20 what if i did it backwords? 2011-11-06T20:54:53 what do you mean 2011-11-06T20:55:00 applied bfs for all of my ants, because then it would be much easier to find the closest ant to something, and theyd path the same 2011-11-06T20:55:08 doesn't work 2011-11-06T20:55:17 bfs gives you cost-to-target 2011-11-06T20:55:26 so an applied bfs for all your ants would give you the best path TO your ants 2011-11-06T20:55:35 which, actually, can be useful for certain things 2011-11-06T20:55:38 but not for food gathering 2011-11-06T20:56:02 yes, and then my ants backtrack the path and its identical to the best path to the foos 2011-11-06T20:56:15 hjax: yes, that is a valid approach also 2011-11-06T20:56:41 don't quite get it 2011-11-06T20:57:10 ill make a drawing :P, brb 2011-11-06T20:57:30 roflmao: do bfs from the ants, then iterate over foods to find the closest ant and trace the path from the food to the ant and use that path in reverse for the ant 2011-11-06T20:57:45 *** foob has quit IRC (Quit: Page closed) 2011-11-06T20:57:51 aaj 2011-11-06T20:57:54 i got it now 2011-11-06T20:57:56 yeah, makes sense 2011-11-06T20:58:28 http://aichallenge.org/visualizer.php?game=66773&user=2772 2011-11-06T20:58:37 "pats his bot in the back" 2011-11-06T20:58:39 I'm proud of you son. 2011-11-06T20:59:48 *** Antimony has joined #aichallenge 2011-11-06T21:01:43 im making my example anyhow 2011-11-06T21:01:53 *** roflmao has quit IRC (Quit: Leaving.) 2011-11-06T21:03:24 ah ha: http://i.imgur.com/YtrSH.png 2011-11-06T21:03:52 if blue is my ant, then i can path to the green foods, the purple hill, or the red enemy easy 2011-11-06T21:04:10 if i have two ants, then i can path the closest one 2011-11-06T21:04:43 but both ways will a problem if i need to path multiple ants to the same place 2011-11-06T21:05:01 hit a probelm* 2011-11-06T21:05:08 roflmao: How long does it take you to BFS the entire map on say a 200x200 map? In ruby its taking me > 100 ms which seems painfully long 2011-11-06T21:05:09 hit a problem* 2011-11-06T21:06:24 roflmao: you still here? 2011-11-06T21:06:33 I think he left :( 2011-11-06T21:07:00 VoidXC: Indeed, thanks I didn't notice. 2011-11-06T21:08:05 i missed it too lmao 2011-11-06T21:08:08 http://aichallenge.org/visualizer.php?game=66391&user=9216 2011-11-06T21:08:21 what is this? identical bots? 2011-11-06T21:08:51 hjax: they look like starterbots 2011-11-06T21:09:14 amstan: are the starter bots not uniforn across languages? 2011-11-06T21:09:19 uniform* 2011-11-06T21:09:26 hjax: they are supposed to be 2011-11-06T21:10:00 python's starter bot submits random valid moves, this one is far different 2011-11-06T21:10:29 unless you guys updated pythons starter bot recently 2011-11-06T21:10:53 I thought the bots were all the same in terms of behaviour 2011-11-06T21:11:01 but they are very different in terms of functions implemented 2011-11-06T21:12:20 *** grwip has quit IRC (Quit: Leaving) 2011-11-06T21:12:59 * hjax facepalm 2011-11-06T21:13:12 nvm 2011-11-06T21:15:17 *** NoxiaZ^ has quit IRC (Ping timeout: 240 seconds) 2011-11-06T21:22:47 *** alc has joined #aichallenge 2011-11-06T21:27:14 *** AVAVT has joined #aichallenge 2011-11-06T21:29:29 *** Migi32 has quit IRC (Remote host closed the connection) 2011-11-06T21:36:06 *** amstan_ has joined #aichallenge 2011-11-06T21:36:06 *** ChanServ sets mode: +o amstan_ 2011-11-06T21:36:54 *** hjax has quit IRC (Quit: Page closed) 2011-11-06T21:37:26 the C++ starter bot isn't random 2011-11-06T21:37:34 it tries all valid moves in order starting with North 2011-11-06T21:38:07 *** Ionic_Groove has quit IRC (Ping timeout: 252 seconds) 2011-11-06T21:40:15 sounds like a dr suess bot - it's a north going zax. 2011-11-06T21:41:17 *** amstan_ has quit IRC (Ping timeout: 240 seconds) 2011-11-06T21:48:57 *** ccc has joined #aichallenge 2011-11-06T21:49:06 I give up trying to figure out how to keep track of guard ants. I'm going to make all my ants behave as guards! 2011-11-06T21:49:19 unfortunately, that will probably make exploration even harder 2011-11-06T21:49:51 yeah, that's not going to work 2011-11-06T21:50:31 how to keep track of guard ants? 2011-11-06T21:50:39 just save the location of guard ants? 2011-11-06T21:52:03 *** amstan_ has joined #aichallenge 2011-11-06T21:52:03 *** ChanServ sets mode: +o amstan_ 2011-11-06T21:57:17 *** amstan_ has quit IRC (Ping timeout: 240 seconds) 2011-11-06T22:02:36 *** hjax has joined #aichallenge 2011-11-06T22:02:45 *** pedrosorio has quit IRC (Quit: Page closed) 2011-11-06T22:03:17 *** hjax has quit IRC (Remote host closed the connection) 2011-11-06T22:03:28 *** hjax has joined #aichallenge 2011-11-06T22:03:41 I feel stupid 2011-11-06T22:03:51 *** ProperChaos has quit IRC (Ping timeout: 265 seconds) 2011-11-06T22:04:21 I decide to add BFS to my bot, but haven't the foggiest idea on how to start >.> 2011-11-06T22:04:42 *** MagnumPU has joined #aichallenge 2011-11-06T22:07:22 echo 2011-11-06T22:08:01 *** hjax has quit IRC (Remote host closed the connection) 2011-11-06T22:11:46 *** hjax has joined #aichallenge 2011-11-06T22:12:26 in a cellular automata/diffusion based system, how do you prevent two equidistant ants from seeking the same goal (ie. piece of food)? 2011-11-06T22:13:19 *** Da_Blitz has quit IRC (Ping timeout: 248 seconds) 2011-11-06T22:13:24 you are doing yours with cellular automata as opposed to hive minds? 2011-11-06T22:14:06 I coded my ants to try to avoid each other 2011-11-06T22:14:19 but now a pair of ants gets stuck at the entrance to tunnels 2011-11-06T22:14:28 hive minds? 2011-11-06T22:15:12 I just loop through all my ants, so my bot can use information from other ants when it makes it's decisions 2011-11-06T22:18:13 I keep a list of every food, and remove from the list foods that have already been assigned to an ant 2011-11-06T22:20:29 ah, explanation clear (I just read the important bit in this paper) 2011-11-06T22:25:23 idk how to implement BFS properly, I don't want to mess up 2011-11-06T22:26:26 Antimony? 2011-11-06T22:26:36 any hints? :p 2011-11-06T22:27:45 *** hjax has quit IRC (Quit: hjax) 2011-11-06T22:28:02 *** hjax has joined #aichallenge 2011-11-06T22:28:22 grr 2011-11-06T22:28:30 *** avdg has quit IRC (Ping timeout: 244 seconds) 2011-11-06T22:30:39 *** djr_ has quit IRC (Read error: Connection reset by peer) 2011-11-06T22:31:00 anyone here? I'm bores 2011-11-06T22:31:08 bored* 2011-11-06T22:31:12 *** ecarpenter84 has joined #aichallenge 2011-11-06T22:31:30 *** djr_ has joined #aichallenge 2011-11-06T22:31:50 hi 2011-11-06T22:32:04 has the combat been specifically broken down anywhere into math formulas 2011-11-06T22:32:04 gahh my bot is eliminated again (*3*0 2011-11-06T22:32:41 yes ecarpenter, I don't remember it though 2011-11-06T22:33:09 if friendly ants in range < enemy ants in range then any dies 2011-11-06T22:33:15 *** Ionic_Groove has joined #aichallenge 2011-11-06T22:33:15 ant*, I think 2011-11-06T22:33:25 what is the exact range? 2011-11-06T22:33:40 and how is it resolved on a diagonal direction 2011-11-06T22:33:59 I'm not sure about those 2011-11-06T22:34:08 watch a replay and see 2011-11-06T22:34:52 ill try to do some testing with a special made bot on a custom map 2011-11-06T22:34:53 *** TheLinker has quit IRC (Ping timeout: 240 seconds) 2011-11-06T22:34:57 ill let you know what i discover 2011-11-06T22:35:03 ok 2011-11-06T22:37:17 *** hjax has quit IRC (Remote host closed the connection) 2011-11-06T22:37:19 i got tues/weds off this week so i need to be ready for some serious bot developing 2011-11-06T22:37:40 bmh: move one ant, then update distances so the other one knows its no longer closest? 2011-11-06T22:38:06 a1k0n: the paper has a cuter solution -- ants block flow 2011-11-06T22:38:29 it doesn't help in the equidistant case, but it will prevent the entire army from roving in one direction 2011-11-06T22:38:47 they duffuse suppression to each other? thougjt it might ne someyhing like that 2011-11-06T22:39:49 yikes my phone typing is bad 2011-11-06T22:40:59 it's Sunday night, what are you doing on IRC? 2011-11-06T22:41:04 *** avdg has joined #aichallenge 2011-11-06T22:41:29 lying in bed with a sleeping infant on top of me 2011-11-06T22:41:46 That sounds existentially satisfying 2011-11-06T22:42:02 *** dvladim has joined #aichallenge 2011-11-06T22:42:09 *** hjax has joined #aichallenge 2011-11-06T22:42:10 the screaming prior to that wasnt 2011-11-06T22:42:20 ima back 2011-11-06T22:43:00 *** MagnumPU has quit IRC (Ping timeout: 265 seconds) 2011-11-06T22:43:56 a1k0n: http://www.smbc-comics.com/index.php?db=comics&id=2145#comic 2011-11-06T22:44:41 *** hjax has quit IRC (Client Quit) 2011-11-06T22:44:55 *** hjax has joined #aichallenge 2011-11-06T22:44:57 *** amstan has quit IRC (Remote host closed the connection) 2011-11-06T22:45:14 that's going to affect my bot eventually 2011-11-06T22:46:29 bmh: ironically right as you said "that seens existentially satisfying" all hell broke loose: my 3 year old wandered in the room and started crying cuz he wanted to play braid, briefly waking up the newborn 2011-11-06T22:46:42 we're cool now. 2011-11-06T22:46:48 *** amstan has joined #aichallenge 2011-11-06T22:46:48 *** ChanServ sets mode: +o amstan 2011-11-06T22:47:18 a1k0n: I'm glad that my only responsibilities involve bug trackers instead of other humans 2011-11-06T22:47:35 *** hjax has quit IRC (Remote host closed the connection) 2011-11-06T22:47:59 an entirely different kind of whining 2011-11-06T22:48:40 *** TheLinker has joined #aichallenge 2011-11-06T22:49:01 next time someone rejects a commit of mine, they're getting a demerit. 2011-11-06T22:51:54 *** marina has joined #aichallenge 2011-11-06T22:54:08 hello there 2011-11-06T22:54:32 does anyone know how Haskell code is supposed to be compiled for this competition? 2011-11-06T22:54:46 my code compiles on the server, but not on my local machine 2011-11-06T22:55:19 I just used "ghc MyBot.hs" but test script says the resulting binary fails to start 2011-11-06T22:56:18 *** wombot_ has quit IRC (Quit: ChatZilla 0.9.87 [SeaMonkey 2.4.1/20110928161145]) 2011-11-06T22:56:45 marina: I can give you my build script, your mileage may vary 2011-11-06T22:57:08 bmh: that would be great 2011-11-06T22:57:22 it's pretty braindead 2011-11-06T22:57:24 but it works 2011-11-06T22:57:26 marina: depending on the version of ghc you have you may need to use the --make flag 2011-11-06T22:57:35 tried both with same result 2011-11-06T22:57:40 what's your version of it? 2011-11-06T22:57:48 https://gist.github.com/771d2eacc23a8a6c579a 2011-11-06T22:57:51 i'm on the bleeding edge 2011-11-06T22:57:59 7.2 2011-11-06T22:58:01 jmcarthur: dammit, someone else is using haskell! 2011-11-06T22:58:14 bmh: it's okay, i'm not taking it very seriously ^_^ 2011-11-06T22:58:16 bmh: they forced me ;) 2011-11-06T22:58:22 marina: they? 2011-11-06T22:58:38 I think my team is all using 7.0.2 2011-11-06T22:58:45 i mean i'm not taking the contest seriously. i don't mean to imply i'm not taking other haskellers seriously 2011-11-06T22:58:46 bmh: if i was doing it for my own fun, I'd pick something I know how to compile ;) 2011-11-06T22:59:05 my university uses this as a course project 2011-11-06T22:59:06 marina: taking an AI class? 2011-11-06T22:59:12 that's splendid! 2011-11-06T22:59:23 bmh: "functional languages" class :) 2011-11-06T23:00:05 bmh: my method is pretty much the same, unfortunately 2011-11-06T23:00:07 jmcarthur: I've been spending a lot of time rewriting the starter. I think the notion of a point as a tuple is incorrect 2011-11-06T23:00:51 is there a way to see your score at the moment or enemies scores from ants.py 2011-11-06T23:00:51 bmh: what do you think it should be? 2011-11-06T23:01:16 jmcarthur: Points should know about their bounds so you don't need to pass around World or GameParams anywhere 2011-11-06T23:01:27 Point row col maxRow maxCol 2011-11-06T23:01:38 i wondered how much faster you could get your code running with a customer starter 2011-11-06T23:01:47 ah. i'm just making my Coord type opaque and have all the functions that need it require the map dimensions as a parameter 2011-11-06T23:02:11 if i was using a nicer type system i would put the dimensions in the type 2011-11-06T23:02:32 but i don't have the patience to write an agda bot ;) 2011-11-06T23:02:41 jmcarthur: I'm happy to compete with you for "best haskell bot" 2011-11-06T23:02:56 i'd be easy competition. as i said, i'm not taking this contest too seriously 2011-11-06T23:03:04 not this time at least 2011-11-06T23:03:16 jmcarthur: but.. what about your universal UCT algorithm? can't you apply it to ants here? 2011-11-06T23:03:55 UCT? 2011-11-06T23:04:03 a1k0n: not sure if i should be detecting sarcasm there ;) 2011-11-06T23:04:43 heh heh heh 2011-11-06T23:04:59 *** treeform has joined #aichallenge 2011-11-06T23:05:06 bmh: http://senseis.xmp.net/?UCT 2011-11-06T23:05:20 hi all 2011-11-06T23:05:26 lol sensei's library xD 2011-11-06T23:05:49 although i did say earlier i might try to use the most inappropriate kind of AI i can think of to see if i can make it work anyway 2011-11-06T23:06:04 that's easy: genetic programming 2011-11-06T23:06:12 set it and forget it! 2011-11-06T23:06:12 that's what i was thinking 2011-11-06T23:06:13 a1k0n: you type faster than me, even on a phone. 2011-11-06T23:06:23 oh i'm on my lappy now 2011-11-06T23:06:24 no love for genetic programming? 2011-11-06T23:06:29 or maybe neural networks :P 2011-11-06T23:07:43 don't get me wrong, i will admit to implementing genetic programming before, in a pretty clever purely functional datastructure way 2011-11-06T23:07:58 haskell would be perfect for that 2011-11-06T23:08:02 Why not some zany Gibbs sampler? 2011-11-06T23:08:13 because that's probbaly actually a good idea somehow 2011-11-06T23:08:18 My applied mathematician friends use those words a lot and sound smart. 2011-11-06T23:08:22 haha 2011-11-06T23:08:34 well, if we only had a generative model.. 2011-11-06T23:08:54 a1k0n: I'm taking a stab at the diffusive model once I clean up my infrastructure 2011-11-06T23:09:05 I'm going to have a generative model of the unobserved world. 2011-11-06T23:09:07 you should submit something aside from the starter bot 2011-11-06T23:09:13 i should go for language processing so i can just tell my bot, in english, to win the game 2011-11-06T23:09:24 jmcarthur: brilliant 2011-11-06T23:09:50 jmcarthur++; 2011-11-06T23:09:57 (too bad we live in an immutable world) 2011-11-06T23:10:24 too bad? 2011-11-06T23:10:29 i'm quite happy with this reality 2011-11-06T23:10:31 and i am an immutable girl 2011-11-06T23:10:32 *** dvladim has quit IRC (Ping timeout: 258 seconds) 2011-11-06T23:11:01 come a1k0n. let's go party 2011-11-06T23:11:07 *come on 2011-11-06T23:11:46 i was thinking madonna, not aqua, but sure 2011-11-06T23:12:02 immutable girl in an immutable world, is how i read it 2011-11-06T23:12:27 jmcarthur: why don't you train your AI to get a Visa platinum card and then phone the concierge for orders? 2011-11-06T23:12:44 bmh: but how will that win at ants? 2011-11-06T23:12:48 *** yoden has quit IRC (Quit: Leaving.) 2011-11-06T23:12:52 *** ReverendFlibble has joined #aichallenge 2011-11-06T23:13:02 jmcarthur: concierge-sourcing, duh. 2011-11-06T23:13:15 are there any site statistics for language usage 2011-11-06T23:13:16 ? 2011-11-06T23:13:50 ReverendFlibble: hmm, indirectly. e.g. http://aichallenge.org/language_profile.php?language=Java 2011-11-06T23:14:27 how do you guys implement defensive mechanic in your strategy? My bot is just rushing for the kill right now so I usually get a burst in score right after the game start but then it would be eliminated after 200 turns or so :( 2011-11-06T23:14:28 does any one know of persons using Ada? 2011-11-06T23:14:50 nvm i get it 2011-11-06T23:14:52 thanks 2011-11-06T23:15:17 a1k0n: do you know who joakimar is? 2011-11-06T23:19:12 bmh: i do! he's in my building. 2011-11-06T23:19:32 a1k0n: don't try to trick the nice people into thinking that you work ;) 2011-11-06T23:19:56 i'm on leave until december, so i'm not even supposed to do work. so there! 2011-11-06T23:20:53 man i want to be on leave 2011-11-06T23:21:03 then have a baby 2011-11-06T23:21:24 working's a lot easier 2011-11-06T23:21:27 I spent August, September and October on "leave" -- that was great apart from the intestinal parasites. 2011-11-06T23:21:40 awesome. were they tropical intestinal parasites? 2011-11-06T23:22:04 yep. 2011-11-06T23:30:13 I'm still trying to figure out how to do a good defense 2011-11-06T23:30:28 I programmged my bot to keep all ants at least as close as closest possible enemy 2011-11-06T23:30:36 but that measn they don't collect food or explore 2011-11-06T23:35:56 That seems like a strictly bad directive. 2011-11-06T23:36:12 You don't need to keep the whole army near your hill, just enough to repel invaders. And remember to count eatable food as ants. 2011-11-06T23:45:35 Are there persons here I can ask about rules of competition 2011-11-06T23:47:10 ok, you know what? The solution to every problem is more brute force 2011-11-06T23:47:11 i read the rules on the site? does that count? 2011-11-06T23:47:29 no. 2011-11-06T23:47:31 Every frame, for every hill, I'll loop through all ants and assign the closest n as guards 2011-11-06T23:47:59 Antimony: if you watch more adanved bots play 2011-11-06T23:48:04 they don't have graurds 2011-11-06T23:48:19 but they exercise territory control 2011-11-06T23:48:30 they don't let other ants int by holding teretory 2011-11-06T23:48:59 my guards aren't restricted to being next to the mound 2011-11-06T23:49:08 they just have to be closer than any possible enemy ant 2011-11-06T23:49:20 ok 2011-11-06T23:49:48 is ants.distance consisent / appropirate for a* 2011-11-06T23:50:12 its consistant but not appropriate 2011-11-06T23:50:16 you need to use manhattan dist 2011-11-06T23:50:45 oh i thought it was 2011-11-06T23:51:01 is there a prebuilt manhattan that respects wrapping 2011-11-06T23:51:25 negative, atleast my started does not have it 2011-11-06T23:52:18 *** Jak_o_Shadows has joined #aichallenge 2011-11-06T23:53:08 if i used modulo on a non wrap respective manhattan distance with the borders as the modulo. then i would get a correct answer right? 2011-11-06T23:54:00 you can rewrite ant.distance into manhattan distance if you want 2011-11-06T23:54:10 *** Saulzar has joined #aichallenge 2011-11-06T23:54:34 ill copy it and make ants.mdistance 2011-11-06T23:54:35 the values are already there, just return manhattan equation instead 2011-11-06T23:54:35 good iea 2011-11-06T23:54:41 thats what i did i think distance is very simple 2011-11-06T23:55:25 for the recursive reconstruct node part of the astar 2011-11-06T23:55:34 is there a better way then copying the lists for each recursion in python 2011-11-06T23:55:49 its pretty fun watching new version of my AI beat older versions that I wrote. 2011-11-06T23:56:02 it's depressing when the opposite starts to happen 2011-11-06T23:56:06 also, I don't think default ant.distance is consistent for a* (at least in my starter Java package), it return distance^2 instead of distance, which is certainly not healthy for A* 2011-11-06T23:56:44 a1k0n: yeah i have those moments too, but i normally know how to fix it. 2011-11-06T23:57:09 i was also thinking that i should set a max radius of considered nodes or something 2011-11-06T23:57:15 any one have a good solution for micro level fighting? 2011-11-06T23:57:30 thats one thing i am struggling to crack 2011-11-06T23:57:37 a1k0n: it was even more depressing when my new version lose to the tutorial bot T_T