2011-03-18T00:04:44 *** davidjliu has joined #aichallenge 2011-03-18T00:05:39 is anybody here? 2011-03-18T00:05:46 yep 2011-03-18T00:05:48 shoot 2011-03-18T00:05:56 so, I was just reading the forum 2011-03-18T00:06:07 and I'm quite a fan of the 2v2 idea that Stocha had 2011-03-18T00:06:07 hello fellow pythonador 2011-03-18T00:06:13 hello 2011-03-18T00:06:19 where each bot is spawned twice 2011-03-18T00:06:32 hmmm okay 2011-03-18T00:06:40 and has to decide whether each of the other ants is itself or an enemy 2011-03-18T00:06:43 2v2v2? 2011-03-18T00:06:56 McLeopold: this: http://ai-contest.com/forum/viewtopic.php?f=21&t=1357 2011-03-18T00:06:58 or just 2v2 I was thinking, but I don't see why not either way 2011-03-18T00:07:04 i think it's unfeasible given the server constraints and the number of players we'd like to have 2011-03-18T00:07:08 we could do a mixture 2011-03-18T00:07:17 it's not unfeasible 2011-03-18T00:07:24 davidjliu: the problem is that it doesn't give us any more info 2011-03-18T00:07:30 davidjliu: it just complicates the game 2011-03-18T00:07:40 McLeopold: all bots have to be running at once 2011-03-18T00:07:43 if we are going to support 4 players or 6 players, why not 2 of the same bot 2011-03-18T00:07:55 because then you go back to a 2 or 3 player game 2011-03-18T00:08:02 so 2011-03-18T00:08:04 McLeopold: but then we get only 3 opponents actually playingh 2011-03-18T00:08:08 if we're doing n-player we might as well do it properly 2011-03-18T00:08:08 so 2011-03-18T00:08:09 I mean, I guess it does make the game dramatically different, but it seems to me to be more exciting than the normal ants game 2011-03-18T00:08:13 McLeopold: when we could of had data from 6 2011-03-18T00:08:16 as communication between bots is a lot more important 2011-03-18T00:08:25 and it has dancing. which should be super exciting 2011-03-18T00:08:34 option1 has dancing 2011-03-18T00:08:42 for battle that is 2011-03-18T00:09:09 we had this same dillema with random maps in planet wars, and playing the same map twice in order to make it fair 2011-03-18T00:09:14 antimatroid: it's like clones for galcon online :D 2011-03-18T00:09:16 you don't actually get more data 2011-03-18T00:09:26 er, remind me what option1 is? I haven't really been following 2011-03-18T00:09:37 battle options 2011-03-18T00:09:50 I mean, I like it not because of "making it fair", but doing this dramatically changes the game 2011-03-18T00:09:51 amstan: I don't think the point is to get more data, it is to make the game more fun and exciting 2011-03-18T00:09:55 yeah 2011-03-18T00:09:58 check the specs page: https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-03-18T00:11:00 davidjliu: in a nutshell, it's a 1:1 kill ratio vs a 0:1 kill ratio that is the difference 2011-03-18T00:11:02 playing 2 bots of each player seems like too large of a cost for very little added interesting outcomes 2011-03-18T00:11:21 the dancing in that case is more of a "tactical" dance than I guess an "expressive" dance, if that makes any sense- as in the dancing is a tactical manuever 2011-03-18T00:11:22 janzert: I think you underestimate the added interest 2011-03-18T00:11:37 it's communication 2011-03-18T00:11:43 what the difference is that the bot doesn't know the identity of any of the ants it doesn't itself control 2011-03-18T00:12:06 so it has to find out for each ant it encounters whether it is friend or foe 2011-03-18T00:12:11 which probably will involve dancing 2011-03-18T00:12:18 which could also be used to pass information 2011-03-18T00:12:21 I don't see much communication happening beyond initial recognition 2011-03-18T00:12:35 and that isn't terribly interesting to me 2011-03-18T00:12:38 i think that's a huge step away from not setting up huge brick walls for people 2011-03-18T00:12:53 i'm with janzert, but it is personal opinion obviously 2011-03-18T00:12:59 there's the possibility of passing information from bot to bot, and then for the opposing bot to try to mimic recognition 2011-03-18T00:13:03 but yeah, it might be overcomplicating 2011-03-18T00:13:35 if you could communicate, you would just send a string of things to do, but have a function for re arranging that message 2011-03-18T00:14:20 davidjliu: feel free to read my post here for why i think option 1 rules : http://ai-contest.com/forum/viewtopic.php?f=21&t=1313&start=30 2011-03-18T00:14:26 it's the second last post on that page :\ sorry 2011-03-18T00:15:47 so, option 1 is just based on the number of enemies within a certain radius, right? 2011-03-18T00:15:57 If we didn't do 2 bots each, then there might be very little attempt at bot to bot communication. If we do, then everyone will want to attempt it, and it opens the door for spying. 2011-03-18T00:16:00 I mean, I personally think it's better than just 1:1 killing as well, I think 2011-03-18T00:16:30 it's awesome when you actually think about it compared to 1:1 2011-03-18T00:16:47 it's also simpler to implement 2011-03-18T00:16:47 I quite agree 2011-03-18T00:16:48 Spying is a good thing. If you make an incentive for everyone to attempt com, then it really becomes a fun game. 2011-03-18T00:16:54 Although I still think 2 bots is super exciting 2011-03-18T00:17:03 McLeopold: cooperation in this will come in the form of tit-for-tat for helping take out a mutual enemy 2011-03-18T00:17:15 Spying as in, like, signal spying? 2011-03-18T00:17:28 interpreting the message an ant is displaying 2011-03-18T00:17:35 yes, but very few will try it unless they know they are going to attempt to communicate with themselves 2011-03-18T00:17:38 like it might be a max size string 2011-03-18T00:17:38 with severely limited sight radius and easily killing opponent ants spying is going to be almost non-existant no matter what 2011-03-18T00:17:49 McLeopold: with themselves? 2011-03-18T00:17:53 2 bots gives you a reason to try com 2011-03-18T00:18:02 McLeopold: did you see these maps? http://pastebin.com/cgk3adBk 2011-03-18T00:18:17 I think that with 2 players the way that "spying" would work is that your bot would start to give its signal when it encountered an enemy, and then you would get information from that 2011-03-18T00:18:19 or something 2011-03-18T00:18:22 done with a bunch of random walks carving through water 2011-03-18T00:18:56 antimatroid: yes, I really like them. I'm also hoping my voronoi method makes the starter packs 2011-03-18T00:19:32 i'm going to do a voronoi like asymmetric one at some point 2011-03-18T00:19:42 davidjliu: what are your thoughts on using asymmetric maps? 2011-03-18T00:20:24 antimatroid: for maze maps, do a random walk on the even integers and bias away from repeats 2011-03-18T00:20:49 yeah i'll do that at some point 2011-03-18T00:20:59 I mean, it seems to me like you could just take a smaller assymetric map and rotate it around 4 times and make a symetric map 2011-03-18T00:21:13 davidjliu: what if you have more than 4 players? 2011-03-18T00:21:21 hm 2011-03-18T00:21:39 you can't have symmetric relative positions across all players with more than 3 players on a torus 2011-03-18T00:21:49 just 2 on your normal grid 2011-03-18T00:21:53 you could do that hexagonally as well, I imagine 2011-03-18T00:21:56 at least with just 1 starting ant per player 2011-03-18T00:22:16 yeah we considered that, you can even wrap that to form a torus but decided not to 2011-03-18T00:22:31 are there going to be more than 4 players at a time? 2011-03-18T00:23:10 hopefully 2011-03-18T00:23:24 One of the issues I see is that if the game is between more than 4 players a lot of what determines how your bot does is its relative placement 2011-03-18T00:23:36 (i.e. hopefully I get started near the sucky bot so I can kill it quickly, or something) 2011-03-18T00:23:40 bots are ranked at the end of each game just off relative positions 2011-03-18T00:24:04 just throw that on the pile of things we're saying are covered by number of games played 2011-03-18T00:24:18 hm, evidently I've missed quite a bit over the last few weeks/month 2011-03-18T00:24:36 i'm still iffy about the fact that your order rank isn't independent of your order of winning games 2011-03-18T00:25:06 for the record, i got aerique push access so he can do changes easier 2011-03-18T00:25:10 due to the pairing algorithm, but i have no solution for it 2011-03-18T00:26:09 so, what are the major issues with having a 1v1 with to bots generated for each player? 2011-03-18T00:26:22 other than the fact that it seems like a lot of work has been done in a different direction already 2011-03-18T00:26:23 McLeopold: when was the last time you ran a game with battle option 1 going? 2011-03-18T00:26:32 i'd be curious to hear what the speed difference was like 2011-03-18T00:27:02 assuming a game has to play on the one server, that's 2 cores for all bots 2011-03-18T00:27:15 a month or so 2011-03-18T00:27:30 if you do 2 ants per player you need to have 3 ants per process in order to have more than 2 players 2011-03-18T00:27:37 and good luck doing any more than that 2011-03-18T00:27:49 the code was definetly broken for option 1 before I re-factored the other day 2011-03-18T00:28:05 it's pretty easy to do 1 fairly efficiently 2011-03-18T00:28:05 yeah, but that wasn't the code I tested on :) 2011-03-18T00:28:06 it might stil be broken :P 2011-03-18T00:28:18 ahhh 2011-03-18T00:28:20 It would just be a 1v1 though 2011-03-18T00:28:20 2 i don't think one can 2011-03-18T00:28:43 i'd be a little disappointed to move away from n-player now 2011-03-18T00:29:16 we can do large games on tcp 2011-03-18T00:29:27 oh yeah, add that to the launch checklist 2011-03-18T00:29:33 I don't see how everyone thinks 26 players is feasable, and 6 players with 3 unique bots is not? Do we not know math? 2011-03-18T00:29:54 I don't know math 2011-03-18T00:29:56 McLeopold: janzert reminded us yesterday that we've got a big problem there 2011-03-18T00:30:09 a memory problem 2011-03-18T00:30:35 you wouldn't run 13 bots on the one processor 2011-03-18T00:31:00 yes we would 2011-03-18T00:31:05 we could make it a team game? 2011-03-18T00:31:05 serially 2011-03-18T00:31:19 you actually know who is on your team, then you've got to try and work together to raise your score 2011-03-18T00:31:22 sigh: so.. you don't have commit access? 2011-03-18T00:31:32 amstan: no I don't 2011-03-18T00:31:41 sigh: how did that happen? why didn't you yell? 2011-03-18T00:31:54 he sighed :P 2011-03-18T00:31:57 I don't know 2011-03-18T00:32:00 lol 2011-03-18T00:32:01 he was so productive without it 2011-03-18T00:32:23 All my stuff goes through McLeopold anyway, because he acts as gatekeeper to the engine :P 2011-03-18T00:32:24 * janzert thinks a team game is more interesting than 2 instances of each players bot 2011-03-18T00:32:30 does that mean I can stop mergine now? 2011-03-18T00:32:48 McLeopold: maybe? 2011-03-18T00:32:51 * McLeopold thinks a team game is *way* less interesting that 2 instances 2011-03-18T00:32:55 mergine? 2011-03-18T00:32:59 i wouldn't mind 2 bots of each player if there were numerous players and you knew who your friends are 2011-03-18T00:33:07 sigh: done 2011-03-18T00:33:22 amstan: thanks 2011-03-18T00:33:31 team play will never go over well 2011-03-18T00:33:41 who else regularly commits? 2011-03-18T00:33:41 unless you are your own team 2011-03-18T00:33:52 bss03: want push access? 2011-03-18T00:33:53 bss03? 2011-03-18T00:34:13 McLeopold: yeah, he does the matchmaking stuff 2011-03-18T00:34:21 yes, I do prefer single instance 'deathmatch' over all the alternatives so far 2011-03-18T00:34:47 sigh: so, it's official, you are now in charge of the engine 2011-03-18T00:35:21 McLeopold: https://github.com/stephen-smith that's bss03 2011-03-18T00:35:26 yes 2011-03-18T00:35:34 well, I'll do what I can... I won't have much time later though 2011-03-18T00:35:36 I've been merging his stuff 2011-03-18T00:35:44 should i give him commit access, did he use git properly? 2011-03-18T00:36:00 I don't use git properly... 2011-03-18T00:36:08 i'm still learning what the hell i'm doing with git 2011-03-18T00:36:08 McLeopold: yeah, but you have no choice 2011-03-18T00:36:41 well.. you guys have it already 2011-03-18T00:36:53 i'm just wondering the criteria for giving other ppl push access 2011-03-18T00:37:25 do they also have push access to zeta? 2011-03-18T00:37:30 yes 2011-03-18T00:39:30 k, adding him, he seems like he knows his stuff 2011-03-18T00:39:30 he doesn't do a lot of commits 2011-03-18T00:39:42 McLeopold: or not? lol 2011-03-18T00:39:49 yeah, add him 2011-03-18T00:39:52 ok 2011-03-18T00:39:58 but that's it, i'm going to bed after! 2011-03-18T00:40:12 contestbot: later tell bss03 you can now push directly to the main repo 2011-03-18T00:40:12 amstan: Yes master! 2011-03-18T01:24:19 *** McLeopold has left #aichallenge 2011-03-18T01:28:13 *** davidjliu has quit IRC (Quit: Page closed) 2011-03-18T01:55:57 *** amstan has quit IRC (Ping timeout: 250 seconds) 2011-03-18T02:01:18 *** delt0r_ has joined #aichallenge 2011-03-18T02:02:41 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-03-18T02:07:55 *** closedbracket has joined #aichallenge 2011-03-18T02:16:28 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-18T02:23:03 *** sigh has left #aichallenge ("Leaving") 2011-03-18T02:25:51 *** closedbracket has joined #aichallenge 2011-03-18T02:31:11 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-18T03:17:03 *** Zannick has quit IRC (Ping timeout: 276 seconds) 2011-03-18T03:19:34 *** sigh has joined #aichallenge 2011-03-18T04:37:16 *** boegel has joined #aichallenge 2011-03-18T04:37:46 *** boegel has joined #aichallenge 2011-03-18T04:48:03 *** aerique has joined #aichallenge 2011-03-18T05:29:33 aichallenge: sigh epsilon * r41b4643 / (ants/ants.py ants/playgame.py): Merge remote branch 'sigh/symmetric-food' into epsilon - http://bit.ly/eRWsKt 2011-03-18T05:29:35 aichallenge: sigh epsilon * r6e319fa / ants/ants.py : Merge remote branch 'sigh/refactor' into epsilon - http://bit.ly/fO30K9 2011-03-18T05:29:36 aichallenge: sigh epsilon * r08fcb63 / ants/ants.py : Fix error in get_replay - http://bit.ly/gxpCH8 2011-03-18T05:51:00 *** boegel has quit IRC (Ping timeout: 276 seconds) 2011-03-18T06:01:01 *** Naktibalda has joined #aichallenge 2011-03-18T06:05:14 *** boegel has joined #aichallenge 2011-03-18T06:11:22 *** Cyndre has quit IRC (Ping timeout: 248 seconds) 2011-03-18T06:12:09 *** sigh_ has joined #aichallenge 2011-03-18T06:14:03 *** sigh has quit IRC (Ping timeout: 255 seconds) 2011-03-18T06:14:48 *** Cyndre has joined #aichallenge 2011-03-18T06:21:03 *** kaemo has joined #aichallenge 2011-03-18T06:36:49 *** delt0r___ has joined #aichallenge 2011-03-18T06:38:21 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-18T06:44:57 *** kaemo has quit IRC (Ping timeout: 276 seconds) 2011-03-18T06:52:38 fuck, no matter what i try for core.autocrlf those scala file keep popping up as modified 2011-03-18T07:12:04 right, somehow fixed it 2011-03-18T07:42:34 *** Kingpin13 has joined #aichallenge 2011-03-18T07:54:26 *** boegel has quit IRC (Quit: *poof!*) 2011-03-18T07:58:00 aichallenge: aerique epsilon * r504ab16 / (100 files in 20 dirs): Remove 3rd party libs and provide link in README. (+12 more commits...) - http://bit.ly/ekJjLy 2011-03-18T08:07:51 *** Prillicy has quit IRC (Ping timeout: 252 seconds) 2011-03-18T08:27:51 aichallenge: sigh epsilon * r1fd4271 / ants/ants.py : Make get_vision more pythonic - http://bit.ly/h2pBw8 2011-03-18T08:27:52 aichallenge: sigh epsilon * r4af41c6 / ants/ants.py : Make switch use the order that a player sees ants - http://bit.ly/e9O28v 2011-03-18T08:27:54 aichallenge: sigh epsilon * r902bf5e / ants/ants.py : Update get_vision so that the only thing it does is GET THE VISION - http://bit.ly/hPrFeq 2011-03-18T08:42:38 *** Stocha has joined #aichallenge 2011-03-18T08:42:48 okay, i have an idea for a combat rule. 2011-03-18T08:43:16 Let an ant die with a probability of number of ally/ 2x number of foes into its fighting radius. 2011-03-18T08:43:21 *** Frontier has quit IRC (Quit: Leaving.) 2011-03-18T08:43:30 You'll have to build armies in order to be efficient this way. 2011-03-18T08:43:47 while single ants will still able to do some damage 2011-03-18T08:43:58 (to break blocking for exemple) 2011-03-18T08:44:24 It would bring tactical play into the game. 2011-03-18T08:45:28 that's probability of living , not dying, but well. you got the idea. 2011-03-18T08:46:13 anyone home ? 2011-03-18T08:49:08 Stocha: best to post on the forum 2011-03-18T08:49:16 this is not the most active time in the channel :P 2011-03-18T08:49:37 i did post it somewhere in the fighting thing thread i guess 2011-03-18T08:49:49 sometime it helps me get a clearer picture to type it in there :p 2011-03-18T08:50:14 What frightens me, is that the community seems to be lie 20 person at best. 2011-03-18T08:50:37 (we can see that in the poll on the forum. less that 20 votes) 2011-03-18T08:50:48 it's hard to guess what 5000 will be thinking :p 2011-03-18T08:50:50 err what 2011-03-18T08:50:58 you want to make battle resolution random? 2011-03-18T08:51:12 sure. But you would be afraid of it not being fair. 2011-03-18T08:51:21 i anticipated that. I do not agree :p 2011-03-18T08:51:42 what poll? 2011-03-18T08:51:55 the poll on the fighting 1 vs fighting 2 2011-03-18T08:51:59 the very unofficial one over peoples preferences for battle resolution 2011-03-18T08:52:01 that's 18 participant i think. 2011-03-18T08:52:32 Either people chose neither options, or there are few people to poll from :p 2011-03-18T08:52:51 found it, haven't any opinion 2011-03-18T08:53:06 Naktibalda: 1 is the most awesome thing ever 2011-03-18T08:53:07 2 is meh 2011-03-18T08:53:20 better than sliced bread 2011-03-18T08:53:54 *** sigh_ is now known as sigh 2011-03-18T08:54:00 there should be a third choice : i want something else entirely :p 2011-03-18T08:54:04 Stocah: what don't you like about option 1? it can't be difficulty given all the other ideas you ahve 2011-03-18T08:54:52 I have nothing against it. I don't feel anything for it. I can't make it work in my head. I didn't try to hard, to be fair. 2011-03-18T08:55:01 I doubt that is solves the spec though. 2011-03-18T08:55:12 "Have interesting tactical fight" 2011-03-18T08:55:25 I think i had a look at the pictures someone made 2011-03-18T08:55:40 death conditions and ratios, seemed wrong. 2011-03-18T08:55:51 for each ant, count it's number of enemy ants within the attack radius, if any of those ants have less enemies in range of it than you do of you, your ant dies 2011-03-18T08:55:52 but i didn't stop to check if the diagram were correct or complete. 2011-03-18T08:56:07 i made those pictures, they were for a smaller view radius 2011-03-18T08:56:18 Hasn't this rule been criticised as making blocking to easy ? 2011-03-18T08:56:28 you can't fully block 2011-03-18T08:56:41 you can defend certain things well, but that's a part of the game imo 2011-03-18T08:57:05 you can fully block if attack radius is <2 i think 2011-03-18T08:57:07 Yeah, but the thing you can defend are like some ground pattern, that sound totally arbitrary things ? 2011-03-18T08:57:23 say what? 2011-03-18T08:57:34 And you don't need to have huge packs of ant in order to be efficient 2011-03-18T08:57:45 i should have a look at those pictures again probably :p 2011-03-18T08:57:49 did you see my example on the forums where the addition of an extra ant for 'a' causes them to lose both ants instead of none with option 2? 2011-03-18T08:57:54 Can you make one picture per rule ? 2011-03-18T08:58:02 or is it done by hand ? 2011-03-18T08:58:09 i did those by hand :) 2011-03-18T08:58:17 oh. 2011-03-18T08:58:22 each picture splites into 3 2011-03-18T08:58:35 ignore the bottom one, then you have the results for option 1 and option 2 2011-03-18T08:58:48 Maybe i should try to build something to have a clear picture of what each rules does precisely :p 2011-03-18T08:58:54 most people (including myself) had trouble understanding option 1 at first 2011-03-18T08:59:01 but almost all of us have preferred it once we have 2011-03-18T08:59:29 Stocha: work through those pictures on the forums, there are numbers there that you ought to be able to make sense of 2011-03-18T08:59:34 I think we really need some way of evaluating precisely the methods anyway . 2011-03-18T08:59:52 With different parameters etc. 2011-03-18T09:00:01 the 1 numbers are the number of enemies for each ant, the second lot are the distances to the closest enemy (although with some of the more contrived examples with 2, you need to do a few iterations of removals of ants) 2011-03-18T09:00:08 so if it is fun enougth to do, i might build some script or something. 2011-03-18T09:00:20 the engine supports both battle resolution methods for any attack radius 2011-03-18T09:00:29 well, within reason 2011-03-18T09:00:37 the resolution is recursive ? 2011-03-18T09:00:43 option 2 is 2011-03-18T09:00:50 hence why i say it's less efficient 2011-03-18T09:00:54 but you advocate for option 1 ? 2011-03-18T09:01:10 option 1 isn't recursive, you can do option 1 in a single sweep 2011-03-18T09:01:17 So let's say i should have a clear picture of what option 1 is about. 2011-03-18T09:01:38 I'll work on that before making any more arguments then :p 2011-03-18T09:02:11 consider this example 2011-03-18T09:02:26 ...a..b..c.... 2011-03-18T09:02:42 i will work on it first. I really need to ponder a lot before i'm able to see if i agree with 1+1 =2 sometime :p 2011-03-18T09:02:47 a and c have 1 enemy in range (b) while b has 2 enemies in range (a,c), so b dies 2011-03-18T09:02:55 but still i'm listening of course. 2011-03-18T09:02:56 with option 2, all 3 die because they're all at an equal distance 2011-03-18T09:05:05 does that make sense? otherwise what part don't you understand? 2011-03-18T09:05:16 i'm fairly confident that once it clicks you will understand 2011-03-18T09:06:02 (understand the rules, not necessarily my love for 1) 2011-03-18T09:06:59 *** sigh has quit IRC (Remote host closed the connection) 2011-03-18T09:07:18 i think i might try and do my bot in haskell 2011-03-18T09:07:39 he says after reading through a few chapters of real world haskell 2011-03-18T09:10:38 *** boegel has joined #aichallenge 2011-03-18T09:11:36 *** boegel has quit IRC (Client Quit) 2011-03-18T09:14:34 I'll dig into it, maybe tonight, if i can get some time before me. That would be interesting challenge to make my mind crystal clear about those two fighting, and then the third : my own statistical thingy. 2011-03-18T09:15:09 yeah, it could be fun to do. 2011-03-18T09:15:14 *** boegel has joined #aichallenge 2011-03-18T09:21:08 *** mceier has joined #aichallenge 2011-03-18T09:32:29 *** needsch has joined #aichallenge 2011-03-18T09:35:38 *** bhasker has joined #aichallenge 2011-03-18T09:40:12 *** bhasker has quit IRC (Ping timeout: 250 seconds) 2011-03-18T09:46:41 *** bhasker has joined #aichallenge 2011-03-18T09:48:42 *** antimatroid has quit IRC (Ping timeout: 252 seconds) 2011-03-18T09:54:42 *** Frontier has joined #aichallenge 2011-03-18T09:57:54 @later tell McLeopold: After some trial and error I got the viewer running and the ActiveX component is not a solution because it suffers severe memory leakage and becomes slower with every draw call. Also like excanvas it doesn't support text output and probably other functions. 2011-03-18T09:57:54 Frontier: As you wish. 2011-03-18T10:02:44 *** antimatroid has joined #aichallenge 2011-03-18T10:04:34 *** olexs has joined #aichallenge 2011-03-18T10:05:36 *** Stocha has quit IRC (Ping timeout: 252 seconds) 2011-03-18T10:06:48 *** Stocha has joined #aichallenge 2011-03-18T10:14:41 *** olexs has quit IRC (Quit: Leaving.) 2011-03-18T10:29:01 i think i could get tit for tat going in a game tree 2011-03-18T10:29:17 problem is i would need other people to be doing something similar for it to payoff 2011-03-18T10:29:29 hence needing to talk other people through doing it, as many as possible hehe 2011-03-18T10:30:39 i'm trying to implement rule 1 and rule 2 2011-03-18T10:31:37 I have made an auto scenario maker. It build a 20x10 ground map, and spawn randomly 10 opposite ant in each half. then ants walk either right or left depending on starting side. 2011-03-18T10:32:00 It's not ideal, but it should give some clue about how each rules work 2011-03-18T10:32:09 it would be a start at least. 2011-03-18T10:33:59 i'll show some picture on the forum soon i guess 2011-03-18T10:38:25 *** superflit has joined #aichallenge 2011-03-18T10:49:11 *** superflit has quit IRC (Quit: superflit) 2011-03-18T10:49:19 *** _flag <_flag!~flag@69.165.173.172> has quit IRC (Quit: Lost terminal) 2011-03-18T11:06:20 *** boegel has quit IRC (Quit: *poof!*) 2011-03-18T11:27:03 *** aerique has quit IRC (Quit: ...) 2011-03-18T11:29:06 *** McLeopold has joined #aichallenge 2011-03-18T11:31:03 *** mceier has quit IRC (Read error: Operation timed out) 2011-03-18T11:31:21 *** mceier has joined #aichallenge 2011-03-18T11:32:12 Frontier: how about just a pure java app that launches using jnlp. We can skip trying to stuff it in a browser window. 2011-03-18T11:53:14 java is harder to see. a lot of place block applets. 2011-03-18T11:53:26 (if you want to do things from work that is ... but well) 2011-03-18T11:53:31 maybe you could do both 2011-03-18T11:53:45 some kind of light browswer based, and then the real thing in java ? 2011-03-18T11:54:29 oh you weren't talking about applets :p 2011-03-18T11:56:04 *** amstan has joined #aichallenge 2011-03-18T11:56:04 *** ChanServ sets mode: +o amstan 2011-03-18T11:56:56 *** amstan has quit IRC (Client Quit) 2011-03-18T11:57:12 *** amstan has joined #aichallenge 2011-03-18T11:57:12 *** ChanServ sets mode: +o amstan 2011-03-18T11:58:07 *** Naktibalda has quit IRC (Read error: Connection reset by peer) 2011-03-18T12:02:27 *** Naktibalda has joined #aichallenge 2011-03-18T12:09:59 i finished my illustrator of rule 1 2011-03-18T12:10:11 i posted i into my exotic rule thread. 2011-03-18T12:10:43 i guess one can download the gif and analyse them at home :p 2011-03-18T12:12:09 hmm 2011-03-18T12:14:51 i have one more to add though 2011-03-18T12:14:56 wich is more interesting :p 2011-03-18T12:15:07 1 vs many 2011-03-18T12:16:11 Stocha: I like your 2v2 idea. 2011-03-18T12:17:30 i added 1 vs many 2011-03-18T12:17:48 it shows that 1 vs many is always optimal for the one sending one. 2011-03-18T12:17:59 wich is evident when you think at it, but well. 2011-03-18T12:18:22 So next i'll try to illustrate my "random fighting resolution" rule. 2011-03-18T12:18:34 for now i'll take a quick break :p 2011-03-18T12:25:08 *** olexs has joined #aichallenge 2011-03-18T12:29:43 *** Stocha has quit IRC (Ping timeout: 252 seconds) 2011-03-18T12:31:32 Stocha: btw, the work you are doing has been done and discussed at length for the last 2 months on irc 2011-03-18T12:35:04 *** helo_ has joined #aichallenge 2011-03-18T12:38:48 *** superflit has joined #aichallenge 2011-03-18T12:43:55 *** amstan has quit IRC (Ping timeout: 260 seconds) 2011-03-18T12:50:33 *** Stocha has joined #aichallenge 2011-03-18T13:14:21 *** amstan has joined #aichallenge 2011-03-18T13:14:21 *** ChanServ sets mode: +o amstan 2011-03-18T13:15:08 *** kaemo has joined #aichallenge 2011-03-18T13:15:41 *** olexs1 has joined #aichallenge 2011-03-18T13:17:47 *** olexs has quit IRC (Ping timeout: 246 seconds) 2011-03-18T13:24:53 *** mceier has quit IRC (Read error: Operation timed out) 2011-03-18T13:27:32 *** skynetz has joined #aichallenge 2011-03-18T13:28:26 *** mceier has joined #aichallenge 2011-03-18T13:29:49 *** olexs1 has quit IRC (Quit: Leaving.) 2011-03-18T13:30:07 i posted an illustration of my random fight resolution for comparison with the rule1. Still in the exotic rule thread. 2011-03-18T13:30:25 If we need complex fighting i would rather go with this one i guess :p 2011-03-18T13:30:31 so far. 2011-03-18T13:30:46 at least, there will be reason to build up armies. 2011-03-18T13:30:59 wich i think was asked for. 2011-03-18T13:32:46 so.. how's everyone? 2011-03-18T13:33:13 *** kaemo has quit IRC (Ping timeout: 276 seconds) 2011-03-18T13:33:45 ? 2011-03-18T13:34:04 fine. how are you ? 2011-03-18T13:38:10 Stocha: to bring you up to speed, the reason we have 2 options for fighting is to emphasize 2 different parts of the game, micro (tactics) and macro (strategy) 2011-03-18T13:38:42 Jeff, the guy in charge, wants fighting to be simple and understandable from a macro level. 2011-03-18T13:38:52 *** Zannick has joined #aichallenge 2011-03-18T13:39:17 Most of the serious programmers would rather the game emphasize the micro, tactical battles, which is harder to create good bots for. 2011-03-18T13:40:03 yeah, i need to test case option 2 also 2011-03-18T13:40:15 As antimatroid said in this post, the easy, 1:1 kill ratio, macro options does not have good balance, which means there is no incentive to bunch ants together, just to spread them. 2011-03-18T13:40:19 lately i was told that option 1 was popular 2011-03-18T13:40:38 I don't want to emphasize the micro I just want there to some interesting micro and more importantly some reason to not just spread your ants out 2011-03-18T13:40:59 Well my random rule achieves that 2011-03-18T13:41:08 I agree, if we can provide incentive to bunch without micro, that would be the best option. 2011-03-18T13:41:09 you got very good reason to gather your ants then. 2011-03-18T13:41:21 Stocha: so far as I know option 2 is much more popular 2011-03-18T13:41:21 still i need to test case option 2. 2011-03-18T13:41:34 okay, i'll have to test it anyway :p 2011-03-18T13:41:45 Or at least prevent blocking. 2011-03-18T13:41:49 let's see if i can do that before diner 2011-03-18T13:41:59 if I'm not getting the options confused again at least 2011-03-18T13:42:11 Ant hit points would solve this, but that might be to complicated for Jeff's game goals. 2011-03-18T13:42:26 janzert: call them, "closest" and "occupied" 2011-03-18T13:42:30 hit points and random fight shares some common properties 2011-03-18T13:42:45 yeah, since jeff won't go for hit points I can't imagine him ever going for a random resolution 2011-03-18T13:42:48 wich one would be closest then ? 2011-03-18T13:42:56 Stocha: also, we are fairly certain we want deterministic, so no random 2011-03-18T13:43:03 *** computerwiz_222 has joined #aichallenge 2011-03-18T13:43:07 well hit point imply some state overload 2011-03-18T13:43:20 there is already a lot of randomness involved 2011-03-18T13:43:33 even in planet wars it was paramount 2011-03-18T13:43:46 I take it back in the forum poll at least option 2 is the one jeff likes 2011-03-18T13:43:57 still, i'm there to test case, not to choose :p 2011-03-18T13:43:57 and option 1 is the one most everyone else likes 2011-03-18T13:44:10 I think 2011-03-18T13:44:20 but there were no real test case. 2011-03-18T13:44:39 at least now they can love/hate it on some hard evidences :p 2011-03-18T13:44:58 I'd say there's been hard evidence floating around for weeks 2011-03-18T13:45:30 for me hard evidences mean having seen every possible situation in action :p 2011-03-18T13:45:35 actually discussion had died down about it for the last week since it has been pretty much discussed out I think 2011-03-18T13:45:57 but no choice was made. 2011-03-18T13:46:12 because no one empowered to make a choice is here 2011-03-18T13:46:13 we are just waiting for the "closest" option to prove itself inadequate when we start to go live. 2011-03-18T13:46:14 not even hint of a choice. What did you put in the prototype ? 2011-03-18T13:46:20 *** computer1iz_222 has quit IRC (Ping timeout: 260 seconds) 2011-03-18T13:46:38 Jeff is BDFL and he's missing again 2011-03-18T13:46:41 The current engine is using the closest method. 2011-03-18T13:46:52 rule 1 2011-03-18T13:47:08 aka : put ants in a grid. 2011-03-18T13:47:22 i call that radioactives ants. 2011-03-18T13:47:25 also Jeff already sorta made the choice just we want to talk him out of it still 2011-03-18T13:47:45 ok, but we give them a radioactive range of sqrt(5) right now 2011-03-18T13:47:49 why bother making a complex rule, if it just tell people to spread in fight 2011-03-18T13:48:14 Stocha: the closest rule is very simple. 2011-03-18T13:48:19 jeff chose the method 2 ? 2011-03-18T13:48:36 yes 2011-03-18T13:49:50 can someone explain rule 2 in plain french ? :p 2011-03-18T13:50:02 or in an intelligible way maybe :p 2011-03-18T13:50:03 oui 2011-03-18T13:50:09 https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-03-18T13:50:17 have you seen the explinations in there? 2011-03-18T13:50:29 i did. But i forgot, let me check again 2011-03-18T13:50:41 Look for enemy ants and distance 1, kill them all, then look for enemy ants at distance 2, kill them all, etc... 2011-03-18T13:51:01 Up to the attack range, which is 5 right now. 2011-03-18T13:51:14 i fail to see the simplicity of it. 2011-03-18T13:51:42 sqrt is square root mcleopold 2011-03-18T13:51:52 yes it is 2011-03-18T13:52:07 so one ant has the potential to kill many ? 2011-03-18T13:52:11 yes 2011-03-18T13:52:17 how is that different from rule 1 ? 2011-03-18T13:52:27 what is rule 1? 2011-03-18T13:52:30 you will still have the launch ant after ant, with good spacing 2011-03-18T13:52:37 rule 2 i mean 2011-03-18T13:52:45 what is rule 2? 2011-03-18T13:52:50 grrrr :'( 2011-03-18T13:53:18 looking at the images you have for "rule1" I don't think it implements the option 1 we have 2011-03-18T13:53:30 oh 2011-03-18T13:53:37 maybe it is buggued. Or i got it wrong 2011-03-18T13:53:41 or both. 2011-03-18T13:54:08 it's hard for me to figure it out with quick moving gif's though, I should download and examine frame by frame 2011-03-18T13:54:14 Stocha: lets call you random rule, or rule 2, "probability" 2011-03-18T13:54:22 i think what i implemented was that wich i find in your specification 2011-03-18T13:54:30 though it could be buggued 2011-03-18T13:54:35 i used range 3 also. 2011-03-18T13:54:36 but it'll be a bit before I have time to do that 2011-03-18T13:54:58 Stocha: euclidean distance 3? so sqrt(9)? 2011-03-18T13:55:05 or i can give you the java generator 2011-03-18T13:55:11 and you can view it on screen 2011-03-18T13:55:30 maybe take antimatroid's hand done patterns and make sure you get the same resolution? 2011-03-18T13:55:35 provided you can do some java i guess. There is no easy config right now. 2011-03-18T13:56:03 Stocha: something else to consider, we've noticed that random food placement does make a huge difference to the outcome of the game. So simple random isn't going to cut it. 2011-03-18T13:56:11 i'd rather you to check the gif then :p 2011-03-18T13:56:17 i can give you more material if you need. 2011-03-18T13:57:00 McLeopold : does that mean that the strongest bots will not be ranked strongest if the food placement is random ? 2011-03-18T13:57:07 I'll try and check it in an image editor a little later unless you find a problem first 2011-03-18T13:57:10 because that is what we care about i think. 2011-03-18T13:57:37 i don't think i'll dig in it too much. i really don't find those rules anyfun. 2011-03-18T13:57:43 they certainly are not trivial 2011-03-18T13:57:53 well the random is the worst for testing purpose i guess :p 2011-03-18T13:58:08 so i would advocate against random fight for that. too hard to test :p 2011-03-18T13:58:26 unless we provide some test case or something. 2011-03-18T13:59:24 the problem i see with those gif, is that analysing them is tedious 2011-03-18T13:59:35 there ought to be a better way :p 2011-03-18T13:59:45 Stocha: it means that identical bots don't draw 2011-03-18T14:00:02 How could they draw anyway. 2011-03-18T14:00:12 there will always be some randomness in there. 2011-03-18T14:00:21 draw is unlikely. 2011-03-18T14:00:25 They should at least expand at the same rate and hold similar territories for awhile 2011-03-18T14:00:33 why ? 2011-03-18T14:00:39 Because they are identical 2011-03-18T14:00:49 they should play good if they are strong, that's it. 2011-03-18T14:00:55 ok, yeah I don't need to load the gifs in an editor 2011-03-18T14:01:00 and be ranked at some comparable levels. 2011-03-18T14:01:07 I'm talking about how random food affects bots, not bot strength 2011-03-18T14:01:10 janzert ? 2011-03-18T14:01:35 looking at the bottom rule1 illustration with many versus 1 the 1 ant should never be able to kill 2 ants that are adjacent to each other 2011-03-18T14:01:35 yeah, but there will be randomness. And same bot will never draw anyway. 2011-03-18T14:01:36 *** phreeza has joined #aichallenge 2011-03-18T14:01:56 But the unbalance with random food is to great. 2011-03-18T14:02:06 how do you prove that ? 2011-03-18T14:02:08 or any ant that has another friendly ant in range that is 2011-03-18T14:02:18 janzert okay ... 2011-03-18T14:02:28 let me try to understand the rule then :'( 2011-03-18T14:02:49 Stocha: many sample games and observing the results, I don't have proof to show. 2011-03-18T14:03:09 that's some kind of evidence though. 2011-03-18T14:03:24 You can download the engine and example bots and see for yourself. 2011-03-18T14:03:31 what would be cool, would be if anyone could reuse whatever you used ton convince yourself 2011-03-18T14:03:43 well i have an engine also 2011-03-18T14:03:52 food gathering is not that different. 2011-03-18T14:04:06 but i have no bot good enougth to conclude anything yet :p 2011-03-18T14:04:12 *** Naktibalda has left #aichallenge 2011-03-18T14:04:29 i planned on building a hunter seeker, and see how he fars against random bots. 2011-03-18T14:04:41 but i doubt the random bot will get a chance at winning . 2011-03-18T14:05:58 Stocha: I'm attempting to enlighten you with everything the group has learned in the last 2 months. You seem to want to start over? 2011-03-18T14:07:12 i wouldn't put it this way. But i have a way of learning that make me needing to see by myself. although i can learn by listening. I will have to confront at some point. 2011-03-18T14:07:27 so option 1, rule 1 I think I'll call the "overloaded" rule :) 2011-03-18T14:07:33 that's why i like illustrations. 2011-03-18T14:07:38 and overloaded ants die 2011-03-18T14:07:46 *** needsch has quit IRC (Quit: Leaving.) 2011-03-18T14:07:54 or maybe over-powered is better 2011-03-18T14:07:59 janzert: you mean what antimatroid calls option 1? 2011-03-18T14:08:03 yes 2011-03-18T14:08:20 so no two ant the same distance of one alone ennemy can die the same turn right ? 2011-03-18T14:08:37 the same distance from each other 2011-03-18T14:08:42 attle Option 1: First count up how many enemies each ant has around them within the battle radius 2011-03-18T14:08:48 but for a single ant, nearby enemy ants may not participate, and it only take 1 ant to kill another, so it's kind of a misnomer 2011-03-18T14:08:52 rule 1 : is what the spec calls options 1 right ? 2011-03-18T14:08:59 yes 2011-03-18T14:09:30 let's me check what i do 2011-03-18T14:09:31 Stocha: may I suggest using the official engine for your tests? Do you know python? 2011-03-18T14:09:34 (or what i think i do) 2011-03-18T14:09:37 over-powered is from the perspective of the individual ant 2011-03-18T14:09:42 i only java :'( 2011-03-18T14:09:48 that's why i wrote a java engine 2011-03-18T14:10:02 that and i probably will need whenever i try to build a serious bot 2011-03-18T14:10:31 java is good and flexible. 2011-03-18T14:10:33 for testing. 2011-03-18T14:10:43 fast also 2011-03-18T14:10:45 Do you have it on github or similar? I can review it to make sure it comforms to the official. 2011-03-18T14:11:38 java is flexible when the comparison is to python? :P 2011-03-18T14:12:04 janzert: for overpowered/occupied, a single ant can have 3 enemies nearby, but survive, and another can can have 1 enemy nearby and die. 2011-03-18T14:12:36 i think that would be a good idea mcleopold; Unfortunately i never used git hub and such. 2011-03-18T14:12:56 svn? git? hg? bazzar? 2011-03-18T14:12:59 i would probably make the code clearer if i'm to be rewiewed :p 2011-03-18T14:13:03 yeah, hmm overpowered is still a bad name 2011-03-18T14:13:20 i used svn in the past. but for some time i have been using no version control :p 2011-03-18T14:13:24 occupied was to describe who can kill you, not if you die 2011-03-18T14:13:41 Stocha: get git! we can add you to the team 2011-03-18T14:13:47 well, let me at least try to explain what i think i do 2011-03-18T14:13:53 they we can later check the code :p 2011-03-18T14:14:12 so : i give a point to each ant, for any ennemy in the fight radius. 2011-03-18T14:14:26 let's call that P(a) 2011-03-18T14:14:31 where P is the counting 2011-03-18T14:14:34 and a is the ant 2011-03-18T14:15:24 then it dies if it exists an eneme b such tat 2011-03-18T14:15:34 P(a) >= P(b) 2011-03-18T14:15:40 that's about it 2011-03-18T14:15:50 (b is in the fight radius of a also) 2011-03-18T14:16:13 does that sound okay ? 2011-03-18T14:16:40 Yes, that's the "occupied" method. 2011-03-18T14:16:48 * janzert nods 2011-03-18T14:16:50 that is option 1 right ? 2011-03-18T14:16:52 seems right 2011-03-18T14:17:00 there is no option 1, only "occupied" 2011-03-18T14:17:05 :) 2011-03-18T14:17:10 i could well have bugs; My code is a bit messy :p 2011-03-18T14:17:17 change the spec then :p 2011-03-18T14:17:25 i need some official paper somewhere to refer to ! 2011-03-18T14:17:39 Stocha: I'd like for a java engine to be part of the toolset. If you have a good start on it, we could add it to the repo. 2011-03-18T14:18:04 okay. in the worst case, i'll just send you the code. i guess 2011-03-18T14:18:17 but it would need some optimization also 2011-03-18T14:18:23 so, you don't want to use version control? 2011-03-18T14:18:27 i mean i build it around optimization that i did not do :p 2011-03-18T14:18:40 i'm not used to that's all 2011-03-18T14:18:44 i'll come to it slowly 2011-03-18T14:18:59 ok in Rule1_corridor20_vs1.gif 2011-03-18T14:19:01 but i want to make sure that i spend more time writing code that using version control :p 2011-03-18T14:19:07 on frame 192 2011-03-18T14:19:10 Stocha: mac, *nix or windows? 2011-03-18T14:19:19 right now i'm on max os x 2011-03-18T14:19:23 with netbeans 2011-03-18T14:19:44 i used to be on ubuntu, but that was long ago. 2011-03-18T14:19:45 so, git should be easy to install 2011-03-18T14:19:57 as a plugin for netbeans ? 2011-03-18T14:20:00 when you are ready, let me know 2011-03-18T14:20:10 i will, thanks :p 2011-03-18T14:20:27 i a few days i guess. if i keep my mind interested in the challenge; Wich i hope i will. 2011-03-18T14:20:30 I use eclipse, but EGit hasn't been kind to me, so I stick with command line. 2011-03-18T14:20:40 i'd like to try to win some competition of some sort :p 2011-03-18T14:20:41 the 1 has 3 enemy in range each of those have 1 enemy in range so the 1 should have a P(a)=3 right and the 3 a P(a)=1 and the 1 only should die instead of all of them dieing in frame 193 2011-03-18T14:20:59 http://nbgit.org/ 2011-03-18T14:21:52 same at frame 184-185 2011-03-18T14:22:00 yeah there is a bug then. 2011-03-18T14:22:11 i'll suppress the offending pictures for now :p 2011-03-18T14:23:11 Stocha: you're random rules doesn't seem right. 1 - (allies / (2 * enemies) ) 2011-03-18T14:23:22 or is it 1 - (allies/2 * enemies)? 2011-03-18T14:23:50 ? 2011-03-18T14:24:18 1 - (friendly in range / 2 * ennemy in range) it is 2011-03-18T14:24:37 then you die. 2011-03-18T14:24:46 i could check the code also 2011-03-18T14:25:16 it is likely to suffer the same bug as the other 2011-03-18T14:25:23 i should probably put them off also. 2011-03-18T14:25:28 so, you have a 100% chance of dying with no ants in sight? 2011-03-18T14:25:32 until i have things settled 2011-03-18T14:26:07 no 2011-03-18T14:26:08 1-(0/2*0) = 1 2011-03-18T14:26:15 *** rebelxt1 has joined #aichallenge 2011-03-18T14:26:21 you can't have 0 allies 2011-03-18T14:26:36 Stocha: don't get git as a plugin, it's not that useful 2011-03-18T14:26:45 Stocha: just install it directly on the mac 2011-03-18T14:27:22 *** delt0r_ has joined #aichallenge 2011-03-18T14:27:29 1-(1/2*0) = 1 : so, 100% chance of dying with no enemies in sight? 2011-03-18T14:27:49 1/(2*0) 2011-03-18T14:28:03 ah okay i missed the () :p 2011-03-18T14:28:08 :) 2011-03-18T14:28:45 *** delt0r___ has quit IRC (Read error: Operation timed out) 2011-03-18T14:28:57 well let me delete the pictures, and tomorrow will be another day anyway 2011-03-18T14:29:09 until i have confidence the code may be right. 2011-03-18T14:31:56 *** delt0r___ has joined #aichallenge 2011-03-18T14:32:00 the rule doesn't apply when there are no ennemies in sight by the way :p 2011-03-18T14:32:18 see you guys, i have to go home :'( 2011-03-18T14:32:23 *** rebelxt1 has left #aichallenge 2011-03-18T14:32:57 *** Stocha has quit IRC (Quit: Page closed) 2011-03-18T14:33:37 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-18T14:40:59 *** closedbracket has joined #aichallenge 2011-03-18T14:46:24 janzert: if a seed player has played another user recently, but not that users latest submission, should I still put that user at the bottom of the list? 2011-03-18T14:46:50 *** amstan has quit IRC (Ping timeout: 252 seconds) 2011-03-18T14:47:02 Or to put it another way, should I only join on latest submissions when looking for previous opponents? 2011-03-18T14:47:34 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-18T14:48:00 *** phreeza has quit IRC (Quit: kthxbai) 2011-03-18T14:55:35 hmm, I'd lean toward submission only for previous opponents but either way I'd be ok with I think 2011-03-18T14:59:48 *** helo_ has quit IRC (Quit: Page closed) 2011-03-18T15:05:22 *** delt0r_ has joined #aichallenge 2011-03-18T15:07:09 *** delt0r___ has quit IRC (Ping timeout: 252 seconds) 2011-03-18T15:08:21 *** olexs has joined #aichallenge 2011-03-18T15:11:18 janzert: if someone submits, then you may want to play them right away to see how you do, but their submission would be starting over, so not likely to be chosen right away 2011-03-18T15:11:43 or, if someone submits every day, you may cease to care about playing them 2011-03-18T15:11:56 *** olexs has quit IRC (Client Quit) 2011-03-18T15:12:01 *** Naktibalda has joined #aichallenge 2011-03-18T15:13:10 yeah, there are probably arguments for either direction. I don't really have a strong feeling either way. 2011-03-18T15:14:30 I guess I lean toward starting with just going by submission first since it's a strict subset of the other 2011-03-18T15:14:41 then if problems crop up we can expand it 2011-03-18T15:31:13 McLeopold: Did you look at the bug by the way? I haven't checked recently. 2011-03-18T15:31:48 (the one where the command strings were way shorter than end - convert) 2011-03-18T15:32:16 no, not yet 2011-03-18T15:33:28 ok, just don't forget it. for me it is easy to just remove the 2 ants that aren't right so i wont yell too much ... or sigh as antimatroid would say 2011-03-18T15:34:40 i found it quite funny when amstan asked sigh: "why didn't you yell?" and antimatroid answered "he sighed" 2011-03-18T15:37:19 *** olexs has joined #aichallenge 2011-03-18T15:37:32 *** kaemo has joined #aichallenge 2011-03-18T15:50:14 *** closedbracket has joined #aichallenge 2011-03-18T15:51:22 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-18T16:03:42 *** choas has joined #aichallenge 2011-03-18T16:04:19 *** Stocha has joined #aichallenge 2011-03-18T16:05:31 where are you from leopold ? 2011-03-18T16:05:50 you are the main java artist of the band yes ? 2011-03-18T16:07:36 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.15/20110303170601]) 2011-03-18T16:09:45 Stocha: I might be the only one, not sure. 2011-03-18T16:11:02 *** skynetz has quit IRC (Quit: .) 2011-03-18T16:12:42 *** Accoun has quit IRC () 2011-03-18T16:15:36 *** mceier has quit IRC (Ping timeout: 246 seconds) 2011-03-18T16:17:10 where are you from ? 2011-03-18T16:17:33 *** mceier has joined #aichallenge 2011-03-18T16:17:36 texas usa ? 2011-03-18T16:18:00 how is it you said you could explain me in plain french then ? :p 2011-03-18T16:18:56 if you give me an email, i'll send you some code eventually 2011-03-18T16:19:08 once i feel there is sendable code anyway 2011-03-18T16:19:14 Olympia, south of seattle. I only no 1 french word. 2011-03-18T16:19:17 we 'll be able to look at it then 2011-03-18T16:19:18 know 2011-03-18T16:19:28 lool :) 2011-03-18T16:19:51 how long have you been in the java business ? 2011-03-18T16:19:54 Rather than email, I'd like to get you excited about distributed source control. 2011-03-18T16:20:31 yeah. But i need, y a know to remember that code can be read by someone else first. 2011-03-18T16:20:46 to build some frenchip, before going into the wild 2011-03-18T16:20:50 or something 2011-03-18T16:21:05 i'll probably need lots of help too in order to source control 2011-03-18T16:21:31 so it's better if i think that the code is worth sharing firstable. 2011-03-18T16:21:48 and sending en email is so much cheaper for me :p 2011-03-18T16:24:09 *** amstan has joined #aichallenge 2011-03-18T16:24:09 *** ChanServ sets mode: +o amstan 2011-03-18T16:24:16 it is, but starting a git repo is pretty cheap too 2011-03-18T16:25:08 except when you don't know what url stand for. 2011-03-18T16:25:12 Stocha:btw, mynick@gmail 2011-03-18T16:25:14 and thinking of it, i do not know that. 2011-03-18T16:25:41 Universal Resource Locator, now you have to use github :P 2011-03-18T16:26:45 that would be to much for a day. 2011-03-18T16:27:00 hopefully i'll have forgotten tomorrow. 2011-03-18T16:28:35 ax = bx + cx 2011-03-18T16:28:39 is written 2011-03-18T16:29:01 ax = ((bx + cx)+width)%width right ? 2011-03-18T16:30:29 what does the final keyword do for a static method ? 2011-03-18T16:31:54 Stocha: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/bots/java/Ants.java#L218 2011-03-18T16:32:09 that's the direction to help you wrap around the map 2011-03-18T16:32:16 function, I mean 2011-03-18T16:34:16 but there is TWO branching ! 2011-03-18T16:34:28 not that the % operator is efficient or anything but well :p 2011-03-18T16:34:48 java's mod can return negative numbers 2011-03-18T16:35:11 so it is not the mathmatical definition 2011-03-18T16:35:25 that's why you add +width isn't it ? 2011-03-18T16:35:37 (bx+cs + width)%width 2011-03-18T16:36:02 *** Accoun has joined #aichallenge 2011-03-18T16:36:15 (bx+cx +width)%width 2011-03-18T16:36:20 I think that may still return a negative 2011-03-18T16:36:24 *** delt0r___ has joined #aichallenge 2011-03-18T16:36:26 oh, wait, no 2011-03-18T16:36:28 if the map si a power of two it can even go fast :p 2011-03-18T16:36:49 yeah, that's works too without an if 2011-03-18T16:36:54 i can return negativ is bx+cx < - width 2011-03-18T16:37:35 wich is unlikely in most cases. unless you'r doing something special 2011-03-18T16:37:50 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-18T16:37:59 like a map less than the sight radius or something. 2011-03-18T16:38:25 i think. well i don't know. i should get over this code rather than chatting to much :p 2011-03-18T16:38:54 I may ask your help when it comes to text protocols though. You can hardly be as ignorant as i am :p 2011-03-18T16:39:10 i don't find that fun at all. Text protocols 2011-03-18T16:39:20 i'm rather of an integer boy. 2011-03-18T16:39:53 *** Frontier has quit IRC (Quit: Leaving.) 2011-03-18T16:40:31 *** Naktibalda has joined #aichallenge 2011-03-18T16:41:13 i made the code around bitmaps. So i can do most things with xor / or / and functions :p 2011-03-18T16:43:09 it's probably not faster, but it's more intelligible to me :p 2011-03-18T16:46:07 what time is it over there ? 2011-03-18T16:53:22 *** computer1iz_222 has joined #aichallenge 2011-03-18T16:56:32 *** computerwiz_222 has quit IRC (Ping timeout: 260 seconds) 2011-03-18T17:17:08 *** Meatkat has joined #aichallenge 2011-03-18T17:28:42 is there a clever way to count all ennemy at distance < DIST for each friendly ant ? 2011-03-18T17:29:21 i wonder from a theoritic point 2011-03-18T17:44:45 *** sigh has joined #aichallenge 2011-03-18T17:53:02 *** Stocha has quit IRC (Quit: Page closed) 2011-03-18T17:59:43 Stocha: jmcarthur might give you the best answer on that 2011-03-18T18:01:08 *** sigh has quit IRC (Remote host closed the connection) 2011-03-18T18:04:15 *** superflit has quit IRC (Quit: superflit) 2011-03-18T18:06:46 *** Naktibalda has quit IRC (Read error: Connection reset by peer) 2011-03-18T18:08:26 *** Naktibalda has joined #aichallenge 2011-03-18T18:48:59 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-18T18:59:36 why me? 2011-03-18T19:14:31 cause you're so smart 2011-03-18T19:14:52 jmcarthur: I've got a trueskill question 2011-03-18T19:15:55 If a bot with mu 25 is going to be paired with 1 of 5 potential bots all with mu 25 as well, TrueSkill would pick the bot with the smallest sigma, no? 2011-03-18T19:16:13 janzert: If you're here, can you chime in on this as well. 2011-03-18T19:16:38 *** amriedle has joined #aichallenge 2011-03-18T19:17:06 so, in general, once we have a seed player, the other bots will be submissions that have played a bunch and are well established in the rankings 2011-03-18T19:17:56 that also means, new submission will hardly ever play each other 2011-03-18T19:18:15 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.15/20110303170601]) 2011-03-18T19:18:58 that is until enough people have resubmitted such that the "new" submission is now one of the older ones 2011-03-18T19:19:20 so, that also mean, very old submission have a higher probability of being chosen? 2011-03-18T19:27:58 *** choas has quit IRC (Quit: leaving) 2011-03-18T19:31:17 *** Prillicy has joined #aichallenge 2011-03-18T19:39:02 McLeopold: that might be the case, but i don't think it's a bad thing 2011-03-18T19:39:38 pitting new submissions against well-established bots means that your rank will converge much more quickly, and that's what you really care about 2011-03-18T19:40:19 also, it should be a probabilistic matching algorithm, shouldn't it? 2011-03-18T19:40:35 like, each of those five bots gets a weight based on their sigma 2011-03-18T19:40:48 so it won't *always* pick the smallest sigma 2011-03-18T19:40:56 we get a match quality number, but we still need our own method of picking the opponents 2011-03-18T19:41:02 ah 2011-03-18T19:41:12 well, i think it should be probabilistic based on match quality, then :) 2011-03-18T19:41:33 right now, the pool of available bots is limited with a few "no repeat" rules, but that is it 2011-03-18T19:41:35 s/based on/weighted by/ 2011-03-18T19:42:00 i'm afraid of arbitrary constraints. i'd prefer they be probabilistic as well, personally 2011-03-18T19:42:28 that makes the calc a little harder, but I agree 2011-03-18T19:42:32 like... match quality could be lowered (perhaps significantly) by repeats 2011-03-18T19:43:14 I'd like a hard no repeat rule. We can tune how many games that is. 2011-03-18T19:45:16 I'm just thinking that 2 new submissions will never play each other until they become the oldest ones 2011-03-18T19:45:23 Maybe that isn't so bad. 2011-03-18T19:46:40 I'm assuming sigma is a very good approximation of submission age. 2011-03-18T19:47:41 *** sigh has joined #aichallenge 2011-03-18T19:50:46 amstan: why does our repository have 3rd party lisp code? should they be submodules? 2011-03-18T19:51:08 aichallenge: McLeopold epsilon * r5bb2c0e / sql/matchups.sql.txt : Updated match making sql - http://bit.ly/exmejC 2011-03-18T19:51:11 aichallenge: McLeopold epsilon * r8e6188c / (123 files in 26 dirs): Merge branch 'epsilon' of github.com:aichallenge/aichallenge into epsilon - http://bit.ly/hsaZ6b 2011-03-18T19:53:37 fun, the repo is 39% lisp 2011-03-18T19:55:04 *** mceier has quit IRC (Quit: leaving) 2011-03-18T20:00:07 sigh: yeah, plus I just pulled a load of lisp code 2011-03-18T20:07:52 *** McLeopold has left #aichallenge 2011-03-18T20:19:04 jmcarthur: i don't think we want people to go right back to where they were 2011-03-18T20:19:16 make people climb back up every time they resubmit 2011-03-18T20:36:56 *** delt0r_ has joined #aichallenge 2011-03-18T20:38:01 *** davidjliu has joined #aichallenge 2011-03-18T20:38:27 *** delt0r___ has quit IRC (Ping timeout: 250 seconds) 2011-03-18T20:43:17 *** computerwiz_222 has joined #aichallenge 2011-03-18T20:46:24 *** computer1iz_222 has quit IRC (Ping timeout: 260 seconds) 2011-03-18T20:49:57 *** Naktibalda has joined #aichallenge 2011-03-18T20:52:22 *** needsch has joined #aichallenge 2011-03-18T20:53:27 can someone please explain to me how random resolution would be an improvement on option 1? 2011-03-18T20:53:34 and why avoiding micro would be anything but bad? 2011-03-18T20:54:03 it's not feeling very much like an ai contest when people want to strip anything exciting strategy wise from the game 2011-03-18T20:57:55 *** delt0r___ has joined #aichallenge 2011-03-18T20:58:45 *** delt0r_ has quit IRC (Read error: Operation timed out) 2011-03-18T21:10:42 the best way to count ants < distance is to hash all the translate amounts and check each location, for varying radius, i'd probably just paint outwards, although you might be able to speed it up a bit by spiralling outwards and not checking squares again all the time. 2011-03-18T21:10:56 i very much abuse the word hash 2011-03-18T21:11:41 *** ravic has joined #aichallenge 2011-03-18T21:13:16 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-18T21:14:06 *** skynetz has joined #aichallenge 2011-03-18T21:15:31 contestbot: later tell mcleopold yes.. i talked to aerique about that 2011-03-18T21:15:31 amstan: I come to serve. 2011-03-18T21:15:40 sigh: ^ 2011-03-18T21:16:18 but I liked pretending I was working on a lisp project 2011-03-18T21:16:58 lol 2011-03-18T21:20:16 *** needsch has quit IRC (Quit: Leaving.) 2011-03-18T21:28:42 *** Prillicy has quit IRC (Remote host closed the connection) 2011-03-18T21:32:44 <_flag> Is there a way to spawn food symmetrically with the engine yet or no? 2011-03-18T21:40:49 _flag: yes, set --food symmetric 2011-03-18T21:41:12 it's not default because it can only work with maps generated by antimatroid's symmetric map gen 2011-03-18T21:42:20 it's not doing it the way i desbribe in the forums, but it's symmetric for the moment 2011-03-18T21:42:56 i shall clean my map gen up later and have it capable of doing random and random walk symmetric maps, then i'll start doing the asymmetric one that trys to throw out fair maps 2011-03-18T21:43:05 antimatroid: is there a consensus yet on what the actual functionality is yet? 2011-03-18T21:43:18 what functionality? 2011-03-18T21:43:19 in terms of choosing which set to put food in 2011-03-18T21:43:39 for asymmetric? 2011-03-18T21:43:47 for symmetric 2011-03-18T21:44:30 you're just repeatedly picking a square from your basis untill all it's spanned elements are free yeah? 2011-03-18T21:45:05 i think a better alternative would be to just store the counter for how many pieces of land are waiting to spawn somewhere and see how much it builds up 2011-03-18T21:45:32 i think asymmetric should be done somewhat similarly, but find each players starting closest squares then spawn 1 food square for each set each turn 2011-03-18T21:45:43 i'm planning to do asymmetric maps like that with water placement 2011-03-18T21:46:16 also, greentea has provided the clearest explanation of option 1 so far 2011-03-18T21:46:34 "Lets define conception: ant Power = 1/numOpponents.  2011-03-18T21:46:34 Then first rule can be rewriten as: 2011-03-18T21:46:34 Ant alive if its Power is greater than Power of any of his opponents.  2011-03-18T21:46:34 Or by another words: Ant dies if it has at least one most or equal Powerful opponent." 2011-03-18T21:46:49 the only problem with that resolution is that it will constantly keep trying and rejects a bunch of places before it finds one free 2011-03-18T21:47:08 because, by definition, the places at the front of the queue are not free very often 2011-03-18T21:47:22 sigh: it also introduces the notion of stratigically placing your ants to mix with the spawning 2011-03-18T21:47:44 which i doubt anyone could successfully manipulate, but i'd rather avoid anyway 2011-03-18T21:47:55 it tells you that if an ant stays still long enough then there is an increased chance that a food will spawn there when they move off it 2011-03-18T21:48:17 only because you took too long to move and get what you would have already got 2011-03-18T21:48:24 i don't think you can manipulate that in your favour 2011-03-18T21:48:46 whereas the converse allows you to position your ants to try and not let enemies get food spawned in a good location elsewhere 2011-03-18T21:48:57 near impossible to exploit, but the problem presents itself nonetheless 2011-03-18T21:49:04 you can do that anyway? 2011-03-18T21:49:22 not if you don't pick other squares on a collision 2011-03-18T21:49:22 because food will never spawn if you are blocking one of the squares in teh set 2011-03-18T21:49:27 you just wait to spawn on a square 2011-03-18T21:49:40 yes, but that's hurting you, not someone somewhere else on the maop 2011-03-18T21:50:09 does that make sense? 2011-03-18T21:50:30 ok, I think I don't understand what you want 2011-03-18T21:50:37 ? 2011-03-18T21:50:41 what is the counter counting, how do you choose what food to spawn 2011-03-18T21:51:50 each square has a counter with the number of land squares waiting to spawn, all starting at 0. When you go to spawn food, pick a square inside your basis set, then increment each of the square counters to spawn food, then actually go and spawn food for every square not containing food/an ant decrement the counter and spawn food 2011-03-18T21:51:59 food squares* waiting to spawn 2011-03-18T21:52:33 whereas now you're picking a square, checking to see if they're empty, then moving on if one isn't 2011-03-18T21:53:15 if you move on, your ant position affected the spawning of food somewhere else in the map, whereas with this other method, it only affects the spawning of food right there where you are, which you don't want to block if possible 2011-03-18T21:54:45 does that make sense now? 2011-03-18T21:54:53 what does the counter do? 2011-03-18T21:55:08 you use the counter when you actually go to spawn food 2011-03-18T21:55:14 *** Meatkat has quit IRC (Ping timeout: 260 seconds) 2011-03-18T21:55:16 you don't actually spawn any food when you pick out your squares 2011-03-18T21:55:50 to speed things up, you can store a queue of squares with a positive counter, then spawn from that each turn, only readding the square if the counter is still positive after decrementing it 2011-03-18T21:56:23 (so as to not go through the entire grid looking for squares with a positive counter) 2011-03-18T21:57:02 I still don't understand what the counter is for, do higher values get some sort of priority 2011-03-18T21:57:06 I don't understand 2011-03-18T21:57:10 *** amriedle has quit IRC (Quit: Lost terminal) 2011-03-18T21:57:33 *** olexs has quit IRC (Quit: Leaving.) 2011-03-18T21:57:36 no, if the counter is 2, you add a food square, decrement the counter and add the square to the end of the queue, if it is 1, you spawn a food square, decrement the counter and don't add the square back to the queue 2011-03-18T21:58:07 so when you pick out new squares to spawn food on, you just increment the counter on each square, then go and spawn food for squares waiting to spawn food on 2011-03-18T21:58:19 hmmm... so you effectivly have multiple food on a single square? 2011-03-18T21:58:22 hopefully the counters very rarely go above 2, but it's there to handle extra amounts 2011-03-18T21:58:32 no, you're waiting for multiple food squares to spawn there 2011-03-18T21:58:48 i don't expect to flood the maps that collisions start happening all the time 2011-03-18T21:58:58 but it's there to avoid the issues i talked about with the current method 2011-03-18T21:59:17 if the counter is 10, then you can get ten ants out of it by spawning and moving out of the way? 2011-03-18T21:59:36 yes, but i don't expect the counter to ever get to 10 2011-03-18T21:59:49 unless you stupidly stood on square that you could have had ants long ago from 2011-03-18T22:00:30 i would repeatedly order the basis squares (don't repeatedly use the same ordering) so as to make sure each square gets a somewhat fair distribution amount each game and we minimise these large counter values 2011-03-18T22:01:26 i don't need you to actually implement this right now, but it'd be good if you were with on board with my thought process 2011-03-18T22:05:42 *** McLeopold has joined #aichallenge 2011-03-18T22:06:29 amstan: I'm also thinking depending on 2 many 3-party libraries is bad for a starter bot. Newbies might get lost. 2011-03-18T22:07:40 i don't like releasing anything that depends on other libraries 2011-03-18T22:08:10 i'll make my programs general enough for packages to be used, but not require their presense to run 2011-03-18T22:09:13 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-03-18T22:09:32 *** iFire has joined #aichallenge 2011-03-18T22:10:31 McLeopold: yes, but this is lisp we're talking about.. 2011-03-18T22:11:13 oh. yeah that's fine 2011-03-18T22:11:18 same goes for haskell 2011-03-18T22:11:43 if you want to use one of those and don't like the starter bot, you can probably write your own 2011-03-18T22:12:43 *** davidjliu has quit IRC (Quit: Page closed) 2011-03-18T22:20:57 antimatroid: how is this: https://github.com/sigh/aichallenge/blob/symmetric-food/ants/ants.py#L631 2011-03-18T22:25:23 sigh: that looks right i think 2011-03-18T22:25:38 although at the end of each turn you're scanning every square to found the ones with a positive count? 2011-03-18T22:25:42 that would be very costly 2011-03-18T22:25:50 is the engine doing that lots? that would be making it VERY slow 2011-03-18T22:26:03 once per turn, not really very costly 2011-03-18T22:26:20 I can keep it in a dictionary I suppose 2011-03-18T22:26:32 hmm... no downside to that, I'll do that 2011-03-18T22:27:41 if you do 200x200 maps then that's a lot of squares to go through 2011-03-18T22:27:46 same goes everywhere else in the engine 2011-03-18T22:28:05 i would be storing lists/queues of locations rather than going through the entire map 2011-03-18T22:28:27 *** delt0r_ has joined #aichallenge 2011-03-18T22:28:38 *** delt0r___ has quit IRC (Read error: Operation timed out) 2011-03-18T22:28:48 anyway, i've got a hockey game at 2, i should probably head 2011-03-18T22:28:51 only half paying attention (and not saying I like the method) but... try using defaultdict(int) sight :P 2011-03-18T22:29:03 err, sigh 2011-03-18T22:29:19 it should be just what you're looking for 2011-03-18T22:29:24 janzert: yeah, I know 2011-03-18T22:29:28 (field) hockey, since most us/canadians seem to interpret hockey as ice hockey 2011-03-18T22:29:38 ok 2011-03-18T22:36:10 <_flag> antimatroid: can I have a link to those new maps you made? The map gen seems to still generate the more random-looking ones. 2011-03-18T22:42:45 man, this is annoying to test... the bots behave different based on what order I tell them about the food on a given turn 2011-03-18T22:42:55 so I can't just run diff on the output -_- 2011-03-18T22:45:03 either way, using a dictionary has negligible impact on the runtime 2011-03-18T22:48:48 @later tell antimatroid I made it so that it no longer iterates over a grid: https://github.com/sigh/aichallenge/blob/symmetric-food/ants/ants.py#L631 anyway try it out and tell me and if you are happy with the functionality I will merge it in 2011-03-18T22:48:48 sigh: Aye, aye, sir 2011-03-18T22:56:05 *** Cyndre has quit IRC (Read error: Connection reset by peer) 2011-03-18T22:56:21 *** Cyndre has joined #aichallenge 2011-03-18T22:57:51 *** Cyndre has quit IRC (Read error: Connection reset by peer) 2011-03-18T22:58:06 *** Cyndre has joined #aichallenge 2011-03-18T23:04:54 *** skynetz has quit IRC (Ping timeout: 255 seconds) 2011-03-18T23:08:44 *** Stocha has joined #aichallenge 2011-03-18T23:09:02 hi there. What time is it over there ? 2011-03-18T23:09:39 we're kinda all over the world around here 2011-03-18T23:10:36 8:07pm 2011-03-18T23:10:54 3:07 am 2011-03-18T23:11:23 2:07 pm 2011-03-18T23:15:57 *** Chris_0076 has joined #aichallenge 2011-03-18T23:16:14 *** skynetz has joined #aichallenge 2011-03-18T23:21:11 it's 4:17 am there. 2011-03-18T23:21:47 where? 2011-03-18T23:21:52 we lack a few meridiens though :p 2011-03-18T23:22:04 Though no two were the same. 2011-03-18T23:22:04 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86.1 [Firefox 3.6.15/20110303170601]) 2011-03-18T23:23:11 10:20pm here 2011-03-18T23:24:28 @time 2011-03-18T23:24:28 sigh: 11:24 PM, March 18, 2011 2011-03-18T23:28:13 " is there a clever way to count all ennemy at distance < DIST for each friendly ant ?" <-- best i can think of is something like a quad tree, but i'm not even sure we'll have enough ants that it would even be worth its own overhead. unless you're talking about very large distances, it'd probably be best to just query all the points within a circle. 2011-03-18T23:28:43 i don't have anything really clever in mind, at least 2011-03-18T23:29:19 yeah, I was having a think about that as well, and just doing a dumb search seems best 2011-03-18T23:30:29 the current code just tests each point inside the bounding square of the vision circle 2011-03-18T23:30:33 there would be a pretty efficient way to do it with manhattan distance, i bet, but euclidean is a little tougher 2011-03-18T23:31:08 euclidean distance is not that much worse, 2 more multiplications per iteration 2011-03-18T23:31:13 oh i wasn't thinking manhattan. i was thinking.... what's it called.... the one where distance = dx + dy 2011-03-18T23:31:23 that is manhatten 2011-03-18T23:31:28 err 2011-03-18T23:31:41 max(dx,dy) 2011-03-18T23:31:45 *min 2011-03-18T23:31:47 gah 2011-03-18T23:31:50 min(dx,dy) 2011-03-18T23:31:51 oh, that is something else 2011-03-18T23:31:58 i just suck 2011-03-18T23:32:31 but anyway, with that one at least, i can envision a simple sliding-window sort of thing... i bet that could actually be adapted to other distance measures with some work, actually 2011-03-18T23:32:53 yeah 2011-03-18T23:33:26 you just precompute the values inside the bounding box 2011-03-18T23:33:30 but it would possibly be able to save some work querying locations over and over 2011-03-18T23:34:09 only if your ants are fairly dense though 2011-03-18T23:34:13 only problem is that the current code requires calculation of different radiuses 2011-03-18T23:34:57 anyway, I'm leaving optimisation until the specs are down 2011-03-18T23:35:06 yeah i'm not worrying about this sort of thing 2011-03-18T23:36:26 well it is important, just not right now 2011-03-18T23:37:11 just add memoization to your count function, and clear all results between turns 2011-03-18T23:37:39 McLeopold: what count function? 2011-03-18T23:37:57 enemies in range 2011-03-18T23:38:11 i'm assuming we are talking some function that gives you a mapping from your ants to the number of enemies within range 2011-03-18T23:38:14 or you can calc the whole grid first 2011-03-18T23:38:18 right 2011-03-18T23:38:22 that's the pass we're discussing 2011-03-18T23:38:36 i bet there is a way to do it without having to consider it fresh for each ant 2011-03-18T23:38:46 yeah, using a memoising decorator that has to be rest is annoying 2011-03-18T23:38:49 at least if your ants are kind of dense 2011-03-18T23:39:16 you can just consider ants that move, but I expect most of them move 2011-03-18T23:39:24 you could use bit maps and population counts 2011-03-18T23:39:44 yeah that provides a little compression 2011-03-18T23:41:25 actually i bet the quad tree approach might be reasonable 2011-03-18T23:42:14 quad tree performance does have degenerate cases for nearest neighbour, I think 2011-03-18T23:42:35 oh, duh 2011-03-18T23:42:44 this isn't nearest neighbor :) 2011-03-18T23:42:45 we don't want nearest or k-nearest 2011-03-18T23:42:49 yeah 2011-03-18T23:43:21 worth trying, but I'd bet against it 2011-03-18T23:43:27 quad tree would be a lot nicer if we only cared about a bounding box 2011-03-18T23:43:32 not as nice for euclidean 2011-03-18T23:43:40 yeah 2011-03-18T23:46:00 instead of quad tree you could partition into explicit subgrids 2011-03-18T23:46:11 ? 2011-03-18T23:46:19 *** Stocha has quit IRC (Ping timeout: 252 seconds) 2011-03-18T23:47:49 each section lists the ants inside and you do an explicit check against ants in neighbouring sections 2011-03-18T23:47:49 i intended to imply that the quad tree was balanced by map dimensions, not by number of ants, if that's what you're getting at 2011-03-18T23:48:32 well then, why put it in a tree? won't all leaves be the same size? 2011-03-18T23:48:41 so it is just a grid 2011-03-18T23:48:46 the same dimension, yes, but not the same ant counts 2011-03-18T23:48:57 *** Stocha has joined #aichallenge 2011-03-18T23:49:06 damn i probably missed part of the conversation :p 2011-03-18T23:49:14 i use bit maps for my part 2011-03-18T23:49:16 you'd be able to count the number of ants in a particular (rectangular) area more efficiently 2011-03-18T23:49:29 that will probably be okay with the so called method 1 of dying ants. 2011-03-18T23:49:39 although it is still unsatifying i guess 2011-03-18T23:49:56 Stocha: see topic for logs 2011-03-18T23:50:05 there is a fun trick with rotating the bit maps 2011-03-18T23:50:10 topics ? 2011-03-18T23:50:17 i'm on the web client 2011-03-18T23:50:21 where is topi ? 2011-03-18T23:50:27 ah channel logs 2011-03-18T23:50:45 you said you missed part of the conversation :P 2011-03-18T23:51:20 jmcarthur: yeah, that's the problem as soon as you move away from rectangular, you have to do some computation anyway 2011-03-18T23:51:52 okay that log things is usefull. i will stop saying junk when nobody i there then also :p 2011-03-18T23:52:23 the bit rotation is usefull 2011-03-18T23:52:41 i use bit maps and bit rotations for painting the disk radius 2011-03-18T23:52:44 what's this trick with rotating bitmaps? 2011-03-18T23:52:50 oh i see 2011-03-18T23:52:52 then i AND that with ennemy mp 2011-03-18T23:52:54 map 2011-03-18T23:53:06 i do not know for sure if it is faster though 2011-03-18T23:53:10 yeah, i see 2011-03-18T23:53:10 but it sure is cool :p 2011-03-18T23:53:28 the neat thing is that you can paint multiple disk at once 2011-03-18T23:53:44 that would be faster for sighting calculation for example 2011-03-18T23:54:06 although i doesn't really help for counting ennemies :'( 2011-03-18T23:54:14 yeah 2011-03-18T23:54:29 i don't like those fighting method, to slow :p 2011-03-18T23:54:47 i didn't try method 2 yet 2011-03-18T23:55:06 i guess you could simply precompute the shape for each sub distance 2011-03-18T23:55:19 yeah, we were talking about that 2011-03-18T23:56:05 i don't really see what they bring over the simple ant dies in same square. 2011-03-18T23:57:23 well, that will happen anyway if there is no battle resolution at all 2011-03-18T23:57:55 with method 1 "blocking" seems possible 2011-03-18T23:58:00 isn't it ? 2011-03-18T23:58:11 or did i do something wrong again :p 2011-03-18T23:58:23 what do you mean by blocking? 2011-03-18T23:58:25 i'll post some more .gif in order to be proof readed i guess :p 2011-03-18T23:58:42 i mean puting some ant still and the opponent not be able to get through 2011-03-18T23:58:53 it happens if many can kill one. 2011-03-18T23:59:05 then you can find some map where you can block