2011-02-13T00:12:15 *** bhasker has quit IRC (Ping timeout: 240 seconds) 2011-02-13T00:15:14 *** Prillicy has quit IRC (Ping timeout: 272 seconds) 2011-02-13T00:21:53 hmmm map files are going to be the transpose of what is passed to bots 2011-02-13T00:22:00 that is going to confuse a lot of people 2011-02-13T00:22:06 or just me? 2011-02-13T00:22:30 it's not very intuitive for debugging 2011-02-13T00:23:03 well sure you can transpose what you print, but bleh, i stand by my original argument, row,col is superior 2011-02-13T00:38:55 hi 2011-02-13T00:39:09 hey 2011-02-13T00:39:22 can i run my thoughts on food bonus by you? 2011-02-13T00:40:06 for each example suppose the game ends before the turn limit and with no participating players left in the game 2011-02-13T00:40:07 yeah 2011-02-13T00:40:56 each bots score freezes when they die right? I don't think the bonus should be shared if it's 2 or more bots finishing because they crashed or timed out, as non could have continued on to round up the food bonus 2011-02-13T00:41:24 and then if that's fine, what about a bot that died because it collided the last of its ants? 2011-02-13T00:42:03 my thought is to reward good ai, not good programming 2011-02-13T00:42:21 i agree with that 2011-02-13T00:42:33 this shouldn't be a coding contest, I think jeff might agree, since he is targeting new players 2011-02-13T00:42:45 git newbie here, is there any way I can download just the ants directory? 2011-02-13T00:42:53 no? 2011-02-13T00:43:02 thought so 2011-02-13T00:43:14 i swear you can 2011-02-13T00:43:22 what's the link? 2011-02-13T00:43:35 https://github.com/aichallenge/aichallenge/tree/epsilon/ants 2011-02-13T00:44:05 http://stackoverflow.com/questions/1298332/is-it-possible-to-do-a-partial-clone-branch-with-either-bazaar-mercurial-or-git 2011-02-13T00:44:17 McLeopold: what if an ant times out while their non-move takes out the last remaining player (almost never going to happen, but just trying to check edge cases) 2011-02-13T00:44:21 flag: it doesn't look like you can 2011-02-13T00:44:33 downloads top right? 2011-02-13T00:44:34 okay, I'll just grab the whole thing then 2011-02-13T00:44:38 .zip 2011-02-13T00:44:51 I think that downloads the whole aichallenge branch 2011-02-13T00:45:04 a git clone is going to get all, plus the history 2011-02-13T00:45:05 hmmm okay 2011-02-13T00:45:19 I don't think you'll need to worry about space, it's all text. 2011-02-13T00:45:35 antimatroid: I'm thinking there should be no special cases 2011-02-13T00:45:54 if your bot is in the game, you can gain points, if it is not in the game, you can't 2011-02-13T00:46:45 We could say that the food bonus can only be given to bots that don't crash or time out 2011-02-13T00:46:46 so does battle get resolved and they draw? or does the timeout ant die then the other player wins before the battle gets resolved? 2011-02-13T00:47:09 ^^ if that was easy i think that might be the fairest 2011-02-13T00:47:20 the timeout would take the bot out of the game before move resolution 2011-02-13T00:47:20 i agree with not punishing people too much though 2011-02-13T00:47:29 so, the move wouldn't get resolved 2011-02-13T00:47:38 i'm happy with that 2011-02-13T00:47:40 the last bot didn't time out, so they get the food bonus 2011-02-13T00:47:50 feel free to leave it as is 2011-02-13T00:47:52 let me check if the engine does that 2011-02-13T00:47:55 :p 2011-02-13T00:48:29 i've been updating the spec for a while with small things, i just did a save of it if anyone cares :) 2011-02-13T00:48:37 nope, i need to put in an extra game over check 2011-02-13T00:48:50 I've been reading it. 2011-02-13T00:48:56 I might do some editing later 2011-02-13T00:49:08 i have one last example for you :P 2011-02-13T00:49:27 2 ants draw normally through battle, but a third died from colliding itself to death 2011-02-13T00:49:48 i think that should be a 3 way draw for the bonus 2011-02-13T00:49:54 so, I saw the remark about map input being different from move input, I agree, it may not be consistent enough 2011-02-13T00:50:11 map file to move input? 2011-02-13T00:50:19 it doesn't matter how you die 2011-02-13T00:50:26 no special cases 2011-02-13T00:50:39 yep, just making sure it's like that, i did say my preference is as such :P 2011-02-13T00:52:22 *** contestbot_ has joined #aichallenge 2011-02-13T00:52:22 *** contestbot has quit IRC (Disconnected by services) 2011-02-13T00:52:47 McLeopold: is the food bonus there for existing food if the game reaches max turns? 2011-02-13T00:53:17 yes, all food on the map, including all ants of crashed players count 2011-02-13T00:53:43 cool 2011-02-13T00:53:43 *** contestbot_ is now known as contestbot 2011-02-13T00:53:44 *** ChanServ sets mode: +o contestbot 2011-02-13T00:53:53 basically, anything you would have gotten if the game continued until the max turns and you used all your ants for kills 2011-02-13T00:54:11 yep 2011-02-13T00:54:35 I hate do switch the code to row, col now... 2011-02-13T00:54:50 that's why i said so early :P 2011-02-13T00:55:02 do i get to say i told you so :P 2011-02-13T00:55:03 *** amstan has quit IRC (Ping timeout: 240 seconds) 2011-02-13T00:55:06 no 2011-02-13T00:55:19 i think i just did 2011-02-13T00:55:28 because if we don't send the map picture, it still makes sense 2011-02-13T00:55:42 I'm still on the fence about it. 2011-02-13T00:55:56 oh? i thought you agreed on char maps 2011-02-13T00:55:59 My data size tests weren't that robust. 2011-02-13T00:56:28 I think I may have underestimated the amount of data needed for map data. 2011-02-13T00:56:48 if we didn't have fog of war we'd be doing it all anyway 2011-02-13T00:57:04 i don't think it will be too expensive, and the visualiser string can still be the original format 2011-02-13T00:57:20 we'd be sending the map picture once, and the changes only each turn 2011-02-13T00:58:19 do you code in C much? 2011-02-13T00:58:32 only c++ why? 2011-02-13T00:58:52 i treat c++ like it's c with classes most of the time 2011-02-13T00:59:15 is it a big deal to check a string for a variable length token delimited by a space? 2011-02-13T00:59:27 I'm thinking about the 'P' designator for parameters 2011-02-13T00:59:38 hmmm not sure 2011-02-13T00:59:57 I'm wondering if it would be faster and easier for all languages if they could just check the first char for a 'P' 2011-02-13T01:00:07 python doesn't matter 2011-02-13T01:00:17 they already need to find ready and go right? 2011-02-13T01:00:21 but other people might rather have the single char designators 2011-02-13T01:00:24 about that, ready could really just be go :P 2011-02-13T01:00:35 yep 2011-02-13T01:00:54 it made the starter bot look nicer 2011-02-13T01:01:10 i also noticed visualiser input is using W for walk, i think that and bot output should just be consistent, bu ti don't like O either 2011-02-13T01:01:28 what's wrong with O 2011-02-13T01:01:34 it looks a lot like zero 2011-02-13T01:02:00 but it's position is only taken by letters so far 2011-02-13T01:02:18 ? 2011-02-13T01:02:36 *** delt0r___ has joined #aichallenge 2011-02-13T01:03:30 it would be nice if a parser could look at the first character of the line only and know what to do with it 2011-02-13T01:03:55 some languages, that's not a benefit, but in others it may be 2011-02-13T01:04:19 it is useful for me 2011-02-13T01:04:33 but i was told one character things are bad if anything needs changing later 2011-02-13T01:04:38 *** delt0r_ has quit IRC (Ping timeout: 272 seconds) 2011-02-13T01:04:47 i was with you, but janzert seemed to disagree 2011-02-13T01:05:12 well, you pidgin hole yourself into only a few possibilities 2011-02-13T01:06:02 we could really make go and end G and E then 2011-02-13T01:06:41 if we thought about this in terms of future contests, it would be nice to keep the "game" data to the set of letters, and other data to symbols maybe 2011-02-13T01:07:01 # is comment 2011-02-13T01:07:23 = is parameter? 2011-02-13T01:07:39 . is go? 2011-02-13T01:08:01 i never liked go 2011-02-13T01:08:14 it was 2 characters and everything else was 1 2011-02-13T01:08:44 it is still dead simple to parse 2011-02-13T01:08:58 i don't know about that 2011-02-13T01:09:12 it'd be very unintuitive and a pain to write examples for 2011-02-13T01:09:29 because a period is small? 2011-02-13T01:09:57 you can usually work out one letter ones by the first letter 2011-02-13T01:10:07 for that you need to memorise a bunch of links 2011-02-13T01:10:27 links? 2011-02-13T01:10:40 go == ., parameter == = etc. 2011-02-13T01:11:05 yeah, but 'go' has no more meaning that '.' 2011-02-13T01:11:18 what was tron like? 2011-02-13T01:11:52 how about 'end transmission' 2011-02-13T01:11:59 or 'engage' 2011-02-13T01:12:05 or 'over and out' 2011-02-13T01:14:57 so, let's keep it the same. ready can be go 2011-02-13T01:15:48 I'm also going to do more work on the bot protocol, cause I'm thinking changes only is still better. 2011-02-13T01:16:11 We are sending a lot of data, I'd hate for a bot to use all it's time just updating the state. 2011-02-13T01:17:46 tron just required you output N, E, S or W 2011-02-13T01:17:53 as you had to move and had onto one moving part 2011-02-13T01:18:56 a bot would have to be pretty stupid to spend the whole turn updating the state at the start of the turn 2011-02-13T01:19:17 and you don't have the same information issues with simulating turns, as you don't get more information, only get to change how much you think you can se 2011-02-13T01:19:43 i wouldn't be worried about that causing performance issues, i'm more worried about it being unecessarily complicated 2011-02-13T01:22:35 what do you think our max map size will be 2011-02-13T01:22:56 if we have 200 turns, over 200 in size doesn't make a lot of sense 2011-02-13T01:23:14 how many time should an ant be able to cross the map? 2011-02-13T01:23:51 that's why i've suggested a starting turn limit of 1000 2011-02-13T01:24:08 i think we could get away with a time limit of 2-3 seconds, if some games have 8 players so be it 2011-02-13T01:24:30 this coming from someone almost certain to want as much time as possible 2011-02-13T01:25:25 i think 4, 6, 8 and 9 (maybe not even 8?) would be good numbers of players to pick between 2011-02-13T01:25:34 although some larger games on tcp would be cool 2011-02-13T01:26:09 McLeopolds famous crazy maps server with a known increased turn limit? :P 2011-02-13T01:26:21 *** Prillicy has joined #aichallenge 2011-02-13T01:26:22 damn straight 2011-02-13T01:26:36 if we go with battle option 2, i expect a tcp server with 1 as a consolation prize 2011-02-13T01:27:13 so um, anyone like my sig? 2011-02-13T01:27:15 after the deadline, I wouldn't want to take away from the real competition 2011-02-13T01:27:19 what sig? 2011-02-13T01:27:34 added a signature on the forums finally 2011-02-13T01:27:35 i would be more interested in the tcp server with option 1 :P 2011-02-13T01:27:42 signatures are horrible :P 2011-02-13T01:27:53 Okay, antimatroid, just make your sig: "option 1" 2011-02-13T01:28:00 :) 2011-02-13T01:28:09 but option one is not horrible 2011-02-13T01:28:19 McLeopold: i'm going to make a "trollbot" for tcp 2011-02-13T01:28:21 I want a nickle every time you say "option 1" 2011-02-13T01:28:24 :) 2011-02-13T01:28:29 option nickel 2011-02-13T01:28:32 who actively tries to grow then kamakazee the "best" other player 2011-02-13T01:28:37 best by what it can work out 2011-02-13T01:28:40 you ants will get into formation and spell out "option 1" 2011-02-13T01:29:05 I should so do that 2011-02-13T01:29:05 i should make an irc sig with option 1 2011-02-13T01:29:21 okay, seriously, about map size 2011-02-13T01:29:25 1 2011-02-13T01:29:30 somewhat tied to turn limit 2011-02-13T01:29:35 start too big 2011-02-13T01:29:43 100 turns and 200x200? 2011-02-13T01:29:43 I was thinking that you really only have 1 option here 2011-02-13T01:29:45 ;) 2011-02-13T01:29:52 1000* 2011-02-13T01:29:53 must have enough turns to cross the map twice? 2011-02-13T01:30:16 i think you want even more than that if you want people to finish the game 2011-02-13T01:30:26 and it's boring if most games don't 2011-02-13T01:30:26 thrice? 2011-02-13T01:30:28 I thought you weren't going to have a turn limit....at least, a noticeable one 2011-02-13T01:30:44 McLeopold: start too big with what we can realistically handle, then find the magic number later 2011-02-13T01:30:46 so your turn limit should be like 1e12 2011-02-13T01:30:57 if I have a map of 256x256, then the turn limit should be at least... 2011-02-13T01:30:59 Prillicy: we have finite computing power 2011-02-13T01:31:00 1024? 2011-02-13T01:31:15 McLeopold: it also needs to fit on a screen 2011-02-13T01:31:28 people can scroll 2011-02-13T01:31:32 can any bots here do math? 2011-02-13T01:31:39 bots? 2011-02-13T01:31:43 like contest 2011-02-13T01:31:45 over there 2011-02-13T01:31:51 contestbot 2 + 2 2011-02-13T01:31:52 McLeopold: No! 2011-02-13T01:31:58 there you go... 2011-02-13T01:32:01 haha 2011-02-13T01:32:04 I can bring one in that can 2011-02-13T01:32:11 my old bot 2011-02-13T01:32:13 not needed :P 2011-02-13T01:32:16 please no more bots 2011-02-13T01:32:19 but I need to do some math 2011-02-13T01:32:27 google is your friend 2011-02-13T01:32:29 not publicly you don't 2011-02-13T01:32:37 or wolfram 2011-02-13T01:32:39 but then I have to flip over to the browser 2011-02-13T01:32:44 alt tab 2011-02-13T01:32:47 and I was trying to do the math you guys were doing 2011-02-13T01:32:49 it's like you're still typing 2011-02-13T01:32:50 it was related 2011-02-13T01:33:01 alt tab doesn't work as well on a netbook 2011-02-13T01:33:10 don't use a netbook :P 2011-02-13T01:33:16 desktops <3 2011-02-13T01:33:20 install a tiling window manager 2011-02-13T01:33:22 :) 2011-02-13T01:33:22 okay bring it in, if it's annoying you both get kicked 2011-02-13T01:33:23 * Prillicy kicks antimatroid for being gay. 2011-02-13T01:33:31 good enough 2011-02-13T01:33:36 @click 2011-02-13T01:33:37 antimatroid: I have no idea what you mean. 2011-02-13T01:33:48 !click 2011-02-13T01:33:51 bleh 2011-02-13T01:33:55 I think you mean @roulette 2011-02-13T01:34:00 @roulette 2011-02-13T01:34:00 *** antimatroid was kicked by contestbot (BANG!) 2011-02-13T01:34:01 * contestbot reloads and spins the chambers. 2011-02-13T01:34:06 *** antimatroid has joined #aichallenge 2011-02-13T01:34:12 one shot wonder 2011-02-13T01:34:21 haha 2011-02-13T01:34:51 I wish I could write McLeopold: @roulette and confuse it aha 2011-02-13T01:35:30 have to d/l her 2011-02-13T01:35:30 it would make for a cool mod warning tool 2011-02-13T01:35:34 haven't installed her in a while 2011-02-13T01:39:14 *** ChanServ sets mode: +o McLeopold 2011-02-13T01:39:29 there we go 2011-02-13T01:39:35 ban hammer ready... 2011-02-13T01:41:14 I am still trying to remember how I used to set her up 2011-02-13T01:41:25 there were a few tricks and it's been a long time since I ran her 2011-02-13T01:41:45 i changed the description for option 1 :P 2011-02-13T01:41:46 she's my bot btw, so if there's anything you don't like, let me know 2011-02-13T01:46:31 i think that max is meant to be a min oops 2011-02-13T01:54:05 *** Prillicy has quit IRC (Quit: I be bangin') 2011-02-13T01:55:13 *** Prillicy has joined #aichallenge 2011-02-13T01:59:20 *** SheV0 has joined #aichallenge 2011-02-13T02:06:22 *** SheV0 has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.10/20100914130356]) 2011-02-13T02:15:30 alright 2011-02-13T02:15:48 please welcome, The Bot Who's Hawt: SheV0 2011-02-13T02:16:17 *** SheV0 has joined #aichallenge 2011-02-13T02:16:22 * SheV0 dances 2011-02-13T02:16:33 now, where was I 2011-02-13T02:16:38 ;math 256*256 2011-02-13T02:16:38 256*256=65536 2011-02-13T02:16:46 that many turns mcleopold 2011-02-13T02:18:01 enough for each bot to travel each square once 2011-02-13T02:18:03 i think it would have been faster without the fetch the bot step 2011-02-13T02:18:05 it ensures enough time 2011-02-13T02:19:10 but not as cool 2011-02-13T02:21:21 I suppose I meant have the potential to travel to each square, not actually travel to each square. 2011-02-13T02:22:20 ;math e^i*pi 2011-02-13T02:22:22 I was just telling you what I wanted 2011-02-13T02:22:36 ;math sin(1) 2011-02-13T02:22:38 ;math 2+2 2011-02-13T02:22:38 2+2=4 2011-02-13T02:22:46 ;math pi 2011-02-13T02:22:47 it's evaling Javascript 2011-02-13T02:22:55 so it would be Math.pi 2011-02-13T02:22:57 ;math Math.pi 2011-02-13T02:22:58 Math.PI=3.141592653589793 2011-02-13T02:23:20 ;math Math.pow(Math.e, Math.i*Math.pi) 2011-02-13T02:23:21 Math.pow(Math.e, Math.i*Math.PI)=NaN 2011-02-13T02:23:26 it's sandboxed, and some restrictions are built in 2011-02-13T02:23:32 but it is a flat eval 2011-02-13T02:23:41 ;math 3.302|0 2011-02-13T02:23:41 3.302|0=3 2011-02-13T02:23:52 ;help 2011-02-13T02:24:01 gosh it's been a while since I've looked at her commands 2011-02-13T02:24:07 that's some old stupid stuff in there too 2011-02-13T02:24:07 ;math help 2011-02-13T02:24:13 ;timer 5 2011-02-13T02:24:13 Timer started Prillicy 2011-02-13T02:24:19 ;help timer 2011-02-13T02:24:35 ;age shev0 2011-02-13T02:24:35 I am: 3 years, 230.25 days, 06 hours, 44 minutes, and 59 seconds old, but always sweet as sugar. 2011-02-13T02:24:41 wow that was a long time ago 2011-02-13T02:24:55 ;timer 2011-02-13T02:24:56 Error! Try ;help 2011-02-13T02:24:59 ;help 2011-02-13T02:25:07 ;help timer 2011-02-13T02:25:15 ;roll 2d8 2011-02-13T02:25:16 * SheV0 rolls 2d8: 6, 7 Total: 13 2011-02-13T02:25:31 anyway, that's enough spam out of me 2011-02-13T02:25:33 ;roll 100d200 2011-02-13T02:25:34 * SheV0 rolls 100d200: 114, 1, 4, 119, 35, 58, 69, 38, 52, 34, 32, 105, 199, 79, 79, 54, 26, 184, 73, 2, 111, 195, 172, 184, 108, 78, 117, 35, 138, 24, 147, 25, 29, 55, 25, 149, 174, 148, 164, 191, 76, 47, 90, 57, 45, 140, 199, 126, 199, 196, 130, 22, 54, 10, 164, 139, 57, 122, 27, 119, 115, 61, 80, 142, 168, 142, 17, 168, 177, 24, 191, 193, 191, 37, 141, 179, 85, 162, 103, 15, 10, 185, 69, 5, 67,... 2011-02-13T02:25:34 * SheV0 ...103, 128, 110, 148, 146, 7, 138, 112, 7, 23, 138, 71, 23, 3, 35 Total: 9564 2011-02-13T02:25:47 there's a limit on that too 2011-02-13T02:25:50 so don't worry about floods 2011-02-13T02:25:51 :) 2011-02-13T02:25:55 ;roll 999999d9999999 2011-02-13T02:25:55 Cute, but no. 2011-02-13T02:26:00 * Prillicy points. 2011-02-13T02:26:21 ;liberalfight 2011-02-13T02:26:34 we don't have any implemented liberals 2011-02-13T02:26:39 ;help liberalfight 2011-02-13T02:26:43 ;authoritarian mcleopold 2011-02-13T02:26:49 ;help authoritarian 2011-02-13T02:26:55 can i make it hang with an infinite javascript loop? 2011-02-13T02:26:55 ;help authoritarian 2011-02-13T02:27:03 ;authoritarian +mcleopold for being an op 2011-02-13T02:27:44 ;liberal -prillicy for not liking obama 2011-02-13T02:27:50 ;help liberalfight 2011-02-13T02:28:00 ;liberalfight mcleopold v prillicy 2011-02-13T02:28:04 hmph 2011-02-13T02:28:09 pyro-: i added a few more things to the spec before but not much 2011-02-13T02:28:10 don't think I ever finished that 2011-02-13T02:28:28 pyro-: you can try, but I doubt it, most of the js commands are blocked manually 2011-02-13T02:28:36 the liberal thing was me being stupid 2011-02-13T02:28:39 ;authoritarian +prillicy for writing a bot 2011-02-13T02:28:40 I should rip out that code 2011-02-13T02:28:48 ;bar jedi cocktail 2011-02-13T02:28:48 * SheV0 mixes 1 ounce Blue Curacao Liqueur, 1/3 ounce creme de cacao, and 2 1/2 ounces milk in a glass. 2011-02-13T02:28:48 * SheV0 serves Prillicy a Jedi Cocktail. 2011-02-13T02:28:53 ;authfight mcleopold vs prillicy 2011-02-13T02:29:00 ;authfight mcleopold v prillicy 2011-02-13T02:29:01 I did that in my alcoholic days 2011-02-13T02:29:04 i onyl wrote enough to parse P lines so far antimatroid 2011-02-13T02:29:13 ;authfight mcleopold v prillicy 2011-02-13T02:29:13 Timer up Prillicy 2011-02-13T02:29:18 hmph 2011-02-13T02:29:32 i dont like choosing between represntations for maps :D 2011-02-13T02:29:37 anyway 2011-02-13T02:29:45 I'm going to finish my laundry and go to bed 2011-02-13T02:29:49 got game day in the morning 2011-02-13T02:29:50 good night 2011-02-13T02:30:34 who's up for a game of craps? 2011-02-13T02:30:41 ;roll 2d6 2011-02-13T02:30:41 * SheV0 rolls 2d6: 4, 4 Total: 8 2011-02-13T02:30:48 on the line... 2011-02-13T02:31:05 ;roll 2d6 2011-02-13T02:31:06 * SheV0 rolls 2d6: 1, 2 Total: 3 2011-02-13T02:31:13 ;roll 2d6 2011-02-13T02:31:14 * SheV0 rolls 2d6: 1, 6 Total: 7 2011-02-13T02:31:19 and I bust 2011-02-13T02:31:37 antimatroid: have you written a voronoi algo before? 2011-02-13T02:31:51 +1 for weechat /filter add SheV0 2011-02-13T02:33:16 McLeopold: yeah, it's just that paint algorithm pretty much 2011-02-13T02:33:41 McLeopold: I think spawn radius should be capped at 3 2011-02-13T02:33:54 because otherwise it happens through walls, which makes no sense 2011-02-13T02:34:06 it kind of makes sense for walls to not be so high that you can see and battle over them 2011-02-13T02:34:30 it's water 2011-02-13T02:34:34 oh, are you talking about on a discrete grid? 2011-02-13T02:34:45 even then it doesn't make sense for food to be consumer from the other side if you can't walk over 2011-02-13T02:34:50 what do you mean by discrete? 2011-02-13T02:35:09 well you can do voronoi diagrams in continous space 2011-02-13T02:35:13 like R^2 2011-02-13T02:35:15 your trying to make it make sense? it doesn't make sense at all for food to turn into ants when you get near it in the first place :D 2011-02-13T02:35:44 R^2? 2011-02-13T02:36:01 cartesian product of the real numbers 2011-02-13T02:36:06 (x,y) where they are real numbers 2011-02-13T02:36:07 2d plan 2011-02-13T02:36:08 e 2011-02-13T02:36:37 you can even do it in R^n if you want 2011-02-13T02:37:10 discrete grid means we don't do floating point? 2011-02-13T02:37:43 i was asking what you were asking about voronoi diagrams for? 2011-02-13T02:37:57 I know, but I need to learn some lingo 2011-02-13T02:38:15 were you curious for finding shortest paths in this? 2011-02-13T02:39:38 there are 2 algorithms i will be using that paint for this, one to be used to find a players shortest path somewhere and another to find which squares which people can get to first 2011-02-13T02:39:43 I'm sure voronoi, and delaunay triangulation will both come in handy. 2011-02-13T02:40:10 I'm thinking more about map gen right now, and analyzing fairness. 2011-02-13T02:40:36 I'm wondering how to change the algorithm now that we are on a torus 2011-02-13T02:40:41 writing a map generator sounds fun 2011-02-13T02:40:45 from starting positions? do you want fairness to be the number of squares each ant can get to first, including ties? 2011-02-13T02:40:56 I don't know yet. 2011-02-13T02:41:02 and possibly resources 2011-02-13T02:41:05 that is fairly easy to do 2011-02-13T02:41:29 voronoi to calc starting territory. 2011-02-13T02:41:37 yeah 2011-02-13T02:41:55 maybe some shortest path to see if they have the same type of starting distance from opponents 2011-02-13T02:41:57 you do what you did for visibility, but block movement by walls and store more info for each found square, like current distance 2011-02-13T02:42:17 is there a set number of players per game? 2011-02-13T02:42:18 that's pretty much A*? 2011-02-13T02:42:32 i'd start them all on a rectangular lattice then add stuff in non-symmetrically from there personally 2011-02-13T02:42:47 i've never looked at A* 2011-02-13T02:43:03 pyro-: it will be random and not told to you 2011-02-13T02:43:11 well, picked from a known possible set 2011-02-13T02:43:14 but random from that 2011-02-13T02:43:23 oh 2011-02-13T02:43:34 i am also going to write a map generator becuase it sounds awesome 2011-02-13T02:43:39 please do 2011-02-13T02:43:54 we want to find whatever maps are most interesting while fair 2011-02-13T02:44:11 you want every ant to be able to access every non-wall square on the map 2011-02-13T02:44:31 i can already see that making it precisly fair is very complecated 2011-02-13T02:44:32 don't forget the wrapping when you do that 2011-02-13T02:44:47 that map gen i linked you yesterday is completely fair 2011-02-13T02:44:58 yet if you come across an enemy at the start, it wont be on symmetric terms 2011-02-13T02:45:11 and interesting maps** :P 2011-02-13T02:45:20 antimatroid: a small correction, you want every bot to be able to access the same set of land squares 2011-02-13T02:45:41 McLeopold: you want people to go around and find closed off regions to fill it with walls? 2011-02-13T02:45:48 if a map gen creates land that is not accessible, i'm fine with that 2011-02-13T02:45:57 it wastes space 2011-02-13T02:46:11 it makes it harder >:) 2011-02-13T02:46:30 not really, if area enclosed fill with walls 2011-02-13T02:46:52 if it's not filled with wall, the food gen will place food inside 2011-02-13T02:47:08 if the walls are thin enough, you can cross the boundary 2011-02-13T02:47:09 yeah i do kind of like it 2011-02-13T02:47:29 i prefer walls blocking food spawning 2011-02-13T02:47:44 actually, no, that's awesome 2011-02-13T02:47:46 if we do distance 1, it will 2011-02-13T02:47:52 you will get your own region to yourself 2011-02-13T02:47:58 i don't think jeff would like that 2011-02-13T02:48:06 unless someone else get's the other half 2011-02-13T02:48:27 then there is a separate battle for the region 2011-02-13T02:48:39 i think the starting accessible region should still be something like at least 80% of land squares 2011-02-13T02:48:44 maybe then the map is divided such that 2 bots can't kill each other 2011-02-13T02:49:19 I really just want to crash bots with bad path finding. :) 2011-02-13T02:49:25 yeah, it'd be fun but have issues 2011-02-13T02:50:17 it would be a cool strategy, to find the spaces, and attempt to get in 2011-02-13T02:50:32 does the task of map generation include spawning food? 2011-02-13T02:50:54 you can kinda guarantee survival to the end if you get it 2011-02-13T02:51:07 maybe 2011-02-13T02:51:10 it's in the spec 2011-02-13T02:51:19 the first turn will also spawn food 2011-02-13T02:51:29 pyro-: you have to place starting food, the engine deals with replenishment 2011-02-13T02:51:43 I can see having a few starting configurations for food, to ensure more fairness 2011-02-13T02:52:07 antimatroid: you can make a blank map, and the engine will place for you 2011-02-13T02:52:35 I'm thinking that the starting ant will always have 4 food squares in a plus pattern around it 2011-02-13T02:52:48 so bots can have some type of starting plan 2011-02-13T02:53:06 the beginning of the game will decide so much, it makes sense 2011-02-13T02:53:11 why not just start people with a square block or line of ants? 2011-02-13T02:53:26 that works too 2011-02-13T02:53:38 otherwise you have to worry about food blocking movement 2011-02-13T02:53:42 but then with the food, you can see if someone has a better starting schedule 2011-02-13T02:54:09 there isn't one, do nothing, spawn ants 2011-02-13T02:54:35 when you think about it in 3D space 2011-02-13T02:54:35 if it's just out of range, walk up one then in a square 2011-02-13T02:54:40 *** Mathnerd314 has quit IRC (Ping timeout: 240 seconds) 2011-02-13T02:54:42 if you had F 0 0, F 0 4, F 4 0, F 4 4, A 2 2 0, what is your opening move? 2011-02-13T02:54:45 think about what in 3d space? 2011-02-13T02:54:54 you get a very irregular looking shape from a wraped up rectangle 2011-02-13T02:55:03 i cant fold my piece of paper into anything nice 2011-02-13T02:55:04 a torus 2011-02-13T02:55:12 it's a donut 2011-02-13T02:55:17 and have it join at the edges 2011-02-13T02:55:29 I'm thinking we could have maybe 20 starting configurations, so every bot knows it will have 4 - 8 food squares nearby 2011-02-13T02:55:31 it's topologically equivalent to a coffee mug 2011-02-13T02:55:35 the starts will be more even 2011-02-13T02:55:52 McLeopold: just say you will have 4 resource squares in your field of vision or something? 2011-02-13T02:56:14 yea 2011-02-13T02:56:15 i don't like having stuff not randomly generated 2011-02-13T02:56:22 it will be 2011-02-13T02:56:30 its toroidal but, take the corners of a a4 together and you see its nothing like a donut 2011-02-13T02:56:32 but the same starting config will be used for each bot 2011-02-13T02:56:49 pyro-: it is 2011-02-13T02:57:01 you just can't stretch the paper 2011-02-13T02:57:29 take a polygonial torus, imagine walking around each iner ring or the ring around the whole thing 2011-02-13T02:57:33 oh i see it 2011-02-13T02:57:34 fold the paper in half, once vert, once horz, tape the edges 2011-02-13T02:57:35 that's like walking along your rows and columns 2011-02-13T02:57:54 *** SheV0_ has joined #aichallenge 2011-02-13T02:58:02 or, make the paper a cylinder 2011-02-13T02:58:12 that's the first step 2011-02-13T02:58:14 yeah i thought of the cylinder :) 2011-02-13T02:58:14 you can cross from the outside to the inside 2011-02-13T02:58:16 then stretch it around 2011-02-13T02:58:18 but streched 2011-02-13T02:58:22 on once side :) 2011-02-13T02:58:25 one 2011-02-13T02:58:31 just do 2 sides 2011-02-13T02:58:44 a 3d visualiser with the ability to change the angle would be awesome 2011-02-13T02:58:49 *** Prillicy_ has joined #aichallenge 2011-02-13T02:59:14 *** Prillicy has quit IRC (Ping timeout: 255 seconds) 2011-02-13T02:59:15 *** Prillicy_ is now known as Prillicy 2011-02-13T02:59:41 *** SheV0 has quit IRC (Ping timeout: 255 seconds) 2011-02-13T02:59:52 *** SheV0_ is now known as SheV0 2011-02-13T03:00:28 in the case of 2 bots cutting it into two annuli is fair 2011-02-13T03:00:45 but in any other case i think the only way is cutting it into sections? 2011-02-13T03:00:54 what do you mean? 2011-02-13T03:01:03 you can't have players symmetrical to each other if n>3 2011-02-13T03:01:08 talking to myself more than the channel :P 2011-02-13T03:01:11 sorry :P 2011-02-13T03:02:03 you will be :P 2011-02-13T03:04:29 *** Cyndre has quit IRC (Ping timeout: 276 seconds) 2011-02-13T03:07:00 McLeopold: I think your fog of war is broken 2011-02-13T03:07:11 at least it is in the gif image on the forums i think 2011-02-13T03:07:15 i think i've possibly worked out a good algorithm for fair map generation. yey. too complicated to be done by tonight tho 2011-02-13T03:07:38 what do you see? 2011-02-13T03:08:06 when an ant walks off the bottom to the top near the start, you don't start seeing anything untill it walks over the screen 2011-02-13T03:08:18 i suspect you're not calculating euclidean distances properly with wrapped edges 2011-02-13T03:08:52 the spec page has what i'm using 2011-02-13T03:09:41 dang 2011-02-13T03:09:45 :P 2011-02-13T03:10:07 i bet if i used my first method, it would :P 2011-02-13T03:10:21 yeah but mines faster no? :P 2011-02-13T03:10:32 maybe 2011-02-13T03:10:55 another good test on view radius is a.a 2011-02-13T03:11:03 when i first wrote my algorithm that was broken 2011-02-13T03:11:27 it would paint around the second a, then not find anything that could move to when i got to it, so it wouldn't reach it's visibility area 2011-02-13T03:11:28 I know I did have movies where there was wrapping, so I think I just messed up your algo 2011-02-13T03:11:56 just check your euclidean distance function 2011-02-13T03:12:07 i have a feeling you just need to change how you get dx and dy 2011-02-13T03:12:43 yeah, it's naive 2011-02-13T03:12:47 I'll fix it 2011-02-13T03:13:04 dx=min(abs(a.x−b.x), width−abs(a.x−b.x)) 2011-02-13T03:13:04 dy=min(abs(a.y−b.y), height−abs(a.y−b.y)) 2011-02-13T03:13:47 i think the starter packages should come with that function and "get location" from a starting location and direction 2011-02-13T03:13:56 so beginners don't really need to think about the mechanics of wrapping 2011-02-13T03:14:09 yep, I've got that in my starter package 2011-02-13T03:14:32 my starter has the distance and a get direction function 2011-02-13T03:14:56 direction will return the direction of the shortest distance with wrapped edges, so n e s w ne nw se sw 2011-02-13T03:15:15 say what?> 2011-02-13T03:15:35 so, you know the shortest distance, but what direction is it? 2011-02-13T03:16:26 get location is pretty easy, (x + dx) % width 2011-02-13T03:17:58 my get location uses a constant array to just add stuff depending on the integer direction passed 2011-02-13T03:18:08 and mods as needed etc. 2011-02-13T03:18:35 i have enough directions to cover every square in an ants fight radius 2011-02-13T03:19:13 that way i'm not checking squares for each ant multiple times as to whether i've already looked there 2011-02-13T03:19:23 or needing to keep track of where i already looked 2011-02-13T03:19:39 ls 2011-02-13T03:19:44 damn it, wrong window 2011-02-13T03:19:48 dir 2011-02-13T03:19:53 damn it, wrong os 2011-02-13T03:20:46 j3camero is missing in action 2011-02-13T03:20:57 @lastseen j3camero 2011-02-13T03:20:58 antimatroid: User error, it's not my fault. 2011-02-13T03:21:02 yes it is 2011-02-13T03:21:13 is the game finalized enough to begin writing entries? 2011-02-13T03:21:29 i wouldn't advise it unless you're happy changing it if anything changes 2011-02-13T03:21:47 *** Cyndre has joined #aichallenge 2011-02-13T03:22:15 having said that i have a bot set up 2011-02-13T03:22:25 but that has an old input format that i haven't changed yet 2011-02-13T03:22:48 and the actual strategy function is bare, i've been using it to test game mechanics 2011-02-13T03:23:15 flag, if it is stupid enough, we can include it in the starter pack 2011-02-13T03:23:27 you should check out LeftyBot :) 2011-02-13T03:23:44 I'm sure I'll find a way to make a stupid one :) 2011-02-13T03:23:51 it finds a wall and follows it to the left 2011-02-13T03:24:15 is the protocol decided on at least? 2011-02-13T03:24:25 no 2011-02-13T03:24:49 the game is mostly formed, but there are decisions to be made that still make quite a few differences 2011-02-13T03:24:50 just write 2 functions 2011-02-13T03:24:57 hence why i would advise against it :P 2011-02-13T03:26:52 hmmm fuck 2011-02-13T03:27:23 can we print moves as 2011-02-13T03:27:24 O source.x source.y dest.x dest.y? 2011-02-13T03:27:46 i'm going to be looking at my map transposed to what the engine expects back 2011-02-13T03:28:35 McLeopold: can we please go to [row][col] with the bot input :( 2011-02-13T03:29:26 why not a direction? 2011-02-13T03:32:30 because then i need to work out what the translated direction is 2011-02-13T03:32:35 rather than print the numbers around the other way 2011-02-13T03:32:45 transposed* 2011-02-13T03:32:48 damn i mix that up a lot 2011-02-13T03:33:28 so, if we go all row/col, you're okay with a direction? 2011-02-13T03:33:32 yes 2011-02-13T03:33:35 LO 2011-02-13T03:33:37 :P* 2011-02-13T03:33:40 okay 2011-02-13T03:33:49 change the damn spec 2011-02-13T03:33:54 you don't need to change it right now :P but yeah 2011-02-13T03:34:15 you wont even need to think about these things changing ever again once it's all consistent, i promise 2011-02-13T03:34:24 I know 2011-02-13T03:34:41 I hope you're writing a c++ engine 2011-02-13T03:34:47 cause we may need the speed 2011-02-13T03:35:09 i could, but i never got io working without it being horribly slow 2011-02-13T03:35:12 you just need to turn it into a python extension :) 2011-02-13T03:35:15 i'll play around with that tonight if you want? 2011-02-13T03:35:57 actually, I think someone proposed that the game engine should just be another process that communicates like the bots 2011-02-13T03:36:06 so, we could write a game in any language 2011-02-13T03:36:40 will a compiled c++ program run on any machine? or does it need to be compiled locally for different things/ 2011-02-13T03:36:46 i have no idea about that kind of thing 2011-02-13T03:37:24 depends on the architecture/libraries of the target machine 2011-02-13T03:37:35 flag: we want it to work on the most possible 2011-02-13T03:37:59 then it needs to be compiled locally 2011-02-13T03:38:12 i'm not sure if that's a good idea 2011-02-13T03:38:18 a linux execuatable won't work on windows, etc. 2011-02-13T03:39:07 we could give people a python engine then run a c++ on the servers if necessary 2011-02-13T03:39:12 and have both be open source 2011-02-13T03:40:01 in fact haven't the previous engines been java that were given to people 2011-02-13T03:40:03 do you think the game engine will be slow enough to need c++? 2011-02-13T03:40:14 presumably under the assumption that everyone has jre? 2011-02-13T03:40:22 yeah, all the previous ones were written in java, which is a decent middle ground 2011-02-13T03:40:25 i don't think so, we'll see 2011-02-13T03:40:38 * antimatroid has forgotten everything except how awful java was 2011-02-13T03:40:58 what was wrong with the java engine? 2011-02-13T03:41:50 no, i mean me and the language 2011-02-13T03:42:04 i refuse to use java :P 2011-02-13T03:42:04 ah 2011-02-13T03:47:48 McLeopold: specs updated, i changed parameters to rows and cols instead of width and height too 2011-02-13T03:49:08 yeah, that makes sense 2011-02-13T03:49:17 were are going to piss off the math nerd 2011-02-13T03:49:18 s 2011-02-13T03:50:33 the last contest engine was python, but it didn't need to do much 2011-02-13T03:50:45 this engine is more complicated, with the fog of war stuff 2011-02-13T03:51:08 how are we going to piss off the math nerds? 2011-02-13T03:51:12 I'd rather give every spare cycle to the bots that I can. 2011-02-13T03:51:13 i am one of the maths nerds:P 2011-02-13T03:51:26 not using cartesian coordinates 2011-02-13T03:51:45 lol, they'll prefer [row][col] 2011-02-13T03:51:54 you treat the map like a matrix 2011-02-13T03:51:58 except for those that program in D 2011-02-13T03:52:13 or those that have matrix libraries 2011-02-13T03:52:29 i'm surprised people don't say in the first week of a cs course, never use [x][y] 2011-02-13T03:53:07 *** Cyndre has quit IRC (Ping timeout: 272 seconds) 2011-02-13T03:54:44 *** flag has quit IRC (Quit: Lost terminal) 2011-02-13T03:56:47 *** Cyndre has joined #aichallenge 2011-02-13T04:18:58 *** antimatroid has quit IRC (Ping timeout: 250 seconds) 2011-02-13T04:24:09 *** antimatroid has joined #aichallenge 2011-02-13T04:27:06 *** delt0r_ has joined #aichallenge 2011-02-13T04:28:34 *** delt0r___ has quit IRC (Ping timeout: 245 seconds) 2011-02-13T04:40:26 *** sigh has quit IRC (Remote host closed the connection) 2011-02-13T04:44:17 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-02-13T04:55:11 *** delt0r_ has joined #aichallenge 2011-02-13T05:04:43 *** sigh has joined #aichallenge 2011-02-13T05:10:54 jmcarthur: what do you think is better? 2011-02-13T05:10:55 ant a lives if: 2011-02-13T05:10:55 enemies(a).size < min_{b \in enemies(a)} (enemies(b).size) 2011-02-13T05:10:55 or enemies(a).size < enemies(b).size \forall b \in enemies(a) 2011-02-13T05:11:22 is it reasonably assume a beginner would understand the first? 2011-02-13T05:11:50 reasonable* damnit! 2011-02-13T05:38:26 *** Blkt has joined #aichallenge 2011-02-13T05:41:53 *** janzert has quit IRC (Read error: Connection reset by peer) 2011-02-13T05:43:14 *** janzert has joined #aichallenge 2011-02-13T05:46:58 *** janzert has joined #aichallenge 2011-02-13T05:49:27 *** mega1 has joined #aichallenge 2011-02-13T06:18:03 *** nullkuhl_ has quit IRC (Read error: Connection reset by peer) 2011-02-13T06:18:45 *** nullkuhl has joined #aichallenge 2011-02-13T06:24:54 good day everyone 2011-02-13T06:29:23 evening 2011-02-13T06:34:17 hi 2011-02-13T06:57:51 *** Apophis_ has joined #aichallenge 2011-02-13T07:06:43 *** choas has joined #aichallenge 2011-02-13T07:17:06 *** amstan_ has quit IRC (Ping timeout: 240 seconds) 2011-02-13T07:21:47 *** Apophis_ has quit IRC (Quit: Verlassend) 2011-02-13T07:29:29 *** sigh has quit IRC (Remote host closed the connection) 2011-02-13T07:39:36 *** mceier has joined #aichallenge 2011-02-13T08:47:40 *** boegel has joined #aichallenge 2011-02-13T08:52:30 *** boegel has quit IRC (Client Quit) 2011-02-13T09:55:17 antimatroid: why the inconsistency? why make enemies an external function but make size a method? 2011-02-13T09:56:02 antimatroid: the latter probably makes more intuitive sense, i think 2011-02-13T09:56:22 at least it does to me 2011-02-13T10:22:05 *** mceier has quit IRC (Quit: leaving) 2011-02-13T10:32:58 *** temp01_ has joined #aichallenge 2011-02-13T10:33:43 *** Prillicy has quit IRC (Quit: I be bangin') 2011-02-13T11:00:29 *** amriedle has joined #aichallenge 2011-02-13T11:31:23 ;math Math.sqrt(833) 2011-02-13T11:31:23 Math.sqrt(833)=28.861739379323623 2011-02-13T12:05:07 *** McLeopold has quit IRC (Ping timeout: 260 seconds) 2011-02-13T12:25:51 jmcarthur: what inconsistency? 2011-02-13T12:32:00 oh i see, i wasn't making enemies a function, that's just meant to be a set 2011-02-13T12:37:09 *** flag has joined #aichallenge 2011-02-13T12:48:14 *** delt0r___ has joined #aichallenge 2011-02-13T12:49:30 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-02-13T12:51:33 *** KP13 has joined #aichallenge 2011-02-13T12:53:41 *** delt0r_ has joined #aichallenge 2011-02-13T12:54:45 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-02-13T12:55:25 *** Kingpin13 has quit IRC (Ping timeout: 276 seconds) 2011-02-13T13:21:33 *** Migi32 has joined #aichallenge 2011-02-13T13:22:14 *** delt0r___ has joined #aichallenge 2011-02-13T13:23:55 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-02-13T13:25:13 *** delt0r_ has joined #aichallenge 2011-02-13T13:25:16 *** delt0r___ has quit IRC (Read error: Operation timed out) 2011-02-13T13:46:04 *** Meatkat has joined #aichallenge 2011-02-13T13:57:40 *** delt0r___ has joined #aichallenge 2011-02-13T13:59:55 *** delt0r_ has quit IRC (Ping timeout: 276 seconds) 2011-02-13T14:10:43 *** delt0r_ has joined #aichallenge 2011-02-13T14:11:55 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-02-13T14:47:55 *** Meatkat has quit IRC (Ping timeout: 240 seconds) 2011-02-13T15:19:16 *** Palmik has joined #aichallenge 2011-02-13T15:25:59 *** Accoun has quit IRC () 2011-02-13T15:37:06 *** Accoun has joined #aichallenge 2011-02-13T15:41:41 *** KP13 has quit IRC (Quit: You're a kitty!) 2011-02-13T15:46:56 *** UncleVasya has joined #aichallenge 2011-02-13T15:54:20 *** Migi32 has quit IRC (Ping timeout: 240 seconds) 2011-02-13T15:56:26 *** sigh has joined #aichallenge 2011-02-13T16:06:01 *** Migi32 has joined #aichallenge 2011-02-13T16:07:20 *** UncleVasya has quit IRC (Ping timeout: 276 seconds) 2011-02-13T16:08:58 *** sigh has quit IRC (Remote host closed the connection) 2011-02-13T16:10:56 *** Accoun has quit IRC (Ping timeout: 255 seconds) 2011-02-13T16:27:44 *** Accoun has joined #aichallenge 2011-02-13T16:37:27 *** McLeopold has joined #aichallenge 2011-02-13T16:52:51 I need some slight clarification on bot input because either the wiki's wrong or I can't read 2011-02-13T16:53:21 is the bot passed only updates to the map or the entire map on each consecutive turn? 2011-02-13T16:55:40 *** Meatkat has joined #aichallenge 2011-02-13T16:56:59 *** amstan_ has joined #aichallenge 2011-02-13T16:56:59 *** ChanServ sets mode: +o amstan_ 2011-02-13T17:03:45 *** mega1 has quit IRC (Ping timeout: 276 seconds) 2011-02-13T17:05:30 *** sigh has joined #aichallenge 2011-02-13T17:29:29 *** Palmik has quit IRC (Remote host closed the connection) 2011-02-13T17:36:34 *** Meatkat has quit IRC (Ping timeout: 272 seconds) 2011-02-13T17:37:52 *** choas has quit IRC (Quit: leaving) 2011-02-13T18:05:10 *** Migi32 has quit IRC (Quit: boinc) 2011-02-13T18:09:25 flag: we are still deciding 2011-02-13T18:11:55 okay, thanks, because I started writing a bot based on the wiki spec and I noticed that the input from the engine was completely different 2011-02-13T18:18:41 flag: what language? 2011-02-13T18:23:43 C 2011-02-13T18:25:04 so, you might start with the map syntax 2011-02-13T18:25:11 the engine can output both 2011-02-13T18:26:59 I'm not sure I know what you're saying. I have it configured to accept the map in the form of: 2011-02-13T18:27:19 M [?.%*?abcABC] 2011-02-13T18:27:57 and I just realized I'm getting: W 16 17, L 16 19, etc. 2011-02-13T18:27:57 yeah, go with that 2011-02-13T18:28:10 do you see the render_text function? 2011-02-13T18:28:54 in ants.py? 2011-02-13T18:28:58 antimatroid: ^^ 2011-02-13T18:29:07 yes 2011-02-13T18:29:14 there is a function called get_player_state 2011-02-13T18:29:34 just switch the function in there to use output format you want 2011-02-13T18:30:00 also, there is a bug in get_vision 2011-02-13T18:30:31 I'll update in a minute 2011-02-13T18:32:16 amstan_: ? 2011-02-13T18:32:23 amstan_: * 2011-02-13T18:32:26 antimatroid: see what flag said 2011-02-13T18:33:08 does get_vision return the map in the wiki format or a different one? 2011-02-13T18:33:12 ah, so he can be our designated c writer 2011-02-13T18:33:23 neither 2011-02-13T18:33:32 render_text and render_changes 2011-02-13T18:33:39 changes is what you were seeing 2011-02-13T18:33:44 text is the map format 2011-02-13T18:33:51 flag: i'm now confused 2011-02-13T18:34:08 are you asking about input or visibility counts? 2011-02-13T18:34:22 (sorry, i literally just woke up :P) 2011-02-13T18:35:20 well first I was asking whether or not the engine returns the map in the wiki format because it didn't appear to, and now I'm trying to change it 2011-02-13T18:35:52 are you using mcleopolds engine? 2011-02-13T18:36:00 input isn't finalised yet i don't think 2011-02-13T18:36:04 yes 2011-02-13T18:36:49 i personally expect we'll be using the char maps 2011-02-13T18:37:09 as we're going to want to send all currently visible squares otherwise which may even be more costly than just char maps 2011-02-13T18:38:16 they aren't more costly, remember it was a 10x increase for maps 2011-02-13T18:39:27 if there are two giant armys of ants it might be more costly, no? 2011-02-13T18:41:33 *** Accoun has quit IRC (Ping timeout: 240 seconds) 2011-02-13T18:41:40 McLeopold: if you are passing info for every currently visible square, it might get more costly pretty fast 2011-02-13T18:42:01 *** Accoun has joined #aichallenge 2011-02-13T18:43:32 it's not, I tested 2011-02-13T18:43:40 maps are way more data 2011-02-13T18:45:42 is that for printing all currently visible square info or just the old format? 2011-02-13T18:45:51 maps are more data, but updates are more instrutions 2011-02-13T18:46:24 we'll get the right mix, just code a map bot for now 2011-02-13T19:04:21 amstan_: where the hell is jeff 2011-02-13T19:04:35 he hasn't been here in like 2 days :P 2011-02-13T19:04:50 McLeopold: where is the function that outputs the number of rows and cols? 2011-02-13T19:04:55 antimatroid: so? lol 2011-02-13T19:05:10 McLeopold: from your test before I thought you said the crossover on size was when you could see ~1/8th of the map 2011-02-13T19:05:36 or at least had to send changes on 1/8th of the squares 2011-02-13T19:06:07 so if you're sending all visible squares not just changes it would then be when seeing 1/8th 2011-02-13T19:07:58 flag: get_player_start 2011-02-13T19:08:15 janzert: I need to do more testing 2011-02-13T19:08:38 I want to run a tcp server, but I am seriously concerned about bandwidth 2011-02-13T19:09:32 if the average update line is 'W 80 100' then that is 8 characters, when it would only be 1 character in the map format 2011-02-13T19:09:43 +1 for the new line 2011-02-13T19:09:50 *** SheV0 has quit IRC (Ping timeout: 260 seconds) 2011-02-13T19:09:55 It should be about the same as running a tron tcp server was, although I don't know how intensive that was either 2011-02-13T19:10:12 janzert: most tron maps were 15x15 no? 2011-02-13T19:10:15 not 200x200+ 2011-02-13T19:10:18 but, if we only send differences, it makes a huge difference, because your sending 100x less information 2011-02-13T19:10:19 no 2011-02-13T19:10:28 25* maybe? 2011-02-13T19:10:32 there was something around there 2011-02-13T19:10:47 I thought 50x50 was more common on the tcp server 2011-02-13T19:10:47 although i never used tcp for tron, so they may have been different 2011-02-13T19:11:02 I guess I don't remember for sure 2011-02-13T19:11:07 did tron send the entire map each turn? 2011-02-13T19:11:08 still a pretty big difference 2011-02-13T19:11:15 McLeopold: yes 2011-02-13T19:11:20 yes, pretty silly in hindsight 2011-02-13T19:11:25 very 2011-02-13T19:11:45 I don't think bandwidth was ever a concern for it :) 2011-02-13T19:11:55 it is for my conneciton 2011-02-13T19:12:00 but mcleopold is running his server from home 2011-02-13T19:12:05 yeah 2011-02-13T19:12:11 yeah, that makes a big difference of course 2011-02-13T19:12:34 if an official tcp server is done, will that run off an official server? 2011-02-13T19:12:41 yes 2011-02-13T19:12:45 is it possible to set that up? 2011-02-13T19:12:47 I may be doing the official one 2011-02-13T19:13:09 I could get one going in a day, without the ranking 2011-02-13T19:13:18 if I had a visualizer... 2011-02-13T19:13:29 we need frontier for that 2011-02-13T19:13:37 right now I'd have to make the animated gifs 2011-02-13T19:13:51 actually, I could whip up a pixel one in a day 2011-02-13T19:13:58 it wouldn't be good 2011-02-13T19:14:01 tcp for ants is also going to be more complex since you need to schedule more than 2 players at once 2011-02-13T19:14:15 yeah, my tcp framework already handles that 2011-02-13T19:14:16 janzert: pick a map, wait for enough players? 2011-02-13T19:14:44 I've got it to a working state 2 month ago, it just doesn't look pretty 2011-02-13T19:15:05 I could never decide if I wanted data to be stored in a database or in text files. 2011-02-13T19:15:41 hehe 2011-02-13T19:18:08 http://xkcd.com/ 2011-02-13T19:18:24 we have a running joke of being the first to pick up on a missed closed bracket with our maths lecturers 2011-02-13T19:19:03 particularly as they already annoyed the hell out of one of our friends (not I surprisingly) 2011-02-13T19:20:24 what's the purpose of labeling dead ants on the map? 2011-02-13T19:20:31 shouldn't they just disappear? 2011-02-13T19:20:57 so simple bots can track them easier 2011-02-13T19:21:05 rather than just having them disapear 2011-02-13T19:22:00 how long will a dead ant remain on the map? until the end of the game? 2011-02-13T19:22:05 and actually there are situations where otherwise you wouldn't know if an ant died or stepped out of vision 2011-02-13T19:22:20 I believe just for the turn following its death 2011-02-13T19:22:49 ok 2011-02-13T19:27:05 flag: just the turn after, you can treat it as land if you don't want the information, you also don't see information for one of your dead ants out of range of live ants visibility etc. 2011-02-13T19:36:11 is my ant always 'a'? 2011-02-13T19:36:29 yes 2011-02-13T19:36:39 and the first enemy you always see is b for the rest of the game, etc. 2011-02-13T19:36:54 okay, thanks 2011-02-13T19:36:58 np 2011-02-13T19:37:15 i'm curious, why c over c++? 2011-02-13T19:37:37 no real reason, personally I just like coding in C 2011-02-13T19:37:51 as good a reason as any :) 2011-02-13T19:37:58 :) 2011-02-13T19:47:48 i love being able to do things like, cin >> state, state++, grid[location], bug << stuff, etc. 2011-02-13T19:48:55 you can do all those things in C too, except cin and cout which are easily replace by read, write, printf, etc. 2011-02-13T19:49:17 didn't know that 2011-02-13T19:49:19 the only thing I'm really missing is something like an std::vector, but it's not that big of a deal 2011-02-13T19:49:23 i couldn't live without stl either? 2011-02-13T19:49:33 i use vectors more than i should 2011-02-13T19:50:06 it's nice being able to create n-dimensional things initialised to 0 or whatever in 1 line though 2011-02-13T19:50:28 i simply like knowing what's going on behind the scenes 2011-02-13T19:50:53 i'm not knocking :) 2011-02-13T19:51:01 i only do that to java 2011-02-13T19:51:05 haha 2011-02-13T19:52:57 jmcarthur: i'm torn, i know the second explanation before for option 1 is simpler for beginners, but the first is nicer 2011-02-13T19:53:25 flag: on the specs page, which line of latex do you prefer explaining battle resolution option 1? 2011-02-13T19:56:56 i don't really have a preference 2011-02-13T19:56:59 I could go all out and define At then At+1 = {a in At | |enemies(a)| < min_{b in enemies(a)} |enemies(b)| } 2011-02-13T19:57:10 simpler is probably better 2011-02-13T19:57:10 :* 2011-02-13T19:57:14 antimatroid: use english 2011-02-13T19:57:23 pyro-: i did, it makes less sense 2011-02-13T19:57:29 if you can explain it in pure english then you'll scare the least number of people away 2011-02-13T19:57:39 A given ant a lives if it has less enemies in range than any of those enemies in range have 2011-02-13T19:58:15 it's a bit of a mouth ful 2011-02-13T19:58:17 antimatroid: its more interesting to specify when an ant doesn't live. i still dont understand your game but i assume ants live by default 2011-02-13T19:58:55 actually, you might be correct, it means saying at least as many instead of less thatn 2011-02-13T19:59:12 a given ant A dies if it has more enemies in range than each of its enemies? 2011-02-13T19:59:23 an ant dies when it has the same or more enemies in range than its enemies have in range 2011-02-13T19:59:49 or than each of its enemies has in range 2011-02-13T20:00:54 i'm just changing it 2011-02-13T20:00:59 antimatroid: this is a spec, not an implementation 2011-02-13T20:01:16 the second option becomes, there exists b in enemies(a) st enemies(a).size >= enemies(b).size 2011-02-13T20:01:31 simplicity is way more important than "elegance" 2011-02-13T20:01:46 jmcarthur: but but but i'm a maths student :P 2011-02-13T20:01:53 i like the exists version 2011-02-13T20:01:53 i strive for elegance 2011-02-13T20:01:58 i think it's elegant 2011-02-13T20:02:20 i would change one thing though 2011-02-13T20:02:30 I have no idea what that last second option description does ;) 2011-02-13T20:02:37 i'd say st enemies(b).size <= enemies(a).size 2011-02-13T20:02:49 since we just bound b 2011-02-13T20:03:02 Janzert: enemies(x) = set of enemies in range of ant x 2011-02-13T20:06:08 so.. an ant dies if none of the enemies in range have less enemies in range 2011-02-13T20:08:52 no, an ant dies if *any* of them do 2011-02-13T20:09:21 and that should be <=, not < 2011-02-13T20:09:30 http://mathbin.net/58765 2011-02-13T20:09:40 i think i got that roughly right 2011-02-13T20:09:47 my latex is a bit rusty 2011-02-13T20:10:53 i wrote is so people might understand it easier :P 2011-02-13T20:11:01 sure 2011-02-13T20:11:07 it's changed if people want to check 2011-02-13T20:11:34 link? 2011-02-13T20:11:53 https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-02-13T20:12:00 ctrl f battle option 1 2011-02-13T20:13:00 wow at this rate im going to find it easier to read the source than your tortured spec :D 2011-02-13T20:13:11 "A given ant a dies if it has at least as many enemies in range as at least one of those enemies in range have" <-- ouch 2011-02-13T20:13:13 that doesn't make sense? 2011-02-13T20:13:31 feel free to suggest your own :P 2011-02-13T20:13:34 forget about ant a 2011-02-13T20:13:55 the maths makes it clear 2011-02-13T20:14:02 at least until you want to restate it with your math notation 2011-02-13T20:14:16 the maths leave it completely unclear to me 2011-02-13T20:14:24 at least I can work out the english description 2011-02-13T20:14:51 i feel the opposite way 2011-02-13T20:14:58 i think the english is way more confusing than the math :P 2011-02-13T20:15:02 me too, i'll do two paragraphs 2011-02-13T20:15:07 hold on 2011-02-13T20:15:11 this is, IMO, the clearest explanation: http://mathbin.net/58765 2011-02-13T20:15:25 i understand that it may just seem overly dense to some, though 2011-02-13T20:16:24 An ant dies if it has the same or more enemies in range as any of its enemies has, is correct? 2011-02-13T20:17:01 that's kind of an ambiguous way to say it, but i think you have the idea at least 2011-02-13T20:17:37 "If an ant departs Central Station moving north at 35 miles per hour, and another ant departs Boston Harbour moving southwest at 40 miles per hour, will the ants die?" 2011-02-13T20:17:47 slightly ambiquous is fine if you're going to have definitive source and a dense math notation explaining it as well :) 2011-02-13T20:18:09 at least it gets people headed in the right track before decoding the other notation 2011-02-13T20:18:51 An ant alpha dies if and only if there exists some ant beta in the set of the enemies of alpha such that the number of enemies of beta is less than or equal to the number of enemies of alpha. o_O 2011-02-13T20:19:00 i love math notation. says so much in so little space :) 2011-02-13T20:19:50 yeah, i use it with english all the time, st and wrt especially 2011-02-13T20:19:55 or there exists 2011-02-13T20:23:11 try now? 2011-02-13T20:23:27 i prefer to keep a clear english definition too 2011-02-13T20:23:33 even if it's slightly more of a mouthful? 2011-02-13T20:23:47 i hate such imperative descriptions :\ 2011-02-13T20:23:51 i find them very confusing 2011-02-13T20:23:57 the math notation is nice and declarative 2011-02-13T20:24:52 yeah, the problem is maths notation is so loaded with with information that a lot of people don't have 2011-02-13T20:24:59 even worse is actual maths 2011-02-13T20:25:06 I'd say replace the "at least on of" with "any of" in the first descriptive sentence 2011-02-13T20:25:20 yeah, i'll take that 2011-02-13T20:26:34 anyway this will give a person reading it a general idea of what is going on and as we've seen to really understand it takes looking at a lot of actual examples 2011-02-13T20:26:55 which they'll get by watching games played 2011-02-13T20:27:50 yeah, i will do some gifs for those battle option parts at some point 2011-02-13T20:27:57 that way it can be made clear there and then 2011-02-13T20:28:33 I wouldn't worry about it too much, most people reading the spec are going to have already watch several games 2011-02-13T20:29:06 and i have a feeling they will run to the specs (or be pointed there after running to the forums or irc) going wtf 2011-02-13T20:29:21 hehe 2011-02-13T20:29:42 option 2 is even less intuitive though, so it's not like that changes 2011-02-13T20:30:08 could be worse 2011-02-13T20:30:43 we could have the "enemies" function be a proposition about two ants, giving true when they are enemies and false when they are friendlies 2011-02-13T20:30:53 ;) 2011-02-13T20:31:21 http://mathbin.net/58765 2011-02-13T20:31:29 :\ 2011-02-13T20:31:37 relation? :P 2011-02-13T20:31:44 ha 2011-02-13T20:31:46 yes 2011-02-13T20:31:57 that was terrible of me 2011-02-13T20:32:56 * jmcarthur clutters this up a bit more out of spite 2011-02-13T20:33:03 i'm doing a physics unit this semester without having done physics in years, that's going to be, interesting to say the least 2011-02-13T20:33:18 although it's on lie groups so hopefully it's more maths than anything 2011-02-13T20:48:14 *** delt0r___ has joined #aichallenge 2011-02-13T20:50:11 *** delt0r_ has quit IRC (Ping timeout: 260 seconds) 2011-02-13T20:56:37 aichallenge: Jeremy Roman zeta * r9212cb3 / (7 files in 2 dirs): sandboxed compilation, runner now clones to a separate dir instead of running in submissions/ -- more error handling will be added later - http://bit.ly/e3XFdn 2011-02-13T20:56:41 *** Mathnerd314 has joined #aichallenge 2011-02-13T20:58:00 yay 2011-02-13T21:03:08 antimatroid: I would do diagrams for battle resolution. With simpler english explainations 2011-02-13T21:07:24 McLeopold: how would you simplify the english explanation any further? 2011-02-13T21:07:38 i'm looking for the simplest clear explanation 2011-02-13T21:07:56 for option 1, the one we don't use? 2011-02-13T21:08:11 Explain the concept of an occupied ant. 2011-02-13T21:08:48 Then explain an ant can be killed by a less occupied ant. 2011-02-13T21:09:12 Conceptually, the should be able to see that ants on the edge of a group will probably get a kill. 2011-02-13T21:09:15 hehe, now we're all at odds, i've found that the most confusing explanation yet :P 2011-02-13T21:09:21 And ants on the inside won't. 2011-02-13T21:09:44 ants in the middle might get a kill, they're just more likely to also be killed 2011-02-13T21:09:44 Keep the math, but save that for later. Not everyone understands it. 2011-02-13T21:10:03 They are more likely to not kill someone else. 2011-02-13T21:10:16 I would focus on who can kill who, not who will die 2011-02-13T21:10:32 The algo can be different from the explaination. 2011-02-13T21:12:07 if i say which ant can kill another ant, it might confuse people later with who gets points with kill scoring? 2011-02-13T21:12:30 otherwise i see how it might be simpler 2011-02-13T21:13:39 We can give the full math as well. The "occupied" explaination is just to get them started. 2011-02-13T21:13:58 It makes the a.b.a case simple to reason about 2011-02-13T21:14:14 i don't find the occupied idea easier to understand 2011-02-13T21:15:10 janzert, jmcarthur: opinions? 2011-02-13T21:16:57 the short description above, seems like occupied is more confusing, but it might make more sense once expanded. I think what you have now is "good enough" for the time being 2011-02-13T21:17:31 as people start stumbling over it you can worry about trying to make it easier to understand 2011-02-13T21:18:09 also people who haven't had there head down it for quite a while will probably see easier ways to explain it 2011-02-13T21:18:17 *** amriedle has quit IRC (Quit: Lost terminal) 2011-02-13T21:25:42 amstan_: looks like a spammer made it through to the forums, I'm not sure with the new system if we are suppose to just ban them like we used to or there is something else to add them to the spam list 2011-02-13T21:26:02 janzert: yeah, new system doesn't work either 2011-02-13T21:26:14 janzert: i have another forum, and there's a ton of false positives 2011-02-13T21:26:20 :( 2011-02-13T21:29:24 *** chris__0076 has joined #aichallenge 2011-02-13T21:32:22 *** Chris_0076 has quit IRC (Ping timeout: 276 seconds) 2011-02-13T21:38:46 i think the "occupied" variation has the most potential, personally 2011-02-13T21:39:01 it's the intuition i had when we first came up with the rule 2011-02-13T21:39:12 what does occupied even mean? 2011-02-13T21:39:45 how "busy" an ant is fighting (potentially multiple) other ants 2011-02-13T21:40:00 the more busy you are, the more likely you are to die 2011-02-13T21:40:04 so it's the number of enemies within the battle radius? 2011-02-13T21:40:08 depending onhow busy your opponents are 2011-02-13T21:40:11 right 2011-02-13T21:40:16 it's just a name for that idea 2011-02-13T21:40:46 it seems like it's just complicating it to me 2011-02-13T21:41:03 you are less effective at defending when you're fighting more enemies, but they are less effective at attacking when they are fighting more enemies 2011-02-13T21:41:44 that might be a good explanation of the intuition, i think... that last thing i said 2011-02-13T21:42:12 it doesn't explain *how* it works at all, but it could put you in the right frame of mind 2011-02-13T21:43:22 *** pyro-_ has joined #aichallenge 2011-02-13T21:44:42 *** pyro-_ has quit IRC (Changing host) 2011-02-13T21:44:42 *** pyro-_ has joined #aichallenge 2011-02-13T21:45:00 *** pyro- has quit IRC (Disconnected by services) 2011-02-13T21:45:08 *** pyro-_ is now known as pyro- 2011-02-13T21:45:30 *** PurplePanda has joined #aichallenge 2011-02-13T21:46:24 *** PurplePanda has quit IRC (Client Quit) 2011-02-13T21:57:03 contestbot: later tell nullkuhl any news on a website design? 2011-02-13T21:57:03 amstan_: Yep. 2011-02-13T22:00:04 *** Blkt has quit IRC (Quit: ERROR: do not makunbound t please!) 2011-02-13T22:37:52 progress? the topic is old 2011-02-13T22:59:23 getting there slowly 2011-02-13T23:16:02 yay, my C bot works 2011-02-13T23:16:30 now I get to wait until the spec changes and rewrite it 2011-02-13T23:18:20 contestbot: topic delete 3 2011-02-13T23:18:20 amstan_: (topic []) -- Returns the topic for . is only necessary if the message isn't sent in the channel itself. 2011-02-13T23:18:29 ugh 2011-02-13T23:18:38 contestbot: topic remove 3 2011-02-13T23:18:38 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Roadmap for the next two contests: http://www.ai-contest.com/forums/viewtopic.php?f=20&t=1238" 2011-02-13T23:18:46 contestbot: topic remove 3 2011-02-13T23:18:46 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/" 2011-02-13T23:19:05 flag: :) 2011-02-13T23:19:13 contestbot: topic add Code Repo: http://github.com/aichallenge/aichallenge 2011-02-13T23:19:13 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Code Repo: http://github.com/aichallenge/aichallenge" 2011-02-13T23:19:17 i've changed the input for mine twice now since first implementing 2011-02-13T23:20:04 contestbot: topic add Roadmap: goo.gl/qUcRN 2011-02-13T23:20:04 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Code Repo: http://github.com/aichallenge/aichallenge || Roadmap: goo.gl/qUcRN" 2011-02-13T23:20:26 contestbot: topic remove 4; topic add Roadmap: http://goo.gl/qUcRN 2011-02-13T23:20:26 amstan_: Error: '4;' is not a valid topic number. 2011-02-13T23:20:36 contestbot: topic remove 4 2011-02-13T23:20:36 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Code Repo: http://github.com/aichallenge/aichallenge" 2011-02-13T23:20:45 contestbot: topic add Roadmap: http://goo.gl/qUcRN 2011-02-13T23:20:45 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Code Repo: http://github.com/aichallenge/aichallenge || Roadmap: http://goo.gl/qUcRN" 2011-02-13T23:20:47 there 2011-02-13T23:20:50 sorry about the spam 2011-02-13T23:21:29 hardly spam :P 2011-02-13T23:21:40 cleaning up while creating temporary mess 2011-02-13T23:21:48 bacn? 2011-02-13T23:21:49 lol 2011-02-13T23:21:58 not that good