2011-11-30T00:03:48 *** bmh has joined #aichallenge 2011-11-30T00:04:01 I regret that I have but one server to give for the challenge. ;) 2011-11-30T00:06:21 odd. The webserver melted down. 2011-11-30T00:08:53 *** delt0r_ has joined #aichallenge 2011-11-30T00:10:54 *** bmh has quit IRC (Ping timeout: 265 seconds) 2011-11-30T00:14:11 *** chris__0076 is now known as chris_0076 2011-11-30T00:21:27 *** treeform_ has quit IRC (Remote host closed the connection) 2011-11-30T00:23:12 right now, looks like ChrisH is headed to the top of the rankings 2011-11-30T00:23:43 sweet 2011-11-30T00:23:55 janzert: what are you up to these days? you're very quiet :P 2011-11-30T00:24:33 wow, over 7000 submissions 2011-11-30T00:24:56 ? just fixing the breaks and keeping it all running along :) 2011-11-30T00:25:42 i meant other than the ai contest :P you used to be involved in strategy conversations more 2011-11-30T00:25:54 or maybe i'm just involved less (been busier than previously) 2011-11-30T00:27:16 ahh, yeah I haven't been talking strategy much 2011-11-30T00:27:34 the guts of the contest have been keeping me occupied enough 2011-11-30T00:30:43 Oh, heh, ChrisH kept an ant on top of his hill 2011-11-30T00:31:59 I'm only going to be able to write a post-mortem about map gen :( 2011-11-30T00:32:27 Looks like he has time issues 2011-11-30T00:33:12 McLeopold: :) coming slowly I take it? 2011-11-30T00:34:32 janzert: I'm cleaning up my crappy cell maze code so I can do the inverse 2011-11-30T00:34:37 which I will call "caverns" 2011-11-30T00:35:00 cool 2011-11-30T00:35:17 maybe tonight I'll get some maps on paste... 2011-11-30T00:35:21 McLeopold: awesome 2011-11-30T00:35:23 I love the cell mazes 2011-11-30T00:35:34 the regular mazes lead to stalemates too easily 2011-11-30T00:35:45 is there really a big difference? 2011-11-30T00:36:05 yeah, because the cell mazes usually have a wider end to the chokepoints 2011-11-30T00:36:23 the regular boxy mazes end up having stalemates in 4x4 pathways etc. 2011-11-30T00:36:37 so, the choke points are longer 2011-11-30T00:37:26 yeah, and usually you can put more ants along one side than the other because of the curves 2011-11-30T00:38:00 I think that was the intention of the decayed walls in antimatroid's design 2011-11-30T00:38:07 the fact that they're really long means you can actually trade ants with someone without the ratio being really uneven 2011-11-30T00:38:35 like the 1x1 chokepoints in some of the random walks :P 2011-11-30T00:38:51 well 2011-11-30T00:38:58 the 1 wide or 2 wide tunnels 2011-11-30T00:39:00 yeah my maze maps suck compared to the newer ones 2011-11-30T00:39:37 what type of symmetry do people like most? 2011-11-30T00:39:48 the stats don't seem to be about even for stalemates between the two map types 2011-11-30T00:39:56 antimatroid: I think you have more symmetry types than me 2011-11-30T00:39:56 the translational/tessellation ones or the rotational ones? 2011-11-30T00:40:02 I didn't do any diagonals, yet... 2011-11-30T00:40:21 do seem to be about even rather 2011-11-30T00:40:39 janzert: how about just for thestinger? :) 2011-11-30T00:40:40 McLeopold: for "rigid rotations" of the board, there's 5 types of 2 player, 3 types of 4 player and 1 type of 8 player 2011-11-30T00:40:59 rigid? 2011-11-30T00:41:13 pick the grid up, flip/rotate it and put it back down 2011-11-30T00:41:28 that's a "rigid rotation" in this case :P 2011-11-30T00:42:03 rotate 90 or 270? 2011-11-30T00:42:21 depends on the situation 2011-11-30T00:42:38 diagonal is different 2011-11-30T00:42:52 you have vertical/horizontal/diaonal "flips", and n.90 degree rotations 2011-11-30T00:43:11 diagonal only works with squares 2011-11-30T00:43:23 yeah 2011-11-30T00:43:38 seems like it might be a give away in the map size :) 2011-11-30T00:44:32 a valid symmetry is basically just one of those rigid rotations such that after n repeated rotations the grid ends up being back to the same place 2011-11-30T00:44:51 that's why i call all of those rotational symmetry 2011-11-30T00:45:48 that's not quite worded right, something meeting that condition is a valid symmetry but a valid symmetry doesn't necessarily need to meet that 2011-11-30T00:46:34 I wondering how I should pick a random symmetry, what the "correct" probabilities should be for each type 2011-11-30T00:46:40 of course then you take the rotations these form and they would make a group under composition :P but now i'm just being silly 2011-11-30T00:46:57 McLeopold: don't ask me, if you look in my map gen you'll see something awful :P 2011-11-30T00:47:00 How about a sierpinski rectangle map 2011-11-30T00:47:39 I think all my symmetries ensure ant orientations are all vertical or all horizontal 2011-11-30T00:47:56 If I had diagonals, I could fix that, but I need to ensure square maps 2011-11-30T00:48:06 yeah 2011-11-30T00:48:28 i wonder if people doing symmetry detection are doing it for all possible symmetries 2011-11-30T00:49:58 antimatroid: have you looked at my symmetry code? 2011-11-30T00:50:10 nope 2011-11-30T00:50:26 *** AntDroid has joined #aichallenge 2011-11-30T00:50:34 ...or other fractal maps 2011-11-30T00:50:39 basically, you can pick from 4 types for each direction (with some limitations) mirror, rotate180, copy, shear 2011-11-30T00:51:01 you can't shear in 2 directions (I found out the hard way) 2011-11-30T00:51:15 you can shear after a rotate or mirror either 2011-11-30T00:51:20 *** cyphase has quit IRC (Ping timeout: 255 seconds) 2011-11-30T00:51:45 rotate and mirror only work with a grid dimension divible by 2 2011-11-30T00:52:00 mirror? 2011-11-30T00:52:01 why? 2011-11-30T00:52:09 so, I basically tileing the map 2011-11-30T00:52:27 uh... 2011-11-30T00:52:31 oh, i'm thinking of mirror as like a horizontal flip 2011-11-30T00:52:35 it is 2011-11-30T00:52:47 horizontal or verticle 2011-11-30T00:52:49 *** Palmik has joined #aichallenge 2011-11-30T00:52:50 why can't you to that width width 2.n+1? 2011-11-30T00:52:55 with* 2011-11-30T00:53:22 just means some squares stay in the same place if you will 2011-11-30T00:54:02 Because mirror doubles the size 2011-11-30T00:54:10 what is n? 2011-11-30T00:54:12 players? 2011-11-30T00:54:47 Mh 2011-11-30T00:55:17 *** bmh has joined #aichallenge 2011-11-30T00:55:33 antimatroid: can you give me a concrete example? 2011-11-30T00:55:39 Oh, you could of course do the sierpinski triangle too with symmetry 2011-11-30T00:56:03 a.b, mirrored is b.a 2011-11-30T00:56:03 cuademon: I think you'd just have one map then? No variations? 2011-11-30T00:56:13 it has width 3 2011-11-30T00:56:14 odd 2011-11-30T00:56:18 Well yea, one-off's 2011-11-30T00:56:39 oh, I see, but I generate tiles of NxM and a grid size of XxY 2011-11-30T00:56:49 what? 2011-11-30T00:57:07 you do know m comes before n right? :P 2011-11-30T00:57:15 so, my tile size is 5x5 and with 2 players a choose a grid size of 1x2, so the map size is 5x10 2011-11-30T00:57:21 whatever :P 2011-11-30T00:58:06 so the grid dimension needs to be even 2011-11-30T00:58:18 why? 2011-11-30T00:58:26 oh 2011-11-30T00:58:35 no, still don't see why 2011-11-30T00:58:52 try doing a mirror with 1x3 grid 2011-11-30T00:59:02 2 will be facing 2 the right, 1 to the left 2011-11-30T00:59:11 >><>><>>< 2011-11-30T00:59:52 ah okay 2011-11-30T01:00:18 so, I could mirror a 5x5 tile, remove a column and get a 5x9, just for kicks 2011-11-30T01:00:53 or add a special column for 5x11 2011-11-30T01:02:18 I could probably do that with rotate180 and copy as well... 2011-11-30T01:02:30 and shear... 2011-11-30T01:06:28 *** treeform has joined #aichallenge 2011-11-30T01:15:28 *** rajanaresh has joined #aichallenge 2011-11-30T01:21:28 *** AntDroid has quit IRC (Ping timeout: 265 seconds) 2011-11-30T01:23:57 *** ltriant has quit IRC (Quit: Computer has gone to sleep) 2011-11-30T01:24:08 arr more lackluster performance on the official server 2011-11-30T01:24:15 5 and 6 player maps, my bane apparently 2011-11-30T01:25:53 *** Garf has joined #aichallenge 2011-11-30T01:28:31 *** amstan has quit IRC (Ping timeout: 248 seconds) 2011-11-30T01:30:50 http://ants.fluxid.pl/player/strcat_foodfight :) 2011-11-30T01:32:50 nice, I broke movement again 2011-11-30T01:34:50 thestinger: *where*? I see you winning 2011-11-30T01:35:06 when my ants move forwards to attack, they leave a gap 2011-11-30T01:35:10 I need tips for low-food maps 2011-11-30T01:35:12 I just need to rerun my movement code after combat 2011-11-30T01:35:22 BenJackson: collect the most food? 2011-11-30T01:36:02 I do ok at that 2011-11-30T01:36:04 but I lose 2011-11-30T01:36:26 BenJackson: do you try to control territory? 2011-11-30T01:36:31 I've been thinking about implementing that 2011-11-30T01:36:38 BenJackson: abandon your blasphemous ways and try rolling some Haskell? 2011-11-30T01:36:46 well I "cover" it more than I "control" it 2011-11-30T01:36:52 like having a boundary which I expand - inside the boundary ants are spread evenly to gather food, and fighters will be around the edges 2011-11-30T01:37:06 I like those kind of concepts 2011-11-30T01:37:11 atm I just fill up space with ants looking for food, but I don't have packs around the edges to hunt down enemies 2011-11-30T01:37:13 but they're meaningless when you have 20 ants at turn 100 2011-11-30T01:37:31 you can't turtle, but someone might go all-in on you 2011-11-30T01:37:40 well, I send a certain number of foragers out alone 2011-11-30T01:37:47 but my remaining ants explore in packs 2011-11-30T01:37:53 I don't distinguish ants like that 2011-11-30T01:37:58 I don't either 2011-11-30T01:38:03 the ants are all equal at the start of a turn 2011-11-30T01:38:11 but I'll only send a certain number to "forage" 2011-11-30T01:38:24 how do you decide how many ants to sent to enemies etc? 2011-11-30T01:38:30 or do you just send them to the closest? 2011-11-30T01:38:39 send* 2011-11-30T01:38:41 I don't really decide directly 2011-11-30T01:38:42 I don't really decide on specific numbers 2011-11-30T01:38:48 I optimize for various things and it just happens 2011-11-30T01:38:48 it's emergent based on where the targets are 2011-11-30T01:38:52 hi51 2011-11-30T01:38:54 hi5! rather 2011-11-30T01:39:09 like I don't set a limit to the number of foragers 2011-11-30T01:39:24 but it's basically impossible for all my ants to do foraging 2011-11-30T01:39:31 i collect food after battling ants, invading enemy hills and protecting my own 2011-11-30T01:39:35 I think I'm going to expand my unit testing 2011-11-30T01:39:41 to test my bot against cheating versions of my bot 2011-11-30T01:39:50 then i explore, then i'm not really sure what to do with the rest 2011-11-30T01:39:57 ie. how many to sent towards enemies etc. 2011-11-30T01:40:31 ie. can just send them to the nearest "target" but that seems unintelligent :P 2011-11-30T01:42:22 I think what I messed up in this game is that a lone ant attacking my hill is normally killed by the defenders 2011-11-30T01:42:28 but I had too few ants to have any defenders 2011-11-30T01:42:36 and apparently didn't send someone over to investigate 2011-11-30T01:44:31 my bot is actually really good now that I finally have half-working combat 2011-11-30T01:44:57 my bot does well on fluxid and tcpants but it's not doing that well on the challenge site 2011-11-30T01:45:09 I certainly hope I don't run out of time for implementing combat. That would be disappointing 2011-11-30T01:45:11 it's a huge improvement over just dealing with unmoving enemies, which was a huge improvement over not dealing with enemies 2011-11-30T01:45:32 bmh: it took me a week of pondering and tinkering to get anything going 2011-11-30T01:45:35 and another week to refine it 2011-11-30T01:45:37 bmh: it's really easy if you just pretend enemies don't move, and it can't really make your bot worse 2011-11-30T01:45:37 so get going :) 2011-11-30T01:46:01 I'm glad I started with the easy way 2011-11-30T01:46:29 I'm just doing incremental improvements, rather than trying to implement something perfectly 2011-11-30T01:46:51 BenJackson: after burning diffusionBot, I'm trying to make something that actually works. 2011-11-30T01:47:36 diffusion still provides general goal information that's useful to have around 2011-11-30T01:47:59 it's too slow in Haskell. I tried to make it workable. 2011-11-30T01:48:11 I just use distance maps with lots of hacks 2011-11-30T01:48:28 basically 2011-11-30T01:48:29 like treating nearby food as a cluster 2011-11-30T01:49:39 I'm adopting the BFS approach. Each ant labels its food, bots without food go for unseen squares, and so on 2011-11-30T01:49:59 the only good news in this game is that although I let my hill get capped at about turn 200 with only 24 ants I still took an enemy hill later 2011-11-30T01:51:28 bmh: yeah, I pretty much do that and it works very well 2011-11-30T01:51:42 BFS and multi-source BFS to make distance maps for various purposes 2011-11-30T01:51:43 has anyone tried hill triangulation yet? 2011-11-30T01:51:54 and the distances are used to decision making and picking targets 2011-11-30T01:52:03 then for pathfinding to the targets 2011-11-30T01:52:20 and spreading is just hacked into the BFS for some things 2011-11-30T01:52:51 http://sprunge.us/YZVP my whole bot is seriously based on that 2011-11-30T01:53:10 and it's 11 lines of code 2011-11-30T01:54:40 I looked at the collaborative diffusion stuff, but it seems like it just overcomplicates everything 2011-11-30T01:55:15 thestinger: https://gist.github.com/1408291 there's my 'who owns what?' code 2011-11-30T01:56:01 so the closest ant to something owns it? 2011-11-30T01:56:16 yes 2011-11-30T01:56:25 yeah, that's what I do for food and foraging 2011-11-30T01:56:47 leads to a nice even spread of ants, and as I get more ants the spread gets denser 2011-11-30T01:56:48 ohh I know why this b0rke 2011-11-30T02:01:51 *** AntDroid has joined #aichallenge 2011-11-30T02:02:39 *** JorgeB has quit IRC (Ping timeout: 248 seconds) 2011-11-30T02:04:18 *** epicmonkey has joined #aichallenge 2011-11-30T02:04:58 I guess I'll put down _jedimindtricks 2011-11-30T02:06:21 jeez, I bumped something while I was in my editor 2011-11-30T02:06:27 I think I wordwrapped a bunch of python 2011-11-30T02:07:44 set undofile undodir=~/.vim/undo 2011-11-30T02:07:51 that has saved me from so many stupid editor mistakes 2011-11-30T02:08:03 persistent undo history, with undo trees (yay vim 7.3) 2011-11-30T02:08:07 hah, a new test 2011-11-30T02:08:16 all enemy ants get to know where my hill is 2011-11-30T02:08:21 I could almost live without git 2011-11-30T02:08:31 I basically have the entire editing history of my bot, and all the branches :P 2011-11-30T02:08:59 I think if I edit the file without vim I would lose it all tho 2011-11-30T02:09:21 honestly I don't like vim that much 2011-11-30T02:09:25 I'm a huge fan of vi 2011-11-30T02:09:39 vim takes a lot of configuration before it's sane 2011-11-30T02:09:45 vim to me is like "color ls" 2011-11-30T02:09:51 or maybe I should say "color ls by default" 2011-11-30T02:09:56 that shit is not unix, man 2011-11-30T02:09:58 you should see my shell :P 2011-11-30T02:10:16 if you can't do it on a z29 it doesn't belong on my terminal :) 2011-11-30T02:10:30 http://ompldr.org/vYmlyNQ process name completion 2011-11-30T02:10:30 I like mutt (the mailreader) but I wish it didn't want to control the colors 2011-11-30T02:10:41 I use it monochrome anyway, but it insists on setting the background and fg colors 2011-11-30T02:11:03 http://ompldr.org/vYmlyNg pid completion :) 2011-11-30T02:11:48 http://ompldr.org/vYmlyNw documentation for commands is nice, I'm too lazy to use man and too stupid to remember all the git switches 2011-11-30T02:11:59 http://ompldr.org/iYmlyOA 2011-11-30T02:12:02 there's my new unit test 2011-11-30T02:12:03 and ofc, completion for files uses LS_COLORS 2011-11-30T02:12:15 http://ompldr.org/vYmlyOA 2011-11-30T02:12:22 nice 2011-11-30T02:12:50 that last clause is '.. or it's player 0's hill and this isn't player 0' 2011-11-30T02:12:59 you really don't like vim? xD 2011-11-30T02:13:08 but vi doesn't have nice text-object stuff :( 2011-11-30T02:13:20 I've never gotten any of the really advanced vim stuff to work anyway 2011-11-30T02:13:22 ciw, caw, ci{, ci(, ci" 2011-11-30T02:13:24 like cscope integration 2011-11-30T02:13:30 what is ciw? 2011-11-30T02:13:35 change inner word 2011-11-30T02:13:42 so you can cw for the whole word without being at the start 2011-11-30T02:13:47 huh 2011-11-30T02:13:50 ci" is the same thing for something like "some horrible string" 2011-11-30T02:13:57 ci( ci{ are the same idea 2011-11-30T02:14:11 I might use those 2011-11-30T02:14:12 caw is "change a word", it just gets the space at the end too 2011-11-30T02:14:27 how's that different from cW ? 2011-11-30T02:14:37 cause you can be in the middle of the word, like ciw 2011-11-30T02:14:41 ah 2011-11-30T02:15:58 and = is nice to autoindent stuff 2011-11-30T02:15:59 *** bhasker has joined #aichallenge 2011-11-30T02:15:59 *** bhasker has left #aichallenge 2011-11-30T02:16:03 lots of nice vim stuff I use all the time :P 2011-11-30T02:16:03 *** bhasker has joined #aichallenge 2011-11-30T02:16:18 before vim I used nvi mostly 2011-11-30T02:16:27 it's just that vim is installed everywhere now so I've given in 2011-11-30T02:16:29 sort of like using bash 2011-11-30T02:16:34 I prefer zsh but bash is everywhere 2011-11-30T02:16:39 yeah 2011-11-30T02:17:00 readline is used everywhere too (bash, python, ruby, etc...) 2011-11-30T02:17:09 so I had to figure out readline keybinds 2011-11-30T02:17:10 the thing that made me sure the vim was "wrong" is that it does multi-undo differently than nvi 2011-11-30T02:17:17 you can change the setting 2011-11-30T02:17:23 and as a long time vi (att vi) user when I wanted multi-undo in nvi I just.. did it 2011-11-30T02:17:25 you can make u incremental or just go back and forth between two things 2011-11-30T02:17:26 I didn't even know how 2011-11-30T02:17:27 but it did it right 2011-11-30T02:17:30 vim does not 2011-11-30T02:17:38 vim has awesome undo/redo :P 2011-11-30T02:17:40 it makes trees 2011-11-30T02:17:42 I still couldn't tell you what vim does without trying it 2011-11-30T02:17:52 u just does 1 incremental undo 2011-11-30T02:17:57 C-R does 1 incremental redo 2011-11-30T02:18:01 in the current branch 2011-11-30T02:18:24 in nvi u undoes, and u undoes the undo (just like old skool) but u . . . undose multiple 2011-11-30T02:18:45 you can 'set compatible' in vim and it works pretty much like vi 2011-11-30T02:18:56 (so I thought I'd have to write an extra suicidal bot to ensure early attacks for this setup, but one of my old bots happily does it already) 2011-11-30T02:19:17 clang_complete is also something I couldn't live without now 2011-11-30T02:19:24 oh yeah the first thing I had to learn about vim was "syn off" 2011-11-30T02:19:26 *** replore has quit IRC (Remote host closed the connection) 2011-11-30T02:19:29 having to refer to docs is horrible :P 2011-11-30T02:19:44 based on what people do with ls --color and default vim you'd think everyone uses only one terminal background color 2011-11-30T02:19:50 I color code terminals with background 2011-11-30T02:19:59 I use zenburn everything 2011-11-30T02:20:02 so typically with syn on I can't read one class of things (whatever matches the background) 2011-11-30T02:20:10 not really because I like it, but because it's good enough and I like the consistency 2011-11-30T02:20:18 I should try clang_complete 2011-11-30T02:20:22 the cscope stuff never worked well 2011-11-30T02:21:17 oh I should unbind whatever key it is that puts you in "record macro" mode because I get there a lot by accident 2011-11-30T02:21:30 http://ompldr.org/vYmlyYw clang complete does this 2011-11-30T02:21:37 BenJackson: q, just hit q again to get out :P 2011-11-30T02:21:46 well 2011-11-30T02:21:48 esc 2011-11-30T02:21:51 ah, yeah, q 2011-11-30T02:21:57 macros are nice tho 2011-11-30T02:22:02 qa 2011-11-30T02:22:04 do something 2011-11-30T02:22:07 @a to replay it 2011-11-30T02:22:08 thestinger: No! 2011-11-30T02:22:14 contestbot: nou 2011-11-30T02:22:15 thestinger: User error, it's not my fault. 2011-11-30T02:22:21 @help 2011-11-30T02:22:21 BenJackson: (help [] []) -- This command gives a useful description of what does. is only necessary if the command is in more than one plugin. 2011-11-30T02:22:33 that was useless 2011-11-30T02:22:38 @list 2011-11-30T02:22:38 thestinger: AIChallenge, Admin, Alias, Anonymous, BadWords, Channel, ChannelLogger, ChannelStats, Config, Ctcp, Dict, Dunno, Factoids, Filter, Format, Games, Google, Herald, Internet, Later, Limiter, Math, Misc, Network, News, Note, Owner, Plugin, Quote, QuoteGrabs, RSS, Reply, Scheduler, Seen, Services, ShrinkUrl, Status, String, Success, Time, Todo, Topic, URL, Unix, User, Utilities, and Web 2011-11-30T02:22:42 @list Web 2011-11-30T02:22:42 thestinger: doctype, fetch, headers, netcraft, size, title, urlquote, and urlunquote 2011-11-30T02:22:44 @help doctype 2011-11-30T02:22:44 thestinger: (doctype ) -- Returns the DOCTYPE string of . Only HTTP urls are valid, of course. 2011-11-30T02:22:48 that's how you get help :P 2011-11-30T02:23:10 @list reply 2011-11-30T02:23:10 BenJackson: action, notice, private, replies, and reply 2011-11-30T02:23:13 there's basically nothing useful in there 2011-11-30T02:23:18 I mean all of supybot 2011-11-30T02:23:20 just silly stuff 2011-11-30T02:23:30 how do you leave a message for someone? 2011-11-30T02:23:37 I think @later 2011-11-30T02:23:39 @help later 2011-11-30T02:23:39 thestinger: Error: There is no command "later". 2011-11-30T02:23:47 @later tell BenJackson how to send a message 2011-11-30T02:23:47 antimatroid: I come to serve. 2011-11-30T02:23:55 heh 2011-11-30T02:23:59 *** rajanaresh has quit IRC (Ping timeout: 248 seconds) 2011-11-30T02:24:17 @apropos later 2011-11-30T02:24:17 thestinger: No appropriate commands were found. 2011-11-30T02:24:23 @apropos tell 2011-11-30T02:24:23 thestinger: Later tell and Misc tell 2011-11-30T02:24:28 @list Later 2011-11-30T02:24:28 thestinger: notes, remove, and tell 2011-11-30T02:24:33 @help tell 2011-11-30T02:24:33 thestinger: (tell ) -- Tells the whatever is. Use nested commands to your benefit here. 2011-11-30T02:24:49 @help misc tell 2011-11-30T02:24:49 thestinger: (misc tell ) -- Tells the whatever is. Use nested commands to your benefit here. 2011-11-30T02:24:56 @help later tell 2011-11-30T02:24:56 thestinger: (later tell ) -- Tells the next time is in seen. can contain wildcard characters, and the first matching nick will be given the note. 2011-11-30T02:25:10 oh, I guess it's an alias for @later tell 2011-11-30T02:25:31 @help notes 2011-11-30T02:25:31 thestinger: (notes []) -- If is given, replies with what notes are waiting on , otherwise, replies with the nicks that have notes waiting for them. 2011-11-30T02:25:35 @notes BenJackson 2011-11-30T02:25:35 thestinger: Error: I have no notes for that nick. 2011-11-30T02:25:55 @later tell thestinger_ something 2011-11-30T02:25:55 thestinger: Yep. 2011-11-30T02:26:00 @later tell * fyi you have the first nic 2011-11-30T02:26:00 antimatroid: Error: That is an invalid IRC nick. Please check your input. 2011-11-30T02:26:00 @notes thestinger_ 2011-11-30T02:26:01 thestinger: Sent just now: something 2011-11-30T02:26:04 ah 2011-11-30T02:26:19 *** thestinger is now known as thestinger_ 2011-11-30T02:26:26 *** thestinger_ is now known as thestinger 2011-11-30T02:26:55 *** cyphase has joined #aichallenge 2011-11-30T02:27:22 clang_complete basically works perfectly, but clang 2.9 doesn't have all the C++11 stuff I'm using 2011-11-30T02:27:33 I think it just pipes the file into clang, because it doesn't even need to be saved to disk 2011-11-30T02:28:50 antimatroid! 2011-11-30T02:29:37 bhasker: ! 2011-11-30T02:29:47 how goes it 2011-11-30T02:29:57 not too bad 2011-11-30T02:29:59 what about you? 2011-11-30T02:30:08 how's akshara? (hope i got that right :P) 2011-11-30T02:30:12 going good, working out combat issues in my bot 2011-11-30T02:30:15 akshara is doing great! 2011-11-30T02:30:21 7 months old now! 2011-11-30T02:30:25 almost crawling 2011-11-30T02:30:28 crazy, doesn't seem like that long 2011-11-30T02:30:33 yup time flies! 2011-11-30T02:30:37 she keeps us busy 2011-11-30T02:30:57 how's the bot going? 2011-11-30T02:31:04 horrible lol 2011-11-30T02:31:05 i am trying to find time for mine when i can 2011-11-30T02:31:11 can't even break the top 100 on tcp 2011-11-30T02:31:20 i wasted days trying to generlise path finding then decided that was a terrible idea 2011-11-30T02:31:32 a1k0n seems to be doing well again with ants 2011-11-30T02:31:35 http://ants.fluxid.pl/search?name=malazanAnt 2011-11-30T02:31:36 that's ok, I'm in the top 10 on tcp and can't break the top 100 on aichallenge 2011-11-30T02:31:37 he did not so well with planet wars :P 2011-11-30T02:31:55 all 3 versions are the same 2011-11-30T02:31:59 326, my favourite number! 2011-11-30T02:32:01 i just started them up at different times 2011-11-30T02:32:04 BenJackson: does your bot suck against bots without combat now or something like that? 2011-11-30T02:32:16 i'm not testing on tcp/aichallenge 2011-11-30T02:32:18 it distracts me 2011-11-30T02:32:22 I do think there are issues like that 2011-11-30T02:32:23 Ben compared to planetwars this time its horrible, i managed to finish 54th in the 2011-11-30T02:32:25 main contest 2011-11-30T02:32:31 this time its horrible:( 2011-11-30T02:32:44 hey I was 19th this time before I resubmitted :) 2011-11-30T02:32:44 *** roflmao has quit IRC (Quit: Leaving.) 2011-11-30T02:32:55 especially those cell maps seem to screw my bot over 2011-11-30T02:32:56 bigtime 2011-11-30T02:33:05 people seem to hate cell maps 2011-11-30T02:33:08 i think they look awesome 2011-11-30T02:33:11 haven't played on any yet 2011-11-30T02:33:15 cell maps are amazing 2011-11-30T02:33:23 cell maps have too many long passages 2011-11-30T02:33:27 and dead ends 2011-11-30T02:33:31 that's fun :) 2011-11-30T02:33:32 so bots take forever to find each other 2011-11-30T02:33:38 ^^ what thestinger said 2011-11-30T02:33:47 and my bot seems to do horribly with exploring cell maps 2011-11-30T02:33:50 seems to get stuck 2011-11-30T02:33:59 bhasker: how do you pathfind? 2011-11-30T02:34:04 path find all the things 2011-11-30T02:34:13 did the multisouce thing for everything now 2011-11-30T02:34:15 pretty much 2011-11-30T02:34:16 i'm only using a* while collecting food now 2011-11-30T02:34:21 just doing a single BFS 2011-11-30T02:34:25 ah 2011-11-30T02:34:30 a multi-source BFS with all the targets? 2011-11-30T02:34:31 what do you guys mean by that? 2011-11-30T02:34:32 with ants/food and edge squares 2011-11-30T02:34:39 as the source 2011-11-30T02:34:45 antimatroid: I posted pics of that :) 2011-11-30T02:34:46 and move ant to closest point 2011-11-30T02:34:56 antimatroid: http://sprunge.us/OiPF 2011-11-30T02:35:03 are you doing multiple bfs? or simultaneous bfss? or just one bfs to move all ants and not letting two ants search the same location for a path? 2011-11-30T02:35:05 the basis of my entire bot is just distance maps like that now 2011-11-30T02:35:10 just one BFS 2011-11-30T02:35:17 no pathing 2011-11-30T02:35:23 I make _many_ distance maps every turn though 2011-11-30T02:35:36 foraging uses one, searching for/attacking enemy hills uses another 2011-11-30T02:35:40 right now it does something like this 2011-11-30T02:35:54 add any enemy hills as sources, add my hill as source 2011-11-30T02:35:55 or is it path find from targets and move an ant every time you come across one? 2011-11-30T02:35:58 if its in danger 2011-11-30T02:36:15 if queue is still empty then add all known food/enemyAnts and edge locations as sources 2011-11-30T02:36:26 do a BFS 2011-11-30T02:36:42 for each ant pick the lowest number around it and move to it 2011-11-30T02:36:56 so ants will route to food/enemy or edge whichever is closest to them 2011-11-30T02:37:01 yeah, that's what I started with and I've just built up on that 2011-11-30T02:37:07 if enemy hills are visible they move to that 2011-11-30T02:37:13 if my hill is in danger they should move to my hill 2011-11-30T02:37:20 do you order the ants before picking their moves? 2011-11-30T02:37:23 no 2011-11-30T02:37:26 so you move the ants closest to a target first? 2011-11-30T02:37:35 ah that i used to do that 2011-11-30T02:37:37 i would have thought that would be worthwhile, hence just searching from the targets to ants 2011-11-30T02:37:41 not anymore 2011-11-30T02:37:54 though my main problem right now seems to be combat 2011-11-30T02:37:57 my bot is horrible at it 2011-11-30T02:38:01 why not anymore? 2011-11-30T02:38:01 keeps losing ants 2011-11-30T02:38:02 :( 2011-11-30T02:38:12 this bfs seems to decently in most maps 2011-11-30T02:38:18 so i will work one xploration once i fix combat a bit 2011-11-30T02:38:28 bhasker: do you revisit locations you've already explored to look for food? 2011-11-30T02:38:29 how does everyone work out not visible info? 2011-11-30T02:38:38 yes it will do that 2011-11-30T02:38:40 just go through the entire grid and add the locations to the search queue? 2011-11-30T02:38:51 i basically add the following locations 2011-11-30T02:38:53 as sources 2011-11-30T02:39:03 namely a square which has no water squares adjacent to it 2011-11-30T02:39:10 antimatroid: I have a list of unseen locations and I just pass it into my templated 'make a map for these targets' function 2011-11-30T02:39:12 and has at least one square that has is not currently visible adjacent 2011-11-30T02:39:24 thestinger: but what about seen but not recently seen? :P 2011-11-30T02:39:29 I do something similar to thestinger but I compute the frontier of that set first 2011-11-30T02:39:34 if it meets these two criteria its considered an edge square 2011-11-30T02:39:39 antimatroid: well, I have two categories of exploration 2011-11-30T02:39:45 *** kire has joined #aichallenge 2011-11-30T02:39:55 I have "foraging" which sends 1 ant to a target, and revisits last_seen locations 2011-11-30T02:40:06 and then exploration with the purpose of finding hills 2011-11-30T02:40:31 http://ants.fluxid.pl/replay.5554 2011-11-30T02:40:39 you can see that some ants go off by themselves and others go in groups 2011-11-30T02:40:54 that's just emergent 2011-11-30T02:41:03 strcat_flock is an attempt to encourage the packs of ants 2011-11-30T02:41:31 sweet. Timeout Bot v1 is complete. I'm going to bed. 2011-11-30T02:41:38 getting foraging right just took tons of tweaking 2011-11-30T02:41:39 *** bmh has quit IRC (Quit: Page closed) 2011-11-30T02:41:52 I had to run bots against each other in big open maps to get the right values for things 2011-11-30T02:42:05 still not perfect :) 2011-11-30T02:42:20 what i do as a preprocess step is to buildSquads 2011-11-30T02:42:27 http://paste.aichallenge.org/UkIGk/ 2011-11-30T02:42:30 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-11-30T02:42:31 if there are enemyAnts nearby i build squads 2011-11-30T02:42:31 just go to the very end 2011-11-30T02:42:36 otherwise each squad is just one ant 2011-11-30T02:42:44 I'm not proud of that 2011-11-30T02:42:45 so when they encounter enemies they tend to bunch up 2011-11-30T02:43:35 I think my flocking code actually screws up combat 2011-11-30T02:43:40 because they don't form a nice line of combat 2011-11-30T02:43:52 yup, same thing happened to me 2011-11-30T02:44:24 the spreading behavior I have is what causes the lines to actually form, and _flock reduces the effect of that 2011-11-30T02:45:54 http://paste.aichallenge.org/UkIGk/?row=74&col=133&turn=1499 2011-11-30T02:45:56 there, direct link 2011-11-30T02:46:29 BenJackson: will your ants try to take alternate routes? 2011-11-30T02:46:53 not that specifically 2011-11-30T02:46:55 obviously 2011-11-30T02:46:57 I get pile ups like that, but not when there's a somewhat longer alternate route 2011-11-30T02:47:04 if it's much longer, they'll still pile up 2011-11-30T02:47:38 if you back the turns up you'll see I make some progress on the other side 2011-11-30T02:48:41 http://paste.aichallenge.org/UkIGk/?row=46&col=7&turn=1499 2011-11-30T02:48:50 my ants would take that route and form another pile up :) 2011-11-30T02:48:58 I hate that map 2011-11-30T02:48:58 it's funny that this happened because every ant knew where red's base was at the start 2011-11-30T02:49:03 I was going to debug that scenario 2011-11-30T02:49:05 but it won anyway 2011-11-30T02:49:39 *** epicmonkey has quit IRC (Ping timeout: 245 seconds) 2011-11-30T02:50:04 * BenJackson turns the food down even more 2011-11-30T02:50:53 gcc doesn't implement std::array properly :( 2011-11-30T02:50:59 at the moment I'm like this ninja 300th place bot on aichallenge 2011-11-30T02:51:04 I keep having these wtf games and losing 2011-11-30T02:51:11 std::vector you mean? 2011-11-30T02:51:13 meanwhile I cause other bots to have wtf games where they lose to me 2011-11-30T02:51:24 bhasker: no, std::array (C++11, fixed size stack allocated array) 2011-11-30T02:51:51 what's wrong with it? 2011-11-30T02:51:53 std::array, 4> a; is a 4x2 array for example 2011-11-30T02:52:01 I saw someone complaining about the alignment on stackoverflow 2011-11-30T02:52:08 {{0, 0}, {0, 0} ... } 2011-11-30T02:52:14 gcc treats it like a struct 2011-11-30T02:52:26 so you need an extra pair of curly braces, and it does something really weird with 2d ones 2011-11-30T02:52:36 hmm k 2011-11-30T02:52:48 i haven't really looked at the C++11 stuff 2011-11-30T02:52:54 lots of it is amazing 2011-11-30T02:53:02 unordered_set and unordered_map (hash tables) 2011-11-30T02:53:05 hmm maybe i should look at it sometime 2011-11-30T02:53:14 most of it is just boost being folded in? 2011-11-30T02:53:20 tr1 and boost 2011-11-30T02:53:24 yea 2011-11-30T02:53:27 std::array is boost::array 2011-11-30T02:53:42 for {auto &v : container } { std::cout << v << std::endl; } 2011-11-30T02:53:50 range-based for loops, auto is type inference now 2011-11-30T02:53:56 ah yea i read that 2011-11-30T02:54:03 makes it easy to type C++ ! 2011-11-30T02:54:08 gcc 4.5 doesn't actually have the ranged based for, so you have to use the old iterator syntax for now 2011-11-30T02:54:12 on the server 2011-11-30T02:54:17 instead of map >::const_iterator! 2011-11-30T02:54:23 yeah 2011-11-30T02:54:40 hmm my mac comes with 4.2.1 2011-11-30T02:54:40 there's .cbegin() and .cend() for getting the const_iterator instead of an iterator 2011-11-30T02:54:48 bhasker: yeah, apple hates the GPLv3 2011-11-30T02:54:48 i doubt it supports most of the c++11x syntax 2011-11-30T02:54:58 just install gcc 2011-11-30T02:55:00 that's not 10 years old 2011-11-30T02:55:01 a lot of people hate gplv4 2011-11-30T02:55:02 :P 2011-11-30T02:55:04 gplv3 2011-11-30T02:55:15 freebsd moved to clang for its core because of that 2011-11-30T02:55:17 it means they can't sue you for using their code 2011-11-30T02:55:18 from gcc 2011-11-30T02:55:26 like if they had a patent on some compiler thing 2011-11-30T02:55:33 and they distributed GPLv3 software using it 2011-11-30T02:55:46 they couldn't sue something for using their code which uses the patent 2011-11-30T02:55:53 and apple likes suing people :) 2011-11-30T02:55:59 heh 2011-11-30T02:56:10 clang 2.9 supports some C++11 stuff 2011-11-30T02:56:11 damn implementing minmax for combat is going to be painful 2011-11-30T02:56:12 not enough 2011-11-30T02:56:17 I think 2.9 is like a year old 2011-11-30T02:56:36 lambdas are the thing I really like in C++11 :) 2011-11-30T02:56:41 all this is moot anyway nodejs is the new fancy way of writing stuff 2011-11-30T02:56:52 javascript 4tw 2011-11-30T02:56:56 auto f = [](int i) { return i * 2; } 2011-11-30T02:57:05 it infers the return type but you can explicitly add ->int 2011-11-30T02:57:26 auto f = [this](int i) { this->number = i * 2; } 2011-11-30T02:57:26 a year from now c++ will be a completly new language 2011-11-30T02:57:35 and then pass f into a function 2011-11-30T02:57:38 then people will dump javascript and goback to c++ 2011-11-30T02:57:58 any of you done any nodejs programming 2011-11-30T02:57:59 thestinger: I'd be curious to see an example of your lambda-based bot stuff 2011-11-30T02:58:08 I've never had occasion to use c++11 2011-11-30T02:58:11 but I like Scala a lot 2011-11-30T02:58:15 same here Ben 2011-11-30T02:58:19 I like haskell a lot :) 2011-11-30T02:58:28 i like c++ everything else is annoying 2011-11-30T02:58:30 some of you are bfsing from the targets to sources yeah? 2011-11-30T02:58:31 I couldn't figure out how to do a generic BFS implementation without lambdas for example 2011-11-30T02:58:34 javascript is the worst of the lot 2011-11-30T02:58:40 that works really nicely if you just want to move each ant to the closest target 2011-11-30T02:59:09 BenJackson: one of the things I've ended up doing is passing a lambda which sets something in an object to a generic function 2011-11-30T02:59:20 so I can have a generic algorithm which is used for completely different things 2011-11-30T02:59:43 like the lambda could be passed the Location and the distance for each step of a BFS 2011-11-30T03:00:02 and set something based on that using references it has to objects the generic function doesn't need to know about 2011-11-30T03:00:13 thestinger I get it, I'd just be curious to see what it looks like in c++11 2011-11-30T03:00:16 maybe after the contest 2011-11-30T03:00:22 what I did was write a bfs iterator 2011-11-30T03:00:43 bfs(state, start_loc) ... bfs != end, *bfs is a loc 2011-11-30T03:00:56 bhasker: if you search from targets to ants you don't need to order them :P 2011-11-30T03:01:05 *** Conorach has joined #aichallenge 2011-11-30T03:01:17 one of the things I have is a function which sets radius info (for setting last_seen with viewradius around my ants, etc.) 2011-11-30T03:01:35 so I basically pass it a "setter" using a lambda 2011-11-30T03:01:44 yeah i have bombVisionInfo and bombPathVisionInfo 2011-11-30T03:02:01 * antimatroid shuts up now :P 2011-11-30T03:02:05 I use it to mark attackradius around enemies, attackradius+1, etc. 2011-11-30T03:02:14 before I had to have the same code written out 4 times 2011-11-30T03:02:30 bhasker: I really like javascript 2011-11-30T03:02:36 not sure how to do code reuse like that without higher-order functions 2011-11-30T03:02:40 yeah, I've done similar things with functors 2011-11-30T03:02:48 yeah 2011-11-30T03:02:49 but lambdas would be nicer in some ways 2011-11-30T03:02:56 my higher-order functions take std::function as an argument 2011-11-30T03:03:04 but I like functors because I know my inner loop isn't going to invoke a function pointer 2011-11-30T03:03:04 which is generic - it can be a function pointer, functor or lambda :) 2011-11-30T03:03:11 it's going to inline my trivial "seen" test or whatever 2011-11-30T03:03:25 yeah I'm not hip to std::function 2011-11-30T03:03:30 std::function f; 2011-11-30T03:03:35 I rarely get to write C++ this freeform 2011-11-30T03:03:45 usually I'm stuck inside a 10 year old framework of cruft 2011-11-30T03:03:50 the C++11 stuff is really nice, and it's mostly in boost 2011-11-30T03:03:52 working with people who are slightly scared of std::vector 2011-11-30T03:03:58 lol :) 2011-11-30T03:03:59 *** g0llum has joined #aichallenge 2011-11-30T03:04:13 another C++11 thing I use is emplace 2011-11-30T03:04:16 in fairness they may well be putting the contents of their array into FPGA registers 2011-11-30T03:04:21 so I can understand wanting precise control 2011-11-30T03:04:32 so vec.emplace_back(row, col) instead of vec.push_back(Location(row, col)) which has to move/copy it 2011-11-30T03:04:57 ehhh I bet the assembly is the same 2011-11-30T03:04:59 nope 2011-11-30T03:05:02 not at all 2011-11-30T03:05:18 keep in mind vec.push_back(Location(r,c)) is going to be entirely inlined 2011-11-30T03:05:25 yeah 2011-11-30T03:05:30 it still ends up using more instructions 2011-11-30T03:05:36 not sure why 2011-11-30T03:05:47 like .insert() isn't optimized to the same code as .push_back() 2011-11-30T03:05:56 I think gcc must have special cases for everything 2011-11-30T03:06:16 like memset() turns into the same code as a for loop for a tiny array 2011-11-30T03:06:16 I've hacked on gcc internals a few times 2011-11-30T03:06:28 it's scary in there 2011-11-30T03:06:52 what's special cased is crazy complex and what's "generic" is so generic you can't tell what it does or when it's invoked 2011-11-30T03:06:57 lol 2011-11-30T03:07:05 gdb is the worst 2011-11-30T03:07:10 I hate gdb 2011-11-30T03:07:16 I've tried using it, it's not helpful 2011-11-30T03:07:21 half the functions in there are just wrappers that permute the arguments and call through some other function pointer 2011-11-30T03:07:26 and that will go on 8 layers deep 2011-11-30T03:07:36 I would rather stick print statements everywhere than use gdb 2011-11-30T03:07:47 anyway I haven't had any weird problems in C++ like I have in C 2011-11-30T03:07:51 more than once I've modified gdb, recompiled, and found that I didn't even remotely modify the right code 2011-11-30T03:07:59 also have you ever tried to run gdb under gdb? 2011-11-30T03:08:13 lol 2011-11-30T03:08:13 luckily they made a movie about that so I don't have to explain it... INCEPTION 2011-11-30T03:08:46 yeah I do mostly concurrent programming (and/or realtime) and so I find gdb pretty useless 2011-11-30T03:08:58 I like how most libraries completely spam valgrind output 2011-11-30T03:08:59 if I stop at a breakpoitn usually the world is totally fucked 2011-11-30T03:09:35 ok to repro this game on aichallenge I lost I basically have to set min food 2011-11-30T03:09:35 GNU cat isn't even capable of running under valgrind without 300 errors 2011-11-30T03:11:11 *** pguillory has quit IRC (Ping timeout: 265 seconds) 2011-11-30T03:12:03 meh, plan9port cat is even worse 2011-11-30T03:12:18 I guess they rely on crazy hacks for speed 2011-11-30T03:15:22 I think after freebsd unified the vm and buffercache there was a version of copy that was mmap, mmap, memcpy 2011-11-30T03:15:23 *** aerique has joined #aichallenge 2011-11-30T03:16:28 clang is nice, it actually does the optimizations I expect it to 2011-11-30T03:16:34 gcc is hit or miss on even basic stuff 2011-11-30T03:16:48 but gcc must be full of special cases and hacks because it makes faster code 2011-11-30T03:17:02 clang has a long way to go before they catch up 2011-11-30T03:19:58 morning. 2011-11-30T03:20:57 *** raemde_ has joined #aichallenge 2011-11-30T03:21:47 i'm trying to test battle code with --scenerio, any way i can have a map with just ants and water on it ? 2011-11-30T03:22:08 whenever there's no hill, the engine thinks, game is over. 2011-11-30T03:22:08 *** raemde has quit IRC (Ping timeout: 252 seconds) 2011-11-30T03:22:17 yeah, so just add some hills surrounded by water 2011-11-30T03:22:20 and --food none 2011-11-30T03:22:37 *** Ox86 has quit IRC (Ping timeout: 240 seconds) 2011-11-30T03:22:38 ah, isolate the hills. good 2011-11-30T03:22:58 hmm what is --scenario? 2011-11-30T03:23:05 is that an option to the map maker? 2011-11-30T03:23:11 no, to the game engine 2011-11-30T03:23:15 it lets you run maps with food/ants preplaced 2011-11-30T03:23:17 no, to playgame 2011-11-30T03:23:18 you can run a non-symmetrical map with some pre-positioned ants/etc 2011-11-30T03:23:30 a scenario, if you will 2011-11-30T03:23:35 oh 2011-11-30T03:23:40 didn't know that 2011-11-30T03:23:52 I found it extremely useful for getting combat working 2011-11-30T03:23:55 so all my improvements suck. i think i've had enough of this contest for a while 2011-11-30T03:24:36 how does that work , if you give that option does it just tell playgame to not spawn new food etc? 2011-11-30T03:24:48 well you have to say --food none to tell it not to spawn new food 2011-11-30T03:24:58 a1k0n: now you can write a bot in brainfuck :) 2011-11-30T03:25:00 but if you include 'a's and 'b's on your map it will put ants there 2011-11-30T03:25:06 thestinger: haha. is it supported? 2011-11-30T03:25:18 oh nice 2011-11-30T03:25:22 so easy to test combat then 2011-11-30T03:25:24 i think the default brainfuck only has 64k memory 2011-11-30T03:25:24 in a sandbox 2011-11-30T03:25:28 a1k0n: you can compile it to C 2011-11-30T03:25:49 well i'd be doing source lang->brainfuck->C so that'd just be silly 2011-11-30T03:26:01 well you could make a starter package xD 2011-11-30T03:26:28 http://www.hamsterfestdestiny.org/hamster/ 2011-11-30T03:27:20 I bet the brainfuck -> LLVM -> machine code way turns into something almost reasonable 2011-11-30T03:27:52 *** kiv has quit IRC (Read error: Connection reset by peer) 2011-11-30T03:27:54 ha there's a dart starter package 2011-11-30T03:28:02 *** sigh has joined #aichallenge 2011-11-30T03:28:20 i could do perl 2011-11-30T03:29:02 tcl xD 2011-11-30T03:30:18 stringly typed dynamic language 2011-11-30T03:30:24 heh 2011-11-30T03:30:38 yes, tcl is very stringly 2011-11-30T03:30:55 i'm not even sure if i should resubmit 2011-11-30T03:31:25 it's brought me only anguish 2011-11-30T03:31:30 blah. 2011-11-30T03:31:41 i should fix the bug where sometimes my ants are indecisive about collecting food 2011-11-30T03:31:44 maybe the rankings are screwed up somehow 2011-11-30T03:31:49 but i need a break for a while 2011-11-30T03:31:58 pguillory hasn't come back top the top yet either 2011-11-30T03:32:16 http://aichallenge.org/profile.php?user=2255 finally dropped from 20 to 27 2011-11-30T03:32:21 i guess his go bot isn't as good 2011-11-30T03:32:41 he's doing way better than me 2011-11-30T03:33:01 has anyone tried an expanding perimeter around their bot for defense? 2011-11-30T03:33:05 I also had an early matchup with xathis but lost mine 2011-11-30T03:33:13 wow, ChrisH is shooting to the top 2011-11-30T03:33:38 ChrisH has time trouble 2011-11-30T03:34:29 he does? 2011-11-30T03:34:40 Seems to max out somewhere around 120 ants 2011-11-30T03:34:45 the plan9-like Go compilers aren't very good 2011-11-30T03:34:49 a1k0n beat him in the second to last game, no prob ;-) 2011-11-30T03:34:54 Atleast in the couple games I looked at 2011-11-30T03:35:05 http://aichallenge.org/profile.php?user=4852 2011-11-30T03:35:13 how did that person win the game against chrisH etc? 2011-11-30T03:35:42 they rushed and got more points 2011-11-30T03:35:45 points 2011-11-30T03:35:52 stupid random walks. 2011-11-30T03:35:55 a lot of the top bots are almost too cautious 2011-11-30T03:36:06 that's been a big problem for me 2011-11-30T03:36:12 my old one was aggressive because it was stupid 2011-11-30T03:36:13 mine isn't cautious and probably doesn't deserve to be a top bot but it does get a lot of points 2011-11-30T03:36:18 a1k0n: yeah, that's why my ancient bot climbed so high 2011-11-30T03:36:26 it's terrible, but it gets points early on 2011-11-30T03:36:47 yeah. if you're only up against good bots, you lose. if there are less-good bots thrown in the mix you win. 2011-11-30T03:36:55 a very noisy game. 2011-11-30T03:37:11 ahh, so upsets aren't as uncommon as i thought they would be 2011-11-30T03:37:21 you had to be careful about who your competition was with planet wars 2011-11-30T03:37:30 antimatroid: they are if you accept my premise that my bot should be ranked higher ;-) 2011-11-30T03:37:41 :p 2011-11-30T03:37:47 yeah, and here you can't really model your opponents until later in the game as you don't have too much information 2011-11-30T03:37:49 *** jon1 has joined #aichallenge 2011-11-30T03:37:57 BenJackson: is it running out of time? 2011-11-30T03:38:04 it might be smart, though, to figure out which bots are cautious, or just timed out 2011-11-30T03:38:09 I have no time controls 2011-11-30T03:38:17 impressive 2011-11-30T03:38:20 actually I lose the low-ant games, not the high-ant games 2011-11-30T03:38:27 I'm testing right now with min food 2011-11-30T03:38:34 and all other enemies knowing my starting loc 2011-11-30T03:38:43 to try to avoid some of the problems I hit in my last submit 2011-11-30T03:39:27 *** mj41 has joined #aichallenge 2011-11-30T03:43:14 *** kire has quit IRC (Quit: Leaving) 2011-11-30T03:49:55 a1k0n I love you 2011-11-30T03:50:16 your tron postmortem inspired some ideas 2011-11-30T03:50:35 particularly the voronoi stuff 2011-11-30T03:50:52 01:16:17 < BenJackson> @seen fluxid ← were you looking for me? 2011-11-30T03:51:21 yeah 2011-11-30T03:51:21 thestinger: i dived into reorganizing the code and ended up going to sleep with unfixed segfaults 2011-11-30T03:51:37 while I was making those bfs animations I relized how you could subtly make a bfs extra slow 2011-11-30T03:51:40 but you don't have that bug 2011-11-30T03:52:23 :) 2011-11-30T03:53:08 http://ants.fluxid.pl/replay.5622 ouch 2011-11-30T03:54:43 why those airholes by the wall? 2011-11-30T03:54:49 I like how blue progressively stopped moving 2011-11-30T03:55:21 you do some nice work against orange 2011-11-30T03:55:23 BenJackson: the 2 holes in the pile up? 2011-11-30T03:55:28 yeah 2011-11-30T03:55:39 that's just an artifact of my spreading code 2011-11-30T03:55:47 they spread by taking alternate paths 2011-11-30T03:55:52 they had no reason to move to those tiles 2011-11-30T03:56:24 I can adjust a constant by +1 and they would have filled those 2011-11-30T03:57:02 I'm not sure why they don't attack the orange ant 2011-11-30T03:57:16 that's a bug 2011-11-30T03:57:29 guys, I know how to combat. I juts don't feel like implementing it yet 2011-11-30T03:59:05 somehow the blue ant on the other side of the wall makes them not attack the orange ant :\ 2011-11-30T03:59:11 that's going to be fun to debug... 2011-11-30T03:59:38 sf17k: are you using the voronoi stuff for this? i thought about it, but haven't 2011-11-30T03:59:55 I will be 2011-11-30T04:00:00 also i don't think i know how to combat 2011-11-30T04:00:12 it seems like it'd be useful in cornering ants 2011-11-30T04:00:25 maybe that would be a good way to do territory control 2011-11-30T04:00:26 yeah, very possibly 2011-11-30T04:00:32 I'm trying to implement that atm 2011-11-30T04:00:34 thestinger: exactly 2011-11-30T04:00:55 i guess if you need a tiebreaker for a move in the presence of enemies, it would help 2011-11-30T04:01:05 strcat_nationalism will be ready in a few days :) 2011-11-30T04:01:24 also the whole... counting the edges thing can also help, as you don't want to go into a corner or a dead-end 2011-11-30T04:02:22 I beat A :) 2011-11-30T04:02:36 a1k0n: for combat, you find the pixels currently under attack by the enemy, and go around their border looking for the shortest straight horizontal/vertical/diagonal stretches 2011-11-30T04:02:41 but then BenJackson murdered me 2011-11-30T04:02:54 one ant has stretches of 2 on the corners, and stretches of 3 on the sides 2011-11-30T04:02:55 the old standby 2011-11-30T04:03:12 the goal is to place your ants on the shortest ones 2011-11-30T04:03:14 http://ants.fluxid.pl/replay.5659 that map is kind of annoying 2011-11-30T04:03:16 I'm starting to hink my dumb old bot on fluxid is the only thing keeping us honest ;-) 2011-11-30T04:03:33 as that will always give you the most optimal loss ratio 2011-11-30T04:03:40 I've playtested that map a lot 2011-11-30T04:03:40 because it's the "greatest concave" 2011-11-30T04:04:17 BenJackson: if you started next to A maybe I could have won :P 2011-11-30T04:04:17 you rally your forces 2 steps away, then move in all at once 2011-11-30T04:04:28 yes, that map is like that 2011-11-30T04:04:35 that's one reason it's a good test map 2011-11-30T04:04:55 you can bias things so that your old versions get a boost against your new version 2011-11-30T04:04:59 by pairing them against a weaker bot 2011-11-30T04:05:22 sf17k: yeah but the enemy ants can move 2011-11-30T04:05:34 yes. 1 step away is the "hold line", which you want to attack all at once in case they move forward 2011-11-30T04:05:35 but yeah i agree that's probably a good way to do it 2011-11-30T04:05:37 which is why you rally 2 steps away 2011-11-30T04:06:52 I guarantee it's the best way to do it without predicting your enemy's movements 2011-11-30T04:07:20 i just predict my enemy's movements badly 2011-11-30T04:07:41 heh nice 2011-11-30T04:08:21 i basically just try random things from both sides, and bias the sampling distribution towards moves that tend to be better on average 2011-11-30T04:08:33 ah interesting 2011-11-30T04:08:56 yeah I've been studying mechanics intently 2011-11-30T04:09:00 of course it makes my advancing an entire line of ants at once extremely improbable 2011-11-30T04:09:08 and so i tend to get a lot of suicides 2011-11-30T04:09:16 my ant does totally unexpected things 2011-11-30T04:09:24 I didn't code it to try to make it execute some battle plan 2011-11-30T04:09:27 just to maximize some function 2011-11-30T04:09:32 (same here) 2011-11-30T04:09:33 I wish I was as good at implementation as I think I am at theory 2011-11-30T04:09:36 I often boggle at how it does it 2011-11-30T04:10:37 I'll be trying to win :P 2011-11-30T04:11:15 *** Surya has joined #aichallenge 2011-11-30T04:11:51 the problem with combat in this game is it's complicated definition where you basically have to check each ant against its opponents to determine whether it's dead 2011-11-30T04:12:05 can't just add stuff up 2011-11-30T04:12:07 I kind of have hardcoded battle plans and then I try variations of them to make them better 2011-11-30T04:12:34 I was worried at speed so I don't really do very much atm 2011-11-30T04:12:44 so it finishes too quickly :) 2011-11-30T04:15:02 ~20-30ms turns with 80 ants in battles 2011-11-30T04:15:59 I figure it's always good to attack if you can trade losses 1:1 or better, because you gain area which means more food 2011-11-30T04:16:11 only in a 1:1 game 2011-11-30T04:16:22 in a many player game you and your opponent both get weaker vs everybody 2011-11-30T04:16:31 ah yeah 2011-11-30T04:16:35 your theory was exactly m y original theory :) 2011-11-30T04:16:38 I tried to take into account the number of enemies but I screwed it up :) 2011-11-30T04:16:39 also I thought it might be less true if there's less food 2011-11-30T04:16:48 _foodfight is just _jedimindtricks with ~100 lines deleted 2011-11-30T04:16:55 yes, less food is a huge pita 2011-11-30T04:17:03 I am testing that even now 2011-11-30T04:17:16 some games there's just barely any food :( 2011-11-30T04:17:33 really screws up my bot because my ants end up too far from my hill 2011-11-30T04:17:36 I've gone beyond the normal low limit for testing 2011-11-30T04:17:41 I rely on a constant food supply for defense 2011-11-30T04:17:41 *** antimatroid has quit IRC (Ping timeout: 252 seconds) 2011-11-30T04:17:56 it's definitely a different strategy when there's a scarcity of food 2011-11-30T04:18:04 *** grwip has joined #aichallenge 2011-11-30T04:18:23 less ants have to cover more area so they have to move more 2011-11-30T04:18:53 I end up with 10 ants spread around the map looking for food and not finding any 2011-11-30T04:18:58 and maybe try to go around enemies to get to their hills 2011-11-30T04:19:06 and then a pack of 4 ants will take my hill 2011-11-30T04:19:19 low food games are just extra random 2011-11-30T04:19:23 like high player count games 2011-11-30T04:20:05 so I'm working on 6-player low-food right now 2011-11-30T04:20:07 my nemesis 2011-11-30T04:20:29 *** cuademon has quit IRC (Quit: leaving) 2011-11-30T04:21:14 *** ikaros has joined #aichallenge 2011-11-30T04:21:15 what I wanna know is, I have a bunch of ants, and a bunch of goals, and I need to assign the ants to the goals 2011-11-30T04:21:37 what kind of goals? 2011-11-30T04:21:43 I have types of targets 2011-11-30T04:21:56 food, hills, unvisible squares, enemy fronts 2011-11-30T04:22:11 some I send 1 ant to, some get a few ants, some take any number to satisfy 2011-11-30T04:24:15 I know! 2011-11-30T04:24:29 voronoi graph 2011-11-30T04:25:14 pathfind that instead of the whole grid 2011-11-30T04:25:33 http://aichallenge.org/visualizer.php?game=146121&user=3473&turn=72&row=84&col=97 2011-11-30T04:25:38 oh god that food 2011-11-30T04:25:42 nooo 2011-11-30T04:26:46 haha oh no 2011-11-30T04:27:08 I had too few ants for attacking to be a priority 2011-11-30T04:27:27 maybe you should just give up your hill and march around attacking other ones 2011-11-30T04:28:20 that's what my old bot did :) 2011-11-30T04:28:47 it works really well on maps with the hills close together 2011-11-30T04:30:00 man just when I think I have it figured out I'm wrong again 2011-11-30T04:31:09 *** b0rder_ has quit IRC (Quit: 离开) 2011-11-30T04:32:28 the bug in my combat now is that I fail to account for what my enemy is never going to do 2011-11-30T04:32:46 ? 2011-11-30T04:32:52 so sometimes I suicide because they COULD kill me 2011-11-30T04:33:00 even though they probably won't due to the trade 2011-11-30T04:33:13 where my suicide is maximizing some defense of some attack they won't make 2011-11-30T04:33:32 oh 2011-11-30T04:33:35 I have that problem too 2011-11-30T04:33:35 *** g0llum has quit IRC (Ping timeout: 248 seconds) 2011-11-30T04:37:27 looks like this week is going to be characterized by me giving up on ant versions 2011-11-30T04:39:41 I merged branches into my master one for the first time in 2 weeks :) 2011-11-30T04:40:05 _next is now _foodfight, and dense/flock will be based on that 2011-11-30T04:41:28 my aichallenge is t the top of the queue 2011-11-30T04:41:37 I deactivated so I might upload and get a quick game 2011-11-30T04:41:41 hmm 2011-11-30T04:44:51 wow 2011-11-30T04:45:01 I did a bunch of tuning at food 3/37 2011-11-30T04:45:07 I ran batches of test games 2011-11-30T04:45:22 V9 was only keeping its hill for 250 turns in 1/10 games 2011-11-30T04:45:30 (with all enemies knowing it immediately) 2011-11-30T04:45:57 improvements got me to 2/10 or 3/10 but also lived much longer and scored a lot more points before losing hills 2011-11-30T04:46:35 that version tested again at 5/37 (min contest food) won 7, tied 1 2011-11-30T04:47:03 ahh crap my aichallenge bot played a game anyway 2011-11-30T04:47:07 *** mikewintermute has joined #aichallenge 2011-11-30T04:51:35 *** sf17k has quit IRC (Quit: Page closed) 2011-11-30T04:53:28 *** treeform has quit IRC (Remote host closed the connection) 2011-11-30T04:53:56 *** g0llum has joined #aichallenge 2011-11-30T04:57:58 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-30T05:23:47 Is it a bad idea to save the pathfinding results? I mean I tried this to save time, but I end up browsing my path when I discover a new water spot in order to remove them. Not sure it's really better :/ 2011-11-30T05:24:02 I don't save anything 2011-11-30T05:24:24 me either 2011-11-30T05:24:27 ok 2011-11-30T05:24:30 my original python bot had to 2011-11-30T05:24:33 otherwise it didn't have time 2011-11-30T05:24:37 every ant is the same, so I start fresh every turn instead of giving them roles 2011-11-30T05:24:57 Rank: 7216 2011-11-30T05:25:00 more bots every day 2011-11-30T05:25:03 here comes V10 2011-11-30T05:25:03 BenJackson: lol, my attempt in python was horrible 2011-11-30T05:25:15 I should but it on bmh's tcp server 2011-11-30T05:25:17 I dunno how Fluxid managed without using C 2011-11-30T05:25:32 yeah, but pathfinding isn't linked to an ant. In my mind it was great to avoid computing again paths 2011-11-30T05:25:33 my first C++ bot in python would have worked 2011-11-30T05:25:39 it was much more efficient 2011-11-30T05:25:45 using the bfs influence maps basically 2011-11-30T05:26:00 http://paste.aichallenge.org/Mt5mI/ 2011-11-30T05:26:11 BenJackson: yeah, I was using A* in python 2011-11-30T05:26:27 McLeopold that can't be symmetrical 2011-11-30T05:26:33 *** antimatroid has joined #aichallenge 2011-11-30T05:26:34 those must not be bases 2011-11-30T05:26:35 I waste a load of time doing pathfinding searches to explore (c#) I guess I should think about changing that 2011-11-30T05:26:52 BenJackson: it is symmetrical 2011-11-30T05:26:55 holy hell it's late 2011-11-30T05:27:07 McLeopold but not for those hill locs 2011-11-30T05:27:08 s/late/early/ here :) 2011-11-30T05:27:19 yes, the map is all symmetrical, including hills 2011-11-30T05:28:10 no way 2011-11-30T05:28:44 yes, totally :) 2011-11-30T05:29:07 you're telling me that the orange and the blue hills would be accepted by the food symmetry code? 2011-11-30T05:29:23 there is nothing on front of the orange hills to resemble what's in front of blue 2011-11-30T05:29:24 I'm using the food symmetry code to place hills :D 2011-11-30T05:29:28 nor what's behind 2011-11-30T05:29:44 place hills based on WHAT HILLS though? 2011-11-30T05:29:56 I don't doubt there's someplace you could put hills on there 2011-11-30T05:29:56 ant orientations and offsets 2011-11-30T05:29:58 just not where you did 2011-11-30T05:30:14 each ant has 4 hills, not 2 2011-11-30T05:30:23 oh, fine 2011-11-30T05:30:35 then it's obviously symmetric :) 2011-11-30T05:30:53 you could make that more clear by using only 2 colors 2011-11-30T05:31:12 but it is a 4 player map 2011-11-30T05:31:27 16 hills total 2011-11-30T05:31:32 4 for each 2011-11-30T05:32:09 OH 2011-11-30T05:32:18 I didn't see how it was ... wide 2011-11-30T05:32:22 bed time 2011-11-30T05:32:31 I saw the repeated guitar shape 2011-11-30T05:32:37 I thought that was the map tiling in the viewer 2011-11-30T05:32:44 I call it the "angry gumba" 2011-11-30T05:32:44 sry 2011-11-30T05:32:52 I was sure you were fucking with me 2011-11-30T05:32:56 but it is 2:30am 2011-11-30T05:33:04 yes it is 2011-11-30T05:33:46 *** McLeopold has left #aichallenge 2011-11-30T05:34:09 *** i0i has joined #aichallenge 2011-11-30T05:39:23 *** i0i has quit IRC (Quit: Page closed) 2011-11-30T05:39:38 alright, someone else is going to have to tell me, how is that map symmetric? 2011-11-30T05:40:43 fff 2011-11-30T05:40:44 nevermind 2011-11-30T05:41:45 trying to work out what was going on there was a rollercoaster of emotions 2011-11-30T05:43:32 bitbucket has serious issues :\ 2011-11-30T05:44:01 my git repo is 500KB locally, and 5MB on bitbucket 2011-11-30T05:44:34 lol 2011-11-30T05:44:37 *** g0llum has quit IRC (Read error: Connection reset by peer) 2011-11-30T05:44:45 apparently they never run git gc 2011-11-30T05:45:18 so it has like 50 merged/deleted branches (I can see them on bitbucket even though they don't actually exist on bitbucket :\) 2011-11-30T05:45:56 their "solution" is to delete your repo and reupload 2011-11-30T05:54:07 *** cyphase has quit IRC (Ping timeout: 248 seconds) 2011-11-30T06:10:47 crap, gcc 4.5 doesn't have constexpr 2011-11-30T06:12:56 git support is pretty new on bitbucket 2011-11-30T06:13:08 < thestinger> I dunno how Fluxid managed without using C ← I wonder about that too 2011-11-30T06:13:39 is bitbucket better than github? 2011-11-30T06:13:42 no 2011-11-30T06:13:46 but it has free private repos 2011-11-30T06:13:51 so I'm using it for this 2011-11-30T06:14:07 ah 2011-11-30T06:14:33 thestinger: so do you work on it from different machines? 2011-11-30T06:14:39 mleise: yeah 2011-11-30T06:15:33 Fluxid: does the server use some sort of Python ➪ machine code compiler? 2011-11-30T06:16:02 pypy is available now and uses a JIT compiler 2011-11-30T06:16:12 but he's somehow getting by with the CPython interpreter 2011-11-30T06:16:48 how does the server discriminate between CPython and pypy? 2011-11-30T06:17:03 an extension I guess 2011-11-30T06:17:17 like with C++11 (.cpp uses -std=c++0x) 2011-11-30T06:17:48 http://forums.aichallenge.org/viewtopic.php?f=26&t=1835#p11853 yup 2011-11-30T06:18:00 also it's pypy 1.7 which is the shiny new release 2011-11-30T06:18:18 stackless support enabled by default iirc (lightweight threads and coroutines) 2011-11-30T06:18:32 but I think you give up JIT compilation if you use stackless 2011-11-30T06:18:44 for now 2011-11-30T06:19:19 I wonder if I could use this pypy by default on my Linux to run some applets or applications written in Python :D 2011-11-30T06:19:31 yeah, you can 2011-11-30T06:19:38 but it's probably not worth the hassle 2011-11-30T06:19:39 it's fully compatible with python2 2011-11-30T06:19:44 no changes needed 2011-11-30T06:19:50 0.0 2011-11-30T06:19:55 the support for c extensions is experimental though 2011-11-30T06:20:02 but most python libs are pure python anyway 2011-11-30T06:20:34 they have 2.7.2 support atm and are raising funds for developing py3 support 2011-11-30T06:20:37 how about bindings to xorg or libxml2? 2011-11-30T06:20:52 would that fall under the c extension category? 2011-11-30T06:20:56 https://bitbucket.org/pypy/compatibility/wiki/Home 2011-11-30T06:22:38 mleise: on official server there is pypy 1.7 2011-11-30T06:22:49 extension pypy 2011-11-30T06:23:01 yeah, thestinger told m 2011-11-30T06:23:23 i see now, i answered before read the rest ;) 2011-11-30T06:23:39 nice rank btw 2011-11-30T06:23:54 mine? 2011-11-30T06:24:01 I just reuploaded so I guess so :P 2011-11-30T06:24:32 http://aichallenge.org/profile.php?user=2255 ancient version made it to skill 81.76 2011-11-30T06:24:33 Fluxid, yes it says 24 2011-11-30T06:24:38 we'll see how high my new one gets 2011-11-30T06:24:46 i was 5th for few days with pure python bot, but that was pure luck - many top bots reuploaded at that time. but still felt good 2011-11-30T06:25:13 pypy + ctypes would be nice 2011-11-30T06:25:18 Fluxid: so your bot is no longer pure python ? 2011-11-30T06:26:05 you are a cheater then :( 2011-11-30T06:27:07 mleise: 1900 python LOC and 700 C LOC 2011-11-30T06:27:29 afair, maybe less python and more C ;) 2011-11-30T06:27:42 that's a lot of code 2011-11-30T06:27:47 but most logic is still in py 2011-11-30T06:28:04 my bot is 1557 LOC atm 2011-11-30T06:28:10 cool 2011-11-30T06:28:16 and it's C++ :P 2011-11-30T06:28:18 some say it all depends on algorithmic complexity, big-O notation and that you can use any language, as long as you chose the right algorithms. But with all the pretty fixed numbers (map size, time, typical ant and food counts) you really have to look at the overhead of interpreters or garbage collectors. 2011-11-30T06:28:32 but i have tendencies to unroll long lines into many lines, with one argument per line 2011-11-30T06:28:39 ah 2011-11-30T06:29:03 I've given up at keeping my code pretty with C++ 2011-11-30T06:29:17 functional programming has the tendency to produce longer lines than imperative programming 2011-11-30T06:29:39 mleise: over of GC is a funny thing... its throughput can be (an in may cases) is faster than C++ new/delete and C malloc 2011-11-30T06:29:40 i didn't really care about prettiness either, but py code is still better than ugly c code 2011-11-30T06:29:45 overhead 2011-11-30T06:30:23 static SimulateResult simulate(std::vector> ant_grid, const std::unordered_map &test_orders); 2011-11-30T06:30:27 I have crap like that 2011-11-30T06:30:35 delt0r: true, that is. malloc isn't 'realtime' either 2011-11-30T06:30:37 C++ :( 2011-11-30T06:30:46 ha ha ! 2011-11-30T06:31:21 C++11 type inference with auto helps a lot with line length 2011-11-30T06:31:23 still pretty bad. 2011-11-30T06:32:31 static SimulateResult simulate(int[][] ant_grid, const Direction[Location] test_orders) {...} 2011-11-30T06:34:58 it is better than, say JavaScript where you don't know the parameter types unless you add a big JSDoc block above the function because it has no declared types. 2011-11-30T06:35:34 type signatures in haskell are so much nicer 2011-11-30T06:35:58 thestinger: you could give your template instances other, shorter names. what about haskell? 2011-11-30T06:36:20 Doesn't #define or typedef or something work there? 2011-11-30T06:36:52 well, in haskell all the types are inferred for you 2011-11-30T06:36:59 type signatures are optional 2011-11-30T06:37:38 templates in C++ aren't very verbose, but they aren't very informative either 2011-11-30T06:37:54 you have to rely on massive compiler errors because there aren't concepts/type classes 2011-11-30T06:37:54 thestinger: I don't know... it seems I would always like to declare my parameter types for documentation purposes. 2011-11-30T06:38:16 mleise: yeah, you usually do 2011-11-30T06:39:00 and use "auto x = new SomeClass();" 2011-11-30T06:39:37 haskell has ghci though 2011-11-30T06:39:48 never heard of that 2011-11-30T06:40:06 it's just a REPL like irb (ruby) or the interactive python interpreter 2011-11-30T06:40:09 Prelude> :type map 2011-11-30T06:40:11 map :: (a -> b) -> [a] -> [b] 2011-11-30T06:40:25 *** avdg has joined #aichallenge 2011-11-30T06:40:35 Prelude> map (*2) [1..10] 2011-11-30T06:40:37 [2,4,6,8,10,12,14,16,18,20] 2011-11-30T06:40:46 ok, that is nice to have 2011-11-30T06:41:42 Prelude> let sum xs = foldl (+) 0 xs 2011-11-30T06:41:44 Prelude> :t sum 2011-11-30T06:41:46 sum :: Num b => [b] -> b 2011-11-30T06:41:52 so you can see the type of a function whenever you want 2011-11-30T06:42:58 usually haskell is compiled, ghci is kind of crippled 2011-11-30T06:43:38 I don't think you can define data types in ghci (but you can define them in a file and load it dynamically) 2011-11-30T06:44:48 sounds like it would almost be easier to just place some compile time message in your code quickly to print return types 2011-11-30T06:45:05 well you can put the type signature in the code (and usually you do) 2011-11-30T06:45:40 i guess for some prototyping it is quite nice to omit them 2011-11-30T06:45:55 it's also nice because your function might be more generic than you thought it was 2011-11-30T06:46:11 and the compiler will infer the most generic type signature 2011-11-30T06:46:30 so a common haskell thing is to write a function, check the type signature and paste it at the top :P 2011-11-30T06:46:34 Sure, templated functions can have arbitrary return types 2011-11-30T06:46:51 well, they aren't templates 2011-11-30T06:47:29 does that have to do with type classes? 2011-11-30T06:47:36 yeah 2011-11-30T06:47:52 so a function takes bytes, ints or doubles and returns double in general? 2011-11-30T06:47:59 well like 2011-11-30T06:48:07 sum :: Num a => [a] -> a 2011-11-30T06:48:12 that's the type signature for sum 2011-11-30T06:48:31 so it takes a list of a type (a) and returns 1 value (of the same type as a) 2011-11-30T06:48:43 and a must be in the Num type class 2011-11-30T06:48:58 does Num include types that aren't supported by the machine? like big integers? 2011-11-30T06:49:04 yeah 2011-11-30T06:49:13 and you can make your own type and have it be in that type class 2011-11-30T06:49:46 for example being in the Show type class means something can be turned into a string 2011-11-30T06:49:46 wtf? how does the compiler even know how many copies it has to create of that function? 2011-11-30T06:49:56 *** TheLinker has joined #aichallenge 2011-11-30T06:50:04 dunno 2011-11-30T06:50:15 haskell has a crazy smart compiler though 2011-11-30T06:50:30 it has to deal with laziness vs strictness and stuff other compilers don't have to worry about 2011-11-30T06:50:30 I guess I'll stick with the template image though 2011-11-30T06:50:42 well, it works sort of like templates 2011-11-30T06:50:59 but you get sane compile time errors and you can restrict the types allowed to be used 2011-11-30T06:51:52 It is like saying "this function takes a parameter T[] and returns T" and then adding some guard conditions like "it has to be byte, int, float, .... or offer the add() method" 2011-11-30T06:52:33 other types are inferred too 2011-11-30T06:52:37 This is how it is generally done in D, which lacks type classes. 2011-11-30T06:52:43 Prelude> :t 0 2011-11-30T06:52:45 0 :: Num a => a 2011-11-30T06:52:50 0 is just a Num 2011-11-30T06:53:02 Int is a hardware int, Integer is a big integer, etc. 2011-11-30T06:53:30 hmm the compiler can say it is a Num, but why isn't it a Show ?! :D 2011-11-30T06:53:39 let i = 0 basically makes a function always returning 0, and you can add a type signature if you want an explicit integer type 2011-11-30T06:54:40 if types can belong to multiple classes, then why is there a default for 0 ? 2011-11-30T06:56:49 Nums might just be special, I dunno 2011-11-30T06:56:59 cause it's a literal 2011-11-30T06:57:22 Int and Integer are in the Show type class though 2011-11-30T06:59:57 yeah, I guess numeric literals are just in the Num type class, because that's the only restriction on them 2011-11-30T07:00:03 you could have an unprintable Num type 2011-11-30T07:00:49 like there's a Fractional type class, which is what '5.5' is under before the actual type is inferred 2011-11-30T07:02:52 ok, but looking at haskell code really gives me headaches ^^ 2011-11-30T07:03:18 the syntax is from math notation mostly instead of previous programming langs 2011-11-30T07:03:27 I'm so used to BASIC/Pascal/C like syntaxes. 2011-11-30T07:03:28 pretty much all other languages are just Algol/C :P 2011-11-30T07:04:59 i wonder what the next contest could be like. maybe image recognition? "this is a banana" - no stupid bot, it is a pencil 2011-11-30T07:06:28 everyone loves strategy games, but isn't there more to A.I.? :) 2011-11-30T07:07:06 it has to be something fun to watch 2011-11-30T07:07:39 well I guess it doesn't _have_ to be, but it's nice if it is 2011-11-30T07:07:44 so that excludes anything that just gives an answer 2011-11-30T07:09:31 * antimatroid is pretty keen to stick to simultaneous games :P 2011-11-30T07:09:57 well, simultaneous turns 2011-11-30T07:09:59 and games 2011-11-30T07:10:09 2-player or n-player ? 2011-11-30T07:10:20 i would love to do something simpler like tron again 2011-11-30T07:10:31 you just want to *solve* it :p 2011-11-30T07:10:35 i do :P 2011-11-30T07:10:56 i did study pure maths :P 2011-11-30T07:11:13 i see, then your bias is explained 2011-11-30T07:11:21 neat solutions :) 2011-11-30T07:13:01 i made a path finding/search post for people on the forums before 2011-11-30T07:13:16 hopefully that will convince more people that multi source is the way to go 2011-11-30T07:14:27 btw, i want to share this to any programmer. i quite liked it: http://c2.com/cgi/wiki?CodeSmell 2011-11-30T07:15:04 antimatroid: yeah i wrote a visualizer for that purpose. virtually everyone _did_ use it. pretty cool :D 2011-11-30T07:15:30 mleise: visualiser for what? 2011-11-30T07:15:39 the official one ;) 2011-11-30T07:16:35 for what purpose? :s 2011-11-30T07:16:36 *** HaraKiri has joined #aichallenge 2011-11-30T07:16:37 well i have this path finding idea... but creating the necessary structure is a pain, even for a known map 2011-11-30T07:16:59 what structure? :P 2011-11-30T07:17:50 antimatroid: for the purpose that i have the feeling that i shared something that others like and give me positive feedback on. to explain it a bit technical. 2011-11-30T07:18:17 antimatroid: the structure has changed several times, most recently because of some CPU cache measurements i did ^^ 2011-11-30T07:18:34 i'm confused 2011-11-30T07:18:42 i'm starting to wish i knew more about programming :P 2011-11-30T07:18:52 not sure if i'll get phd funding so also looking at jobs 2011-11-30T07:19:04 basically there are parts of the map that are not considered in path finding unless the start/target is there -> dead ends 2011-11-30T07:19:18 oh 2011-11-30T07:19:22 yeah okay, that's a good idea 2011-11-30T07:19:46 the dead ends or 'cavities' are 'areas' as well as the rest of the map. 2011-11-30T07:19:58 then there are portals 2011-11-30T07:20:09 portals for known paths? 2011-11-30T07:20:20 no 2011-11-30T07:20:27 that's a nice idea though? 2011-11-30T07:20:45 *** olexs has joined #aichallenge 2011-11-30T07:20:49 portals delimit 'convex' areas 2011-11-30T07:21:08 they can be vertical or horizontal 2011-11-30T07:21:22 so rectangles? 2011-11-30T07:21:50 otherwise it's not convex when discrete right? 2011-11-30T07:22:06 if treated in a continuous sense, i've never really thought about convexity in the discrete case :\ 2011-11-30T07:22:16 moving towards a portal - like moving to any point - can have 2 options (like right and up). The portals are placed in a way that I can always move without getting blocked, so either up or right works. 2011-11-30T07:22:55 path finding is pretty fast already if done right 2011-11-30T07:24:13 maybe. but the portals reduce the number of queries onto the map 2011-11-30T07:24:58 add the dead end elimination to it and pathfinding is no longer something you have to cache or use sparingly. 2011-11-30T07:25:25 BenJackson: your new version doesn't defend? 2011-11-30T07:27:07 antimatroid: take a look at this experimental version of multi_hill_maze/maze_02p_02: http://codepad.org/00sViSnL 2011-11-30T07:28:48 It suggests that the whole map will consist of ~100 portals rather than several thousand connected squares 2011-11-30T07:30:40 This was my L1 cache test: http://codepad.org/pp4FRmn8 2011-11-30T07:31:50 It lead to the conclusion that using packed arrays of data vs. pointers to structs/objects (that can be anywhere in memory) is a very big win. 2011-11-30T07:32:42 unless the packed array doesn't fit in cache and the array of pointers does :) 2011-11-30T07:33:11 mleise: no shit sherlock 2011-11-30T07:33:26 thestinger: the pointers have to hold the data, the packed array would have held. where is the gain? 2011-11-30T07:33:31 thestinger: except you pay the price for dereferencing 2011-11-30T07:34:21 dereferencing itself (may be a single instruction anyway) and loading from an arbitrary memory location 2011-11-30T07:34:41 thestinger: what *can* work better than pure array is a segmented array with individual segments' size tailored for computation & cache line size 2011-11-30T07:35:03 or similar structure 2011-11-30T07:35:18 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-11-30T07:35:24 What may not have been obvious is the 'ordered' column in the link I posted 2011-11-30T07:35:26 (Rtree? clustered hashmap?) 2011-11-30T07:35:39 I think std::deque in C++ is a segmented array 2011-11-30T07:35:52 it means that _sequential_ access is always super fast (on a Core 2) 2011-11-30T07:36:34 only data that is randomly accessed better fits into the L1 or L2 cache ;) 2011-11-30T07:36:35 * p_l recalls a CPU that could fit a whole map array in L2 cache 2011-11-30T07:37:03 64MB L2 :3 2011-11-30T07:37:12 what is a map array? 2011-11-30T07:37:36 256*256 bytes=64 KB, that fits into L1 any time ;) 2011-11-30T07:37:44 * avdg would rather try to vectorize the code where possible 2011-11-30T07:37:59 mleise: change bytes into arrays of floats 2011-11-30T07:38:12 uh... JavaScript? 2011-11-30T07:38:39 ah probably some weighting of squares 2011-11-30T07:38:40 that is, map as a 3 dimensional array, with third dimension being used to store local data for influence map 2011-11-30T07:38:53 mleise: nah, Common Lisp 2011-11-30T07:39:15 do you guys collect food if you have no hills? 2011-11-30T07:39:22 antimatroid: no 2011-11-30T07:39:23 it gets you no ants but prevents other bots getting more 2011-11-30T07:39:27 but I rarely know I have no hills 2011-11-30T07:39:58 mleise: I had at one point a design that suggested 256*256*256 array 2011-11-30T07:40:27 (it included some level of historical data) 2011-11-30T07:40:45 avdg: Many algorithms are bandwidth bound (like I/O bound when writing to disk) and don't benefit substantially from paralellization. 2011-11-30T07:41:43 p_l: It is difficult for me to imagine, how to make good use of all the data in 500ms 2011-11-30T07:42:03 mleise: you are not accessing every field on every turn 2011-11-30T07:42:38 for example, some of the elements work as circular buffers 2011-11-30T07:43:31 I thought so. and you index by turn modulo length or something 2011-11-30T07:43:34 *** u_ has joined #aichallenge 2011-11-30T07:43:48 *** jcdnyc has quit IRC (Quit: Leaving) 2011-11-30T07:44:05 yeah, things like that 2011-11-30T07:44:22 *** u__ has joined #aichallenge 2011-11-30T07:44:45 also, some of the updates can be localised, though unfortunately that wreaks havoc on cache due to skipping around 2011-11-30T07:47:19 p_l: do you want to implement my path finder? 2011-11-30T07:47:42 *** g0llum has joined #aichallenge 2011-11-30T07:47:59 *** u_ has quit IRC (Ping timeout: 260 seconds) 2011-11-30T07:47:59 *** u__ is now known as u_ 2011-11-30T07:48:04 It is starting to piss me off more and more. I don't think I'll waste more time on it. 2011-11-30T07:49:20 It probably takes 400 ms every turn to update the data structures, but if everything goes well, the lookup should be amazingly fast :D 2011-11-30T07:49:23 mleise: no thanks, I've got a shitload of unfinished assignments :D 2011-11-30T07:51:06 *** Fandekasp has joined #aichallenge 2011-11-30T07:51:24 *** cyphase has joined #aichallenge 2011-11-30T07:52:05 *** xyxan has joined #aichallenge 2011-11-30T07:52:15 Hello everyone 2011-11-30T07:52:29 i need some info? anyone here 2011-11-30T07:52:57 ...yes 2011-11-30T07:53:03 well 2011-11-30T07:53:26 what is da last date for bot submission? 2011-11-30T07:54:00 I don't know. There may be 2 weeks left. 2011-11-30T07:54:31 yup i heard that it might be around 18 dec 2011-11-30T07:54:38 but i just wanna confirm? 2011-11-30T07:55:11 *** delt0r_ has quit IRC (Ping timeout: 248 seconds) 2011-11-30T07:56:38 *** TheLinker has quit IRC (Quit: Bye) 2011-11-30T07:56:46 *** xyxan has quit IRC (Client Quit) 2011-11-30T08:01:25 *** Gratz has joined #aichallenge 2011-11-30T08:01:30 hi 2011-11-30T08:02:16 he if I deactivate my account will my bot still play in the final tournament? 2011-11-30T08:02:21 deactivate my bot* 2011-11-30T08:06:13 *** ikaros has joined #aichallenge 2011-11-30T08:08:40 *** Ruuhkis has joined #aichallenge 2011-11-30T08:08:47 *** delt0r_ has joined #aichallenge 2011-11-30T08:08:59 Hello guys again! :) Can i make gallup? :D how many times have you COMPLETELY started over with your bots? :) 2011-11-30T08:09:16 once, I switched from python to C++ 2011-11-30T08:09:19 4 or 5 times :) 2011-11-30T08:09:34 I've rewritten most of my bot several times, but that's been incremental 2011-11-30T08:10:06 Just going to start over because wasn't too familiar with this when started this so there's so much to write over that its just better to completely start over :D 2011-11-30T08:10:49 *** juststarted has joined #aichallenge 2011-11-30T08:11:02 lol, my defense code is totally broken 2011-11-30T08:11:36 I'm trying to implement a pathfinding algorithm into my bot, but i cant figure out how to get the graph.. anyone got a tip for me ? 2011-11-30T08:14:26 *** Gratz has quit IRC (Quit: Page closed) 2011-11-30T08:14:42 juststarted: you don't really need a graph, just a way to find connected tiles (nodes) 2011-11-30T08:15:23 usually you would do something a hash table with a node as the key and connected nodes (edges) as the value 2011-11-30T08:15:44 Ok, i found this website http://codethissite.blogspot.com/2011/11/ai-challenge-pathfinding.html now and im doing this in java. but if i convert this to java am i going in the right direction :P ? 2011-11-30T08:15:49 trying to implement A* 2011-11-30T08:15:54 but for this you could just use a 2D array since it's a grid, or you could just find the neighbouring nodes as you go 2011-11-30T08:16:47 juststarted: implement BFS first before you consider A* 2011-11-30T08:17:01 juststarted, gl :) 2011-11-30T08:17:22 if you do a BFS from a target and store the distances from every node to that target as you go, you get paths/distances for every tile to the target 2011-11-30T08:17:31 I have couple of questions about BFS, anyone willing to answer? 2011-11-30T08:17:51 Ok and if i have BFS implemented will it be easier to convert that to A* ? 2011-11-30T08:18:06 you could convert it to A* but they're good for different things 2011-11-30T08:18:21 Ruuhkis: sure :) 2011-11-30T08:18:44 Ok, ill look into BFS first :) thanks! 2011-11-30T08:19:03 *** sigh has quit IRC (Ping timeout: 244 seconds) 2011-11-30T08:19:13 Ruuhkis: you basically have a first-in first-out queue, and you put 1 or more sources into it 2011-11-30T08:19:50 How is c# slower than c++? (considering astar execution) 2011-11-30T08:19:52 then you iterate until the queue is empty, popping a node off the queue and sticking unvisited neighbours of that node onto the queue 2011-11-30T08:20:22 So basically you loop through nodes until you find the target? but what after that? 2011-11-30T08:20:30 there isn't a target 2011-11-30T08:20:35 oh 2011-11-30T08:20:38 thats what i thought! 2011-11-30T08:20:39 BFS traverses the whole graph 2011-11-30T08:20:48 I use it to build distance maps (2d arrays of ints) 2011-11-30T08:20:51 But after I have whole graph "BFSED" what I do? 2011-11-30T08:20:52 http://sprunge.us/PNXg 2011-11-30T08:20:55 Oh by the way, is there a place where i can get bot examples from other people? just to get an idea of how other people make their bots? 2011-11-30T08:21:19 juststarted: we prefer it if people don't share code until after the contest 2011-11-30T08:21:28 Ruuhkis: so then I have distances from every tile to a source, and the shortest paths are implicit 2011-11-30T08:21:29 that way people know how they go relative to the other people who decided to compete 2011-11-30T08:21:38 ok :) i get that 2011-11-30T08:21:50 Ruuhkis: to send an ant on the shortest path to a target you just need to have it go "downhill" on the distance map 2011-11-30T08:21:54 we encourage people to share ideas more generally though :) 2011-11-30T08:22:10 *** ikaros has quit IRC (Read error: Connection reset by peer) 2011-11-30T08:22:24 it's just im quite new to programming, but maybe this project is a little to high reached for me than ;) 2011-11-30T08:22:24 but you have to generate bfs map for each ant? 2011-11-30T08:22:28 no 2011-11-30T08:22:33 from targets across the map 2011-11-30T08:22:51 juststarted: it should be a great place for you to have fun while learning 2011-11-30T08:22:55 so lets say you want to send a bunch of ants to attack an enemy hill 2011-11-30T08:23:02 you might not be able to compete at the top but you can still learn a lot while having fun 2011-11-30T08:23:06 you do a BFS from that hill, marking off the distances in a 2D array 2011-11-30T08:23:18 juststarted: start by learning how to explore the map and collect food using a breadth first search 2011-11-30T08:23:21 ooh 2011-11-30T08:23:24 then you know how far every ant you have is from that hill, and the shortest path to take them there 2011-11-30T08:23:28 then you can use that map for each ant attacking, right? 2011-11-30T08:23:36 yeah :) 2011-11-30T08:23:45 ok, i'll do that :) thanks again 2011-11-30T08:23:46 but on everyaction you generate new map, right? 2011-11-30T08:23:57 well, you can put multiple sources on one map if you want 2011-11-30T08:24:07 and you don't have to start them off at 0 distance 2011-11-30T08:24:47 about exploring the map, can I use BFS with it? so ants wont get stuck on their way to explore new worlds? 2011-11-30T08:25:09 for exploration, you could just stick all unseen locations onto the search queue 2011-11-30T08:25:15 and then run the BFS which makes a distance map 2011-11-30T08:25:25 and you'll end up with shortest paths to any unexplored location 2011-11-30T08:25:58 there are many ways to do it though 2011-11-30T08:26:37 yeah :P 2011-11-30T08:27:31 thanks for help :3 2011-11-30T08:27:48 np 2011-11-30T08:28:01 lots of my ideas have come from the irc channel so I have no problem sharing a few 2011-11-30T08:28:49 I feel you map :3 2011-11-30T08:28:50 lol 2011-11-30T08:28:53 man* 2011-11-30T08:29:18 *** ikaros has joined #aichallenge 2011-11-30T08:29:30 You sent that link "http://sprunge.us/PNXg", you have two targets on it, wont the ants mess up when having two targets? :D 2011-11-30T08:29:42 well, the ants just go "down" on the map 2011-11-30T08:30:19 so they can just pick a direction which leads to a tile with a lower value 2011-11-30T08:30:22 the lower number the more likely they will go, right? 2011-11-30T08:30:25 yeah :) 2011-11-30T08:30:51 I am going to try implement this, but I am curious to test python even if I don't like its syntax, but what can you do about it 2011-11-30T08:32:47 that code you sent was written in python, right? 2011-11-30T08:34:02 you mean this? http://sprunge.us/PNXg 2011-11-30T08:34:42 http://codethissite.blogspot.com/2011/11/ai-challenge-pathfinding.html 2011-11-30T08:34:43 this 2011-11-30T08:34:53 oh, you dind't link that 2011-11-30T08:35:00 didn't* 2011-11-30T08:35:07 that's A*, BFS is a lot simpler 2011-11-30T08:35:47 I know, but isn't that python? :3 And the weird thing is, I can perfectly do A* but didn't understand BFS lol 2011-11-30T08:35:56 Maybe because i thought it was much more similar to A* 2011-11-30T08:36:00 https://en.wikipedia.org/wiki/Breadth-first_search wikipedia has a good explanation and pseudo-code 2011-11-30T08:36:05 I like A* but i want my code to be QUICK 2011-11-30T08:36:33 mm, wikipedia, my favorite resource, especially for school works! 2011-11-30T08:37:30 A* is usually faster for 1 source -> 1 target but you get much more reusable data out of a single BFS (like distances to a target for all tiles) 2011-11-30T08:37:43 Yeah, that's what i heard :) 2011-11-30T08:38:05 my a* implementation worked.. and "performed" on tutorial map but lets think about map with 100 ants? 2011-11-30T08:38:26 *** cyphase has quit IRC (Ping timeout: 255 seconds) 2011-11-30T08:38:27 yeah and the map sizes go up to 200x200 with winding mazes 2011-11-30T08:38:43 but i could have A* for emergency as its more reliable, isn't it? 2011-11-30T08:38:57 well, you can get shortest paths from both 2011-11-30T08:39:44 yeah, but with BFS i wouldn't have to give each ant id or make they have state which got my code into complete mess 2011-11-30T08:40:01 as I didn't know first the ant objects was recreated for each turn :( 2011-11-30T08:54:04 *** kire has joined #aichallenge 2011-11-30T08:57:01 nom 2011-11-30T08:57:08 i had a very good idea just before :D 2011-11-30T08:58:57 nom nom 2011-11-30T08:59:06 going to write down my ant ideas before i forget it all lol 2011-11-30T09:01:56 *** mceier has joined #aichallenge 2011-11-30T09:02:46 still there stinger? 2011-11-30T09:03:37 if you use bfs for your ants and you want other ant to explore and other to attack/collect food do you still use only one map and make them go down? :o 2011-11-30T09:04:47 *** ikaros has quit IRC (Ping timeout: 252 seconds) 2011-11-30T09:08:52 Ruuhkis: no, I make lots of distance maps 2011-11-30T09:09:10 thats what i thought :) 2011-11-30T09:09:37 *** ikaros has joined #aichallenge 2011-11-30T09:09:51 the code is really fast now so speed isn't a problem at all 2011-11-30T09:12:19 *** foRei has joined #aichallenge 2011-11-30T09:17:01 *** magiik has quit IRC (Ping timeout: 240 seconds) 2011-11-30T09:21:53 thestinger, sorry to bother you the 1000th time but as you know, if you step from other side of map to the side wheres no map no more you'll appear the other side, is it important to put it in BFS map creation? 2011-11-30T09:21:56 *** Ox86 has joined #aichallenge 2011-11-30T09:22:11 Ruuhkis: yeah 2011-11-30T09:22:20 that seems complicated :( 2011-11-30T09:22:25 *** cyphase has joined #aichallenge 2011-11-30T09:22:32 the C++ starter bot has a get_location method on State 2011-11-30T09:22:37 or then not! 2011-11-30T09:22:50 oh 2011-11-30T09:22:54 so I just do get_location(current_loc, direction) for each of the 4 directions 2011-11-30T09:23:08 and you give tile and aim as paramet.. yeah! wow, thanks! 2011-11-30T09:23:31 I am using java, as I don't like C++'s syntax (or then I am just java fanboy) 2011-11-30T09:23:48 but there really is many things in C++ that I miss sometimes :D 2011-11-30T09:24:01 Hey guys. I'm kinda new to programming and looking for projects to help develop my skills. Would you say that the aichallenge is good for this as a beginner? Or, is it something you kinda have to be experienced in programming to really get a grasp on? I'm planning on working in Python. 2011-11-30T09:24:27 Yeah, its great for beginner, just don't take too big piece of cake at a time! :) 2011-11-30T09:24:48 that is just my opinion thoughht 2011-11-30T09:25:00 there are lots of little things you can start with, so I think it's great for learning to program 2011-11-30T09:26:28 Agreed, + it's way funnier than other projects :) 2011-11-30T09:28:16 *** mceier has quit IRC (Quit: leaving) 2011-11-30T09:28:19 yeah I was just saying this is a lot fun! :) 2011-11-30T09:30:00 *** olexs has quit IRC (Quit: Leaving.) 2011-11-30T09:30:33 *** Baus has joined #aichallenge 2011-11-30T09:31:22 and with this you get excited like a small kid :3 2011-11-30T09:31:30 (in candy store) 2011-11-30T09:32:41 *** magiik has joined #aichallenge 2011-11-30T09:37:07 *** jcdny has joined #aichallenge 2011-11-30T09:47:56 *** jstrong has joined #aichallenge 2011-11-30T09:48:03 *** jstrong is now known as roflmao 2011-11-30T09:49:46 anyone have had problems with eclipse? :o 2011-11-30T09:52:21 *** kire has quit IRC (Quit: Leaving) 2011-11-30T09:53:36 Hi again, maybe i'm perky but i really want to implement A* but now im just wondering how to maintain the g,h and f scores for tiles (i'm using java) any ideas ? 2011-11-30T09:53:49 for each tile 2011-11-30T09:54:18 yes, but i mean in what kind of datastructure should i save them 2011-11-30T09:54:25 object 2011-11-30T09:54:33 i put mines inside Tile class :) 2011-11-30T09:54:40 so each tile has 'em :P 2011-11-30T09:54:54 hmm ok , that sounds like a great idea ;) ill get to that :) 2011-11-30T09:55:01 good luck :3 2011-11-30T09:55:36 *** tobym_ has quit IRC (Read error: Connection reset by peer) 2011-11-30T09:57:36 *** amstan has joined #aichallenge 2011-11-30T09:57:36 *** ChanServ sets mode: +o amstan 2011-11-30T10:01:03 *** roflmao has quit IRC (Read error: Connection reset by peer) 2011-11-30T10:03:39 http://pastebin.com/zMiQR4Rp does this look right (BFS) 2011-11-30T10:05:44 *** jon1 has quit IRC (Quit: Leaving.) 2011-11-30T10:05:47 Ruuhkis: yeah 2011-11-30T10:10:57 hmm, the visualize with custom commands just gives me a blank page :/ 2011-11-30T10:12:22 meh, missing char *tries to find out what caused it* 2011-11-30T10:19:29 *** xathis has joined #aichallenge 2011-11-30T10:21:10 *** amstan has quit IRC (Ping timeout: 260 seconds) 2011-11-30T10:21:19 *** g0llum has quit IRC (Ping timeout: 248 seconds) 2011-11-30T10:23:29 *** jon1 has joined #aichallenge 2011-11-30T10:27:43 *** amstan has joined #aichallenge 2011-11-30T10:27:43 *** ChanServ sets mode: +o amstan 2011-11-30T10:28:13 could someone hint me which code injects the paths in the js files? 2011-11-30T10:29:34 *** praveen has joined #aichallenge 2011-11-30T10:32:00 avdg: huh? 2011-11-30T10:32:45 every game generates a replay(number).html with that path in it right? 2011-11-30T10:33:04 that path is missing a character 2011-11-30T10:33:29 (I'm using the overlay branch) 2011-11-30T10:34:03 *** olexs has joined #aichallenge 2011-11-30T10:39:56 * avdg believes the bug is in the main repo as well *testing* 2011-11-30T10:42:29 what path? 2011-11-30T10:42:40 the path to the static js files 2011-11-30T10:42:54 will send a bug report after finding out which repo to blame 2011-11-30T10:43:08 everything is amstan's fault :) 2011-11-30T10:43:18 no, he's just caring about it ;--) 2011-11-30T10:44:17 I have to replace the slow bots in my test games I guess :p 2011-11-30T10:44:35 its taking 5 min to play 1 game 2011-11-30T10:45:46 yep, also in main repo 2011-11-30T10:49:54 *** Anilm3 has joined #aichallenge 2011-11-30T10:53:09 *** UncleVasya has joined #aichallenge 2011-11-30T10:54:17 *** olexs1 has joined #aichallenge 2011-11-30T10:55:20 *** olexs has quit IRC (Ping timeout: 252 seconds) 2011-11-30T10:56:56 https://gist.github.com/1409587 2011-11-30T10:59:01 *** iglo has joined #aichallenge 2011-11-30T11:00:17 *** amstan has quit IRC (Ping timeout: 252 seconds) 2011-11-30T11:01:14 *** juststarted_ has joined #aichallenge 2011-11-30T11:02:49 bug submitted 2011-11-30T11:04:22 *** juststarted has quit IRC (Ping timeout: 265 seconds) 2011-11-30T11:08:30 *** JorgeB has joined #aichallenge 2011-11-30T11:10:35 *** treeform has joined #aichallenge 2011-11-30T11:14:21 *** aerique has quit IRC (Quit: ....) 2011-11-30T11:39:59 hi mcstar 2011-11-30T11:40:07 and you are not here now... 2011-11-30T11:40:38 Hi UncleVasya 2011-11-30T11:41:10 hi 2011-11-30T11:42:48 *** besh has joined #aichallenge 2011-11-30T11:42:52 hey UncleVasya 2011-11-30T11:43:02 do you still have your bot testing tool from a while ago? 2011-11-30T11:43:42 olexs1: hi. InsaneMalkavian copypasted some of your conversation to me. 2011-11-30T11:44:00 *** Surya has quit IRC (Ping timeout: 265 seconds) 2011-11-30T11:44:17 I have a version 0.5 from the October 20. 2011-11-30T11:44:45 why don't you publish it on the forum? I'm sure many would find it quite useful 2011-11-30T11:46:38 sadly I have to go now. will you be here later, in about an hour or so? 2011-11-30T11:46:58 yep, we'll talk later. 2011-11-30T11:47:01 ok 2011-11-30T11:47:11 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-30T11:47:52 *** juststarted_ has quit IRC (Ping timeout: 265 seconds) 2011-11-30T11:48:09 *** olexs1 has quit IRC (Quit: Leaving.) 2011-11-30T11:48:19 *** retybok has quit IRC (Quit: leaving) 2011-11-30T11:51:43 how does the "collaboration" in collaborative diffusion arise ? 2011-11-30T11:53:35 if all ants follow the same gradient, wouldn't they be going the same path? I am sure i missed something. 2011-11-30T11:57:05 Nice: http://www.ioccc.org/1998/banks.c :) 2011-11-30T12:00:47 *** jcdny has left #aichallenge ("Leaving") 2011-11-30T12:01:07 *** bugnuts2 has joined #aichallenge 2011-11-30T12:01:48 it don't compile on windows. what does it do ? 2011-11-30T12:03:49 *** praveen has quit IRC (Ping timeout: 265 seconds) 2011-11-30T12:04:06 *** Antimony has joined #aichallenge 2011-11-30T12:05:04 It's a winner's entry for the contest about obfuscating code on c++ language. 2011-11-30T12:05:27 Description says it some sort of the aviasimulator. 2011-11-30T12:06:04 ok. i thought someone wrote an obsfucated ants code 2011-11-30T12:09:38 *** besh has quit IRC (Quit: Page closed) 2011-11-30T12:09:50 * avdg wonders if obfuscation and ant behavior would mix 2011-11-30T12:10:49 *** besh_ has joined #aichallenge 2011-11-30T12:18:14 *** dvladim has joined #aichallenge 2011-11-30T12:20:42 *** kire has joined #aichallenge 2011-11-30T12:21:38 *** Juststarted has joined #aichallenge 2011-11-30T12:25:01 *** ikaros has joined #aichallenge 2011-11-30T12:31:44 *** amstan has joined #aichallenge 2011-11-30T12:31:44 *** ChanServ sets mode: +o amstan 2011-11-30T12:39:03 http://ants.fluxid.pl/replay.5778 2011-11-30T12:39:06 oooops 2011-11-30T12:39:27 *** moises_ has joined #aichallenge 2011-11-30T12:40:08 BenJackson: nice, I didn't realize my ants were forming proper battle lines now 2011-11-30T12:40:31 *** Hexren has joined #aichallenge 2011-11-30T12:40:33 *** Hexren has left #aichallenge 2011-11-30T12:40:38 I merged a bunch of crap together and I'm not really sure what the hell it does now 2011-11-30T12:40:41 i hate it when individual ants decide to charge with nobody following them 2011-11-30T12:40:54 strcat_dense seems to take advantage of a bug I introduced last night in a couple of games 2011-11-30T12:41:48 BenJackson: bhickey.net is just my old bot vs your old bot 2011-11-30T12:42:12 *** arscan has joined #aichallenge 2011-11-30T12:42:19 rwest: oops, and my tcpclient crashed 2011-11-30T12:42:22 * BenJackson restarts it 2011-11-30T12:42:53 I dunno if mine is even running anymore hah 2011-11-30T12:42:57 its on at home 2011-11-30T12:43:06 but you win all the mazes 2011-11-30T12:43:15 since that version fails so hard at mazes 2011-11-30T12:44:15 *** moises_ has quit IRC (Client Quit) 2011-11-30T12:44:22 *** shane___ has joined #aichallenge 2011-11-30T12:44:22 hi 2011-11-30T12:44:31 *** moises_ has joined #aichallenge 2011-11-30T12:47:04 *** moises_ has quit IRC (Client Quit) 2011-11-30T12:47:25 *** moises has joined #aichallenge 2011-11-30T12:47:40 *** raemde_ is now known as raemde 2011-11-30T12:49:23 *** moises has quit IRC (Client Quit) 2011-11-30T12:49:43 *** moises has joined #aichallenge 2011-11-30T12:51:48 http://bhickey.net:2080/replay.915 2011-11-30T12:51:57 lol the food in the bottom middle owned me 2011-11-30T12:52:53 heh 2011-11-30T12:52:57 looks just like combat 2011-11-30T12:52:59 lol yeah I see you. 2011-11-30T12:53:01 now sub in enemy ants 2011-11-30T12:54:24 *** treeform has quit IRC (Remote host closed the connection) 2011-11-30T12:54:57 *** treeform has joined #aichallenge 2011-11-30T12:57:08 *** shane___ has quit IRC (Quit: Page closed) 2011-11-30T12:58:43 hm, bmh doesn't have ranking working 2011-11-30T12:59:01 maybe he needs to drop the java package in beside it? 2011-11-30T12:59:09 yeah, or the php one 2011-11-30T12:59:14 *** Antimony has quit IRC (Ping timeout: 245 seconds) 2011-11-30T13:00:45 *** praveen_ has joined #aichallenge 2011-11-30T13:02:45 *** JorgeB has quit IRC (Quit: Computer has gone to sleep.) 2011-11-30T13:02:54 recently am not seeing much of multi hill maps - any reason? 2011-11-30T13:03:34 because more maps with less hills were added to the game? 2011-11-30T13:04:10 praveen_: there are a whole bunch of cell mazes, so everything else is diluted :) 2011-11-30T13:04:33 and I don't think the multi hill mazes are on Fluxid's server anymore 2011-11-30T13:04:55 Ya I am looking for multi hill map matches and I could not find any 2011-11-30T13:05:33 Even on aichallenge its very rare, thought whether they have removed that fully - so that we dont need to worry about multi hill at all? 2011-11-30T13:05:47 are multihill maps still on official server? 2011-11-30T13:05:56 check http://aichallenge.org/maps.php 2011-11-30T13:06:08 Fluxid: yeah I think janzert said they didn't take any away 2011-11-30T13:06:15 goddamn 2011-11-30T13:06:22 i can add them in a sec 2011-11-30T13:06:41 ew, multi-hill mazes :( 2011-11-30T13:06:53 on the positive side the games finish really quickly 2011-11-30T13:06:56 yeah, there are still mh mazes on official 2011-11-30T13:07:01 one sec 2011-11-30T13:07:33 how can i mass-rename in *nix? 2011-11-30T13:07:33 How do you find those mazes are multihill - any naming convention? 2011-11-30T13:07:38 Fluxid: 'rename' 2011-11-30T13:07:45 just it? 2011-11-30T13:07:49 well 2011-11-30T13:07:51 oh boy 2011-11-30T13:07:52 what do you want to do? 2011-11-30T13:07:57 it really exists 2011-11-30T13:08:00 *** mj41 has quit IRC (Ping timeout: 260 seconds) 2011-11-30T13:09:16 thestinger: are they going to eliminate mh mazes on official? 2011-11-30T13:09:21 dunno 2011-11-30T13:09:31 I think janzert said they are keeping all the maps 2011-11-30T13:11:06 *** jstrong has joined #aichallenge 2011-11-30T13:13:20 *** jon1 has quit IRC (Quit: Leaving.) 2011-11-30T13:13:32 12 games running now... 2011-11-30T13:13:51 i'll restart tcp with multihill maps later 2011-11-30T13:13:59 i don't want to interrupt games 2011-11-30T13:14:18 *** TheLinker has joined #aichallenge 2011-11-30T13:15:00 *** rwest has quit IRC (Quit: Lost terminal) 2011-11-30T13:15:44 that might explain some discrepancies between ants.fluxid.pl and aichallenge.org rankings 2011-11-30T13:16:08 I finally reuploaded :) 2011-11-30T13:16:25 *** rwest has joined #aichallenge 2011-11-30T13:16:25 so the version on the site is the same as strcat_next in fluxid.pl 2011-11-30T13:16:59 I had to cut back on C++11 features a bit because gcc 4.5 failed :( 2011-11-30T13:17:21 *** JorgeB has joined #aichallenge 2011-11-30T13:18:13 cool 2011-11-30T13:21:47 gcc 4.5 doesn't support constexpr (it just knows about the keyword) and gcc 4.6 only sort of implements it 2011-11-30T13:26:25 *** jacob_strauss has joined #aichallenge 2011-11-30T13:27:51 *** Regis has joined #aichallenge 2011-11-30T13:28:53 *** jstrong has quit IRC (Quit: Leaving.) 2011-11-30T13:29:41 *** olexs has joined #aichallenge 2011-11-30T13:31:38 *** UncleVasya has quit IRC (Ping timeout: 244 seconds) 2011-11-30T13:32:58 goddamn, doing 1000x1000 floodfill with priority queue takes forever 2011-11-30T13:33:54 maybe i'll just give up with the idea 2011-11-30T13:33:57 *** Antimony has joined #aichallenge 2011-11-30T13:36:00 1000x1000 with 1 target takes my flood fill 30ms 2011-11-30T13:36:53 thestinger: the simple one or with "making paths longer"? 2011-11-30T13:37:01 simple one 2011-11-30T13:37:05 it's O(n) 2011-11-30T13:37:10 the simple one took 10ms in my case 2011-11-30T13:37:18 2000x2000 is 4x more and that takes 120ms 2011-11-30T13:37:53 but with the problematic one i use double-linked priority queue sorted by distance 2011-11-30T13:38:02 so i pop the shortest ones 2011-11-30T13:38:20 ah 2011-11-30T13:38:37 and this somehow takes forever, but takes 1000000 iterations 2011-11-30T13:38:45 how many targets are you testing with? 2011-11-30T13:38:53 with one 2011-11-30T13:39:18 apart from that second time i run it it segfaults 2011-11-30T13:39:19 argh 2011-11-30T13:40:33 well, I'm actually measuring the whole run time of a program, not sure how much of that is allocation 2011-11-30T13:41:29 i tested allocation, it takes as little as nothing 2011-11-30T13:42:17 at least it is insignifficant as filling takes like 3s 2011-11-30T13:42:29 i must've screwed something hard again 2011-11-30T13:43:26 well by allocation I meant filling it with -1 2011-11-30T13:43:53 and I think the C++ vector constructor is pretty stupid 2011-11-30T13:43:59 ah 2011-11-30T13:44:30 i don't remember how long cleaning took, some 4ms i think 2011-11-30T13:45:25 so it makes about 15ms in total 2011-11-30T13:46:20 *** UncleVasya has joined #aichallenge 2011-11-30T13:47:00 Fluxid: I think the ranking difference is just the variety of opponents 2011-11-30T13:47:28 the mid tiers of aichallenge have some play styles that arent represented well on fluxid 2011-11-30T13:47:44 *** jacob_strauss has quit IRC (Ping timeout: 265 seconds) 2011-11-30T13:48:29 BenJackson: you mean difference between ranking on tcp and on aic? 2011-11-30T13:48:41 *** bhasker has quit IRC (Ping timeout: 244 seconds) 2011-11-30T13:48:55 yeah 2011-11-30T13:58:19 ah, it didn't crash 2011-11-30T13:58:20 good 2011-11-30T13:58:36 i must remember to memset 2011-11-30T14:00:47 shit takes 3,6s 2011-11-30T14:00:51 i'm sad 2011-11-30T14:00:54 wtf 2011-11-30T14:01:00 my new bot is doing badly on the server 2011-11-30T14:01:12 Fluxid: what are you using memset for? 2011-11-30T14:01:38 What am I doing wrong? http://aichallenge.org/visualizer.php?game=148212&user=3845 2011-11-30T14:01:49 thestinger: to zero array of pointers 2011-11-30T14:01:58 are you using C99? 2011-11-30T14:02:04 yeah 2011-11-30T14:02:14 I think you can just use {} to zero initialize in C99 2011-11-30T14:02:25 Antimony: wasting moves by moving back and forth 2011-11-30T14:02:27 or {0} (I forget) 2011-11-30T14:02:46 then attacking Parasprites desipte having few ants 2011-11-30T14:03:02 out of curiosity, what/why are you floodfilling fluxid? 2011-11-30T14:03:12 Fluxid: http://stackoverflow.com/questions/201101/how-to-initialize-an-array-in-c 2011-11-30T14:03:14 thestinger: but i do malloc it 2011-11-30T14:03:21 *** pairofdice has joined #aichallenge 2011-11-30T14:03:30 oh 2011-11-30T14:03:32 use calloc then 2011-11-30T14:03:39 hmmm 2011-11-30T14:03:43 I wonder why it's doing so badly 2011-11-30T14:04:16 arscan: i do height map of many targets at once, and then many ants can move by a gradient descent to the target 2011-11-30T14:04:23 The previous version of my bot was ranked 57th and rising 2011-11-30T14:04:43 i like the term gradient descent, i learned this thanks to this channel :D 2011-11-30T14:04:46 Antimony: I think the aichallenge site has a thermocline 2011-11-30T14:05:34 I don't think the top 250 or so bots would settle the same way if they all got reset 2011-11-30T14:06:26 Fluxid: is this the array you're using for the queue? 2011-11-30T14:06:54 yeah but my old bot was a recent submission 2011-11-30T14:07:01 it worked it's way up over the last week 2011-11-30T14:07:16 no, i use this array to check if node i check is already in the queue. if it is i pop it from the queue and reuse 2011-11-30T14:07:33 i mean at given position 2011-11-30T14:08:10 of course only if this node has been put with larger distance 2011-11-30T14:11:14 oh wait, simple 1000x1000 takes 56ms not 10ms, 10ms took 200x200, sorry 2011-11-30T14:11:33 *** Regis has quit IRC (Read error: Connection reset by peer) 2011-11-30T14:11:35 *** g0llum has joined #aichallenge 2011-11-30T14:11:57 *** Regis has joined #aichallenge 2011-11-30T14:12:09 still, it does not scale, wtf 2011-11-30T14:12:19 I just don't get how my bot could suddenly start sucking so badly 2011-11-30T14:12:25 *** Accoun has quit IRC () 2011-11-30T14:12:28 Fluxid: oh, this is with a FIFO queue or the priority queue? 2011-11-30T14:13:03 mine scales exactly at O(rows * cols) 2011-11-30T14:13:05 56ms takes the simplest fifo 2011-11-30T14:13:14 with 1 source? 2011-11-30T14:13:54 yeah 2011-11-30T14:14:28 what are you using for the queue now? 2011-11-30T14:14:33 like the data structure 2011-11-30T14:14:51 single linked list with reference to tail 2011-11-30T14:14:57 *** dvladim has quit IRC (Quit: Konversation terminated!) 2011-11-30T14:15:13 for priority double linked with tail 2011-11-30T14:15:22 because i need pop faster than O(n) 2011-11-30T14:15:30 i mean any pop from middle 2011-11-30T14:16:00 std::queue uses a std::deque by default, which is a segmented array 2011-11-30T14:16:21 fluxid: I think binary heap is the best for priority queues 2011-11-30T14:16:22 a linked list is probably a lot slower because you keep doing allocation 2011-11-30T14:16:44 besh_: i wanted the simplest approach as start 2011-11-30T14:17:21 java has it. Probably c++ stl too. 2011-11-30T14:17:22 i'll try traversing queue from tail 2011-11-30T14:18:32 Fluxid: using a list makes it take 67ms for 1000x1000 and 269ms for 2000x2000 (compared to 30ms and 120ms with std::queue) 2011-11-30T14:18:43 'list' is a doubly-linked list though 2011-11-30T14:18:53 *** choas has joined #aichallenge 2011-11-30T14:19:05 yeah, double linked are twice as slow 2011-11-30T14:19:42 http://en.cppreference.com/w/cpp/container/forward_list I'll try this and benchmark 2011-11-30T14:20:03 too lazy to make my own or use sys/queue.h :P 2011-11-30T14:20:45 *** Cyndre has quit IRC (Quit: Leaving) 2011-11-30T14:21:18 besh_: i do it in c99, and while doing all this i want to learn something. doing stuff the hard way ;) 2011-11-30T14:22:47 I understand. Me on the other hand have been doing so much c & fortran, now I find java, c# and all those modern languages exciting. 2011-11-30T14:23:02 java is modern? :P 2011-11-30T14:23:11 modern enough for me :) 2011-11-30T14:23:27 it has too much library in it. 2011-11-30T14:24:22 meh, forward_list sucks 2011-11-30T14:26:47 Are you already here olexs? 2011-11-30T14:26:56 fluxid: sorry for hte potentially stupid question -- what is represented in the 1000x1000 that you mentioned (obviously not rows*cols) 2011-11-30T14:27:51 rowsxcols 2011-11-30T14:28:48 *** Accoun has joined #aichallenge 2011-11-30T14:28:52 I believe they said they were capping map size at 200*200 2011-11-30T14:29:08 yeah, that's what confused me 2011-11-30T14:29:15 i thought 200x200 was the max 2011-11-30T14:29:18 rwest: benchmarking stuff 2011-11-30T14:29:23 oh ok 2011-11-30T14:29:25 *** treeform has quit IRC (Remote host closed the connection) 2011-11-30T14:29:39 whats the reason to benchmark more than max? 2011-11-30T14:29:49 I am up to a total of 30 weights 2011-11-30T14:29:51 *** treeform has joined #aichallenge 2011-11-30T14:29:56 it's time to make this bot learn 2011-11-30T14:29:59 getting myself scared with how slow my algorithm is 2011-11-30T14:30:10 :)) 2011-11-30T14:30:11 since I don't have the patients for this tweakign anymor 2011-11-30T14:30:24 my code would be broken if the map would be bigger 2011-11-30T14:30:37 i must have lots of patience since i;m writing c extension for python 2011-11-30T14:30:41 *** chris__0076 has joined #aichallenge 2011-11-30T14:30:47 avdg: my code used to break on really small maps (the bot tester) 2011-11-30T14:31:15 i think i talk too much, i must benchmark this properly first and then whine 2011-11-30T14:32:24 *** JorgeB_ has joined #aichallenge 2011-11-30T14:32:33 Gah, the cell maps are too big for my stupid ants 2011-11-30T14:32:49 They like to stay close to home 2011-11-30T14:33:47 I think everyone has problems on the new maps. maybe due to unintentional tuning for the older ones .. 2011-11-30T14:34:01 my bots do much better on the cell maps than the old maps :P 2011-11-30T14:34:07 mine performed equally poorly on the new and old maps :) 2011-11-30T14:34:08 Oh, I have done no tuning 2011-11-30T14:34:09 *** chris_0076 has quit IRC (Ping timeout: 244 seconds) 2011-11-30T14:34:14 *** JorgeB has quit IRC (Ping timeout: 244 seconds) 2011-11-30T14:34:14 *** JorgeB_ is now known as JorgeB 2011-11-30T14:34:29 on the random walks, my crappy defense code totally screws everything up 2011-11-30T14:34:33 I have no any problems with new maps. 2011-11-30T14:34:48 pariofdice: i don't mean you. My bot f.i seems to cluster his ants without moving.. 2011-11-30T14:35:09 Maybe it's because my bot isn't smart enough to use an advantage of some of them :) 2011-11-30T14:35:21 Yeah, I set the interval to check unseen tiles way too low 2011-11-30T14:35:32 So they oscillate around the hill 2011-11-30T14:36:08 I also had hard-coded numbers that worked on the maps I used to test.. 2011-11-30T14:37:44 Fluxid: maybe use a heap? 2011-11-30T14:37:59 since you want them sorted 2011-11-30T14:41:04 my bot does well on anything but the mazes heh 2011-11-30T14:41:21 now that I run out of ideas, do you think I will get benefit from optimizing ? 2011-11-30T14:41:50 it takes me 100ms to make a move on average 2011-11-30T14:42:01 besh_: why optimize then? 2011-11-30T14:42:14 i just want to hear someone else say it :) 2011-11-30T14:42:26 besh_: unless you plan on making it do something different 2011-11-30T14:43:02 yes, i have major problems with exploration which i hope would give some improvements. 2011-11-30T14:44:08 *** treeform has quit IRC (Remote host closed the connection) 2011-11-30T14:44:25 my explore code is 13 lines hah 2011-11-30T14:44:38 *** treeform has joined #aichallenge 2011-11-30T14:45:27 rwest: mine is 3 :P 2011-11-30T14:45:34 thestinger: cheater! 2011-11-30T14:45:37 13 lines! How do you evaluate its performace with regard to exploration? 2011-11-30T14:45:52 static std::vector> explore_map(state.rows, std::vector(state.cols)); 2011-11-30T14:45:54 make_targets_map(explore_map, state.unseen.begin(), state.unseen.end()); 2011-11-30T14:45:56 map_move(explore_map, state.my_ants, moves); 2011-11-30T14:46:01 .. 2011-11-30T14:46:04 besh_: works very well 2011-11-30T14:46:22 *** TheLinker has quit IRC (Remote host closed the connection) 2011-11-30T14:46:25 can i see some games ? 2011-11-30T14:46:25 I just use map_move for doing everything :P 2011-11-30T14:46:43 thestinger: my explore has a progressing weight 2011-11-30T14:46:45 thestinger: those are headers :) 2011-11-30T14:46:50 dont you count make_targets_map :) 2011-11-30T14:47:06 well, I have a separate one for weighted maps 2011-11-30T14:47:20 does paste.pocoo.org work for any of you? 2011-11-30T14:47:23 searching for food is weighted, general exploring with spare ants at the end of the turn isn't 2011-11-30T14:47:28 Fluxid: it's always down 2011-11-30T14:47:31 http://pastebin.com/jtXX2UEe 2011-11-30T14:47:33 sometimes up, then down again 2011-11-30T14:47:40 sprunge and pastie are nice 2011-11-30T14:47:44 my entire explore code 2011-11-30T14:47:48 xclip -out | curl -F 'sprunge=<-' http://sprunge.us 2011-11-30T14:47:53 that's usually how I paste crap :P 2011-11-30T14:48:11 thestinger: damn, i really like pocoo 2011-11-30T14:48:16 oh, this is a nice snippet 2011-11-30T14:48:24 sprunge uses pygments for highlighting too 2011-11-30T14:48:29 you can pass it a lang option or something 2011-11-30T14:48:36 i like paste.pocoo too, but i don't like the domain 2011-11-30T14:48:57 http://sprunge.us/SQRd awesome 2011-11-30T14:49:34 can also use wgetpaste 2011-11-30T14:49:35 rwest: you loop over hills but you didn't use t inside 2011-11-30T14:50:21 besh_: rofl thats what I broke! 2011-11-30T14:50:36 cool! http://sprunge.us/Qidb 2011-11-30T14:50:39 even htop works 2011-11-30T14:50:51 lol 2011-11-30T14:50:57 remove those 2 lines 2011-11-30T14:50:57 haha 2011-11-30T14:50:58 http://sprunge.us/ yeah, you can do highlighting 2011-11-30T14:51:02 hmm.. 2011-11-30T14:51:03 oh nvm 2011-11-30T14:51:07 is there a way to echo that now? 2011-11-30T14:51:08 that still has no effect 2011-11-30T14:51:12 unless I have no hills 2011-11-30T14:51:28 dunno where that came from, wow haha 2011-11-30T14:51:36 :) 2011-11-30T14:51:49 I must have done a regexp-replace that caught that 2011-11-30T14:51:58 so you choose the highest values no matter how far they are away from your current ants? 2011-11-30T14:52:18 or do you just flood to the invisble area and choose best 2011-11-30T14:52:20 ikaros: I use diffusion 2011-11-30T14:52:24 ahh 2011-11-30T14:52:28 :)) 2011-11-30T14:52:38 so the largest cluster of unexplored ends up being chosen 2011-11-30T14:52:44 any games you can show? i always wonder how diffusion does 2011-11-30T14:52:49 again that strange word... :) 2011-11-30T14:52:52 rwest: what is your bot on fluxid ? 2011-11-30T14:52:55 i wasnt so convinced but probably i was doing it wrong lol 2011-11-30T14:53:02 http://sprunge.us/JIVd?c like that 2011-11-30T14:53:03 UncleVasya, yea call it influence maps 2011-11-30T14:53:11 I've had a bunch of mixed results. 2011-11-30T14:53:25 besh_: let me figure out which one was the latest hah 2011-11-30T14:53:26 you have to add a lot of extra details to make it work well I guess. 2011-11-30T14:53:31 *** peterb has joined #aichallenge 2011-11-30T14:53:48 and that name I've never heard 2011-11-30T14:53:57 *** peterb is now known as Guest16993 2011-11-30T14:53:58 btw Fluxid is the flooding algo you mentioned different from a bfs? 2011-11-30T14:54:17 no 2011-11-30T14:54:24 ok just wondered 2011-11-30T14:54:26 i think 2011-11-30T14:54:32 besh_: rossxwest3, is the newest on fluxid, but it's a lil broken atm 2011-11-30T14:54:38 ikaros: http://ants.fluxid.pl/replay.5063 2011-11-30T14:54:49 picked a winning game for ya haha 2011-11-30T14:55:03 amstan: curl http://sprunge.us/Qidb | less 2011-11-30T14:55:08 maybe 2011-11-30T14:55:25 thestinger: nope 2011-11-30T14:55:27 'less -R' if you don't have that aliased already 2011-11-30T14:55:31 i tried pasting it in a file then catting it 2011-11-30T14:55:38 it wouldn't even show me anything 2011-11-30T14:55:40 -R interprets the color escape codes 2011-11-30T14:55:54 oh 2011-11-30T14:55:59 thx rwest you use diffusion for combat too? 2011-11-30T14:56:06 thestinger: close.. but not there yet 2011-11-30T14:56:08 ikaros: yes 2011-11-30T14:56:14 amstan: newlines are screwed up? 2011-11-30T14:56:39 rwest: yeah it seems to do pretty good. 2011-11-30T14:56:41 i think i screwed up something again, because now the complicated flood takes only 2x more than simple one... 2011-11-30T14:56:48 thestinger: yes 2011-11-30T14:57:48 *** Anilm3 has quit IRC (Quit: Lost terminal) 2011-11-30T14:58:00 amstan: curl http://sprunge.us/Qidb | sed 's/\r/\n/g' | less -R 2011-11-30T14:58:17 thestinger: nice! 2011-11-30T14:58:39 *** Antimony has quit IRC (Ping timeout: 248 seconds) 2011-11-30T14:59:32 Xathis lost his no 1 in fluxid 2011-11-30T14:59:52 it doesn't mean much 2011-11-30T15:00:32 Yeah true, still many wanted to atleast see him come down atleast in tcp server 2011-11-30T15:01:13 amstan: what kind of process name is -:0 o_o 2011-11-30T15:01:26 A childprocess? 2011-11-30T15:01:29 looks like an emote 2011-11-30T15:01:33 *** treeform_ has joined #aichallenge 2011-11-30T15:01:48 Punk kid 2011-11-30T15:02:01 looks like a kubuntu 2011-11-30T15:02:03 Fluxid: I added the o_o :P 2011-11-30T15:02:10 oh 2011-11-30T15:02:15 -:0 still looks like an emote 2011-11-30T15:02:22 yeah I realized that xD 2011-11-30T15:02:39 amstan: kde, but kubuntu or something else? 2011-11-30T15:02:49 upstart 2011-11-30T15:02:51 so kubuntu probably 2011-11-30T15:02:53 thestinger: idk, kdm is the parent process 2011-11-30T15:02:56 Fluxid: yes 2011-11-30T15:03:12 perfect guess 2011-11-30T15:03:28 show me your process and i'll tell you who are you 2011-11-30T15:03:35 *** praveen_ has quit IRC (Quit: Page closed) 2011-11-30T15:03:35 processes 2011-11-30T15:03:41 lol 2011-11-30T15:03:47 *** treeform has quit IRC (Read error: Operation timed out) 2011-11-30T15:03:51 that can't really be said about iotop 2011-11-30T15:04:00 *** Chris_0076 has joined #aichallenge 2011-11-30T15:04:08 Fluxid: http://sprunge.us/dHFF :P 2011-11-30T15:04:33 woah, this is way better! 2011-11-30T15:04:34 oh boy, you're using i3wm 2011-11-30T15:04:50 and unclutter! most awesome program ever 2011-11-30T15:04:53 look what i found: ├─explorer.exe 2011-11-30T15:04:56 hides the mouse cursor after a set idle time 2011-11-30T15:05:03 that's because of ├─gta_sa.exe───7*[{gta_sa.exe}] 2011-11-30T15:05:25 unclutter: hides the mouse in X after a period of inactivity 2011-11-30T15:05:26 lol 2011-11-30T15:05:44 lol wine 2011-11-30T15:06:19 hey.. it runs that process perfectly 2011-11-30T15:07:01 http://sprunge.us/UaPB i just noticed i've forgotten gimp running for few days in bg 2011-11-30T15:07:14 *** chris__0076 has quit IRC (Ping timeout: 252 seconds) 2011-11-30T15:07:30 Fluxid: no bpython :( 2011-11-30T15:08:01 i like bpython but... i forget about it 2011-11-30T15:09:29 lol, consolekit is so silly 2011-11-30T15:09:34 1 thread per tty or whatever 2011-11-30T15:09:55 i like pyrepl more though 2011-11-30T15:10:27 I've been using bpython and ghci to figure out stuff before I code it in C++... 2011-11-30T15:10:32 pyrepl as in not builtin repl but https://bitbucket.org/pypy/pyrepl/overview 2011-11-30T15:10:33 I tried cint but it was awful 2011-11-30T15:11:37 http://root.cern.ch/root/CintCommands.html really bad 2011-11-30T15:11:54 and it's not real C or C++ at all 2011-11-30T15:13:03 *** g0llum has quit IRC (Read error: Connection reset by peer) 2011-11-30T15:13:17 http://sprunge.us/ORDI it works well after few modifications 2011-11-30T15:13:29 *** g0llum has joined #aichallenge 2011-11-30T15:13:41 cstuff.do_ant_stuff(((20,20),)) adds ant at position 20,20 2011-11-30T15:13:44 an ant* 2011-11-30T15:13:54 and i do fill from 10,20 2011-11-30T15:14:43 nice 2011-11-30T15:15:26 it got faster because i search from tail when looking for a place to put node in priority queue 2011-11-30T15:15:55 a little less than 100ms on 1000x1000 is nice imo 2011-11-30T15:16:06 feels good man, now is the time to test it 2011-11-30T15:16:16 in action 2011-11-30T15:16:19 using a priority queue is a good idea 2011-11-30T15:16:47 there's a drop-in template in the STL so I'll try that later :) 2011-11-30T15:17:32 thestinger: if you just fill with no speciall effects priority queue is useless, you always get larger distances so you can always put at the end of queue 2011-11-30T15:18:07 yeah 2011-11-30T15:18:28 I do weighting and stuff though 2011-11-30T15:18:38 :) 2011-11-30T15:18:42 so it has to repaint areas 2011-11-30T15:18:52 827 lines of C code 2011-11-30T15:19:17 http://sprunge.us/ORDI?pycon syntax highlighting like pocoo.org :) 2011-11-30T15:19:49 they should put the numbers in a div though 2011-11-30T15:20:17 yeah, selecting is not nice 2011-11-30T15:20:26 oh god, no.. bad selecting! 2011-11-30T15:20:32 amstan: yeah :( 2011-11-30T15:21:20 http://ompldr.org/vYmozaw 2011-11-30T15:21:26 :TOhtml in vim is nice :) 2011-11-30T15:21:45 *** bhasker has joined #aichallenge 2011-11-30T15:22:21 as long as you don't go to that frontpage you're good 2011-11-30T15:24:23 Fluxid: what distro do you use? 2011-11-30T15:24:51 urxvt, zsh and wmii makes me think Arch :P 2011-11-30T15:26:20 *** AntDroid has quit IRC (Ping timeout: 265 seconds) 2011-11-30T15:26:47 gentoo 2011-11-30T15:27:29 baw, it segfaulted 2011-11-30T15:28:36 it crashed with assertion error when checking if len(input_ants) == len(output_ants) 2011-11-30T15:28:58 after removing assertion it segfaulted, so somehow my c code ate an ant 2011-11-30T15:29:32 enemy ant I hope 2011-11-30T15:29:43 my own :( 2011-11-30T15:30:18 and it is reproducible, at the same turn 2011-11-30T15:31:36 *** epicmonkey has joined #aichallenge 2011-11-30T15:32:10 For last few weeks I face a bug I've never thought I will ever have it. 2011-11-30T15:32:35 Beause it is the first step in any bot. The simplest improvement. 2011-11-30T15:33:10 But now my ants... do step into each other and I cannot understand why :( 2011-11-30T15:34:31 *** besh_ has quit IRC (Quit: Page closed) 2011-11-30T15:37:15 UncleVasya: have you read the tutorial? 2011-11-30T15:37:25 http://ants.fluxid.pl/ranking my bots have all settled around one place now 2011-11-30T15:41:03 Guest16993: This is not because my bot is weak. I broke something and can not find the place. 2011-11-30T15:41:12 woot 2011-11-30T15:41:25 ai-class coffee break turned into a tea break 2011-11-30T15:41:36 and assignment due date is postponed till tomorrow 2011-11-30T15:43:11 Do you use time cutoffs, UncleVasya? 2011-11-30T15:43:34 Maybe one moved and the other didn't because of a cutoff 2011-11-30T15:46:10 Thank you for your guess but this seem not to be a case. 2011-11-30T15:47:32 *** Palmik has quit IRC (Remote host closed the connection) 2011-11-30T15:50:18 it's a bed-time now, bye. 2011-11-30T15:50:18 *** UncleVasya has quit IRC () 2011-11-30T15:52:03 *** ltriant has joined #aichallenge 2011-11-30T15:55:43 *** delt0r_ has quit IRC (Ping timeout: 248 seconds) 2011-11-30T15:56:56 amstan: are you guys open to new ideas for matchmaking queue order? 2011-11-30T15:57:11 I have a suggestion but if it's nailed down for this contest I won't bother... 2011-11-30T15:57:16 *** mikewintermute has quit IRC (Quit: mikewintermute) 2011-11-30T15:58:02 BenJackson: you have to talk to mcleopold 2011-11-30T15:58:14 BenJackson: or janzert 2011-11-30T15:58:33 BenJackson: i'm not sure myself 2011-11-30T15:58:50 ok 2011-11-30T15:58:52 BenJackson: all i know is that if it's a good idea and you can't put it in this contest, it would be a shame not to have in the next one 2011-11-30T15:59:03 so don't get discouraged 2011-11-30T16:00:37 *** MikeG has joined #aichallenge 2011-11-30T16:07:04 I fixed a "bug" that I suppose kinda was a feature and broke my ai.. 2011-11-30T16:07:24 so now I'm going through my code and fixing more unintentional things 2011-11-30T16:07:53 hopefully I'll get control over what my ants do so I can make them do the right thing 2011-11-30T16:08:20 instead of telling them to do something else and hope they end up doing the right thing like they've done so far 2011-11-30T16:09:06 *** delt0r_ has joined #aichallenge 2011-11-30T16:10:33 I would be happy to tell my bots the wrong thing and them to do the right thing instead 2011-11-30T16:14:34 =) 2011-11-30T16:15:40 *** arscan has quit IRC (Ping timeout: 265 seconds) 2011-11-30T16:17:15 Oh, ai-class under Denial of Service 2011-11-30T16:17:22 amstan: http://forums.aichallenge.org/viewtopic.php?f=21&t=2013 2011-11-30T16:17:25 pairofdice: wait, you serious? 2011-11-30T16:17:36 Working to get the site back up, we're dealing with a DOS attack at the moment. 2011-11-30T16:17:55 Why would anyone DOS ai-class 2011-11-30T16:18:08 pairofdice: probably someone didn't have time to submit their assignment, so they just DOSd instead so they don't have to get 0 because of the deadline extension 2011-11-30T16:18:16 Heh 2011-11-30T16:18:35 i'll just enjoy listening to these midi songs on my floppy drive instead 2011-11-30T16:19:36 *** Guest92330 is now known as lnx 2011-11-30T16:22:36 I think my server host got ddosed earlier tonight too 2011-11-30T16:22:43 maybe someone are testing out a botnet 2011-11-30T16:22:53 *** Ruuhkis has quit IRC (Ping timeout: 265 seconds) 2011-11-30T16:33:44 *** mleise has quit IRC (Quit: Leaving.) 2011-11-30T16:36:16 *** TheLinker has joined #aichallenge 2011-11-30T16:42:03 *** Juststarted has quit IRC (Quit: Page closed) 2011-11-30T16:42:35 *** HaraKiri has quit IRC () 2011-11-30T16:56:50 *** besh has joined #aichallenge 2011-11-30T16:57:35 *** Antimony has joined #aichallenge 2011-11-30T16:58:59 *** sigh has joined #aichallenge 2011-11-30T17:00:35 *** treeform_ has quit IRC (Remote host closed the connection) 2011-11-30T17:02:42 *** sigh has quit IRC (Remote host closed the connection) 2011-11-30T17:05:22 *** Fandekasp has quit IRC (Ping timeout: 244 seconds) 2011-11-30T17:07:49 *** foRei has quit IRC (Read error: Connection reset by peer) 2011-11-30T17:10:37 http://paste.aichallenge.org/DtzmV/ duh 2011-11-30T17:11:06 nice 2011-11-30T17:11:31 *** choas has quit IRC (Ping timeout: 252 seconds) 2011-11-30T17:11:56 does that old version have any combat? 2011-11-30T17:13:31 nope 2011-11-30T17:13:33 ;D 2011-11-30T17:14:31 it generally sucks, but i've uploaded it after night of coding, on third day of challenge and it got into 20 place anyway, lol 2011-11-30T17:14:45 Not bad 2011-11-30T17:14:56 i put all food into flood file there and that's why ants go for food in groups, lol 2011-11-30T17:15:04 fill* 2011-11-30T17:15:26 with current one i get strange artifacts when ants enter "=" in the middle 2011-11-30T17:15:33 the start to dance in place 2011-11-30T17:15:36 you should play on your server again :P 2011-11-30T17:15:52 nah, it still segfaults 2011-11-30T17:15:57 valgrind 2011-11-30T17:16:01 somehow it didn't in this game 2011-11-30T17:16:07 hm 2011-11-30T17:16:18 can you run it with valgrind since it's a cpython ext? 2011-11-30T17:16:31 I guess you can run the python interpreter with valgrind? 2011-11-30T17:16:45 it apparently depends on what i write in python. even i add print after filling it can stop segfaulting... 2011-11-30T17:16:49 yeah 2011-11-30T17:17:13 gcc also has some neat stuff you can compile with that will do bounds checking etc. 2011-11-30T17:17:14 i'll try 2011-11-30T17:17:22 oh? 2011-11-30T17:17:28 http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging 2011-11-30T17:17:49 clang has some awesome stuff too 2011-11-30T17:18:16 there's clang_analyzer which does static analysis and can find some null pointer dereferences etc. 2011-11-30T17:18:28 will it work with shared lib? 2011-11-30T17:19:01 I think so 2011-11-30T17:19:26 it just uses an env variable 2011-11-30T17:19:57 i see 2011-11-30T17:21:02 *** besh has quit IRC (Quit: Page closed) 2011-11-30T17:21:15 and ofc enable all the nice warnings if you aren't already 2011-11-30T17:21:58 i'm running -pedantic -Wall 2011-11-30T17:22:10 i'll try -Wextra 2011-11-30T17:22:18 yeah, -Wextra adds a lot 2011-11-30T17:23:17 -Wall warnings should basically always be fixed, the -Wextra ones are sometimes picky (but easy to silence without turning them off) 2011-11-30T17:23:45 uh, unused parameters and missing initializer in pythons stuff 2011-11-30T17:23:57 *** kire has quit IRC (Remote host closed the connection) 2011-11-30T17:24:02 nothing else in Wextra 2011-11-30T17:24:16 okay, valgrind then 2011-11-30T17:24:51 make sure to build with -g 2011-11-30T17:24:57 for debugging symbols 2011-11-30T17:25:25 yup 2011-11-30T17:25:32 and -O0? 2011-11-30T17:25:34 no 2011-11-30T17:25:36 -O2 2011-11-30T17:26:01 turning off optimization might stop the bug from happening :) 2011-11-30T17:26:04 gdb whined that some variables were optimized out when tried to print them 2011-11-30T17:26:14 but ok, let's see 2011-11-30T17:28:35 well, -O0 is probably best for gdb 2011-11-30T17:28:40 aww, valgrind is whining about function redirection 2011-11-30T17:28:46 but not really for valgrind 2011-11-30T17:28:55 so i need to recompile glibc? 2011-11-30T17:28:57 *** AntDroid has joined #aichallenge 2011-11-30T17:29:05 with debug symbols? 2011-11-30T17:29:06 *** moises has quit IRC (Remote host closed the connection) 2011-11-30T17:29:26 or just disable stripping 2011-11-30T17:29:39 maybe try gdb first 2011-11-30T17:29:47 http://gcc.gnu.org/bugs/segfault.html that looks like a good tutorial 2011-11-30T17:29:53 I've tried gdb before and it was awful tho 2011-11-30T17:30:17 i can fix if segfaults in my code 2011-11-30T17:30:42 but i can't work it out if it crashes in other code because i scribbled over the memory 2011-11-30T17:30:49 oh 2011-11-30T17:31:00 in this case it crashes after i exit my code 2011-11-30T17:31:01 :| 2011-11-30T17:31:20 maybe it is possible with gdb but my brain is too smal for this 2011-11-30T17:31:21 then yes, you scribbled over memory :) 2011-11-30T17:31:28 libmudflap might be good for finding that 2011-11-30T17:31:39 how do you say that in english? 2011-11-30T17:31:54 in polish i heard they use term "scribbling over memory" 2011-11-30T17:32:01 drawing or something 2011-11-30T17:32:04 that's how I'd say it in English 2011-11-30T17:32:07 clobbering? 2011-11-30T17:32:16 scribble implies a reckless disregard 2011-11-30T17:32:40 ;) 2011-11-30T17:33:03 I'm terrible at using C strings 2011-11-30T17:33:18 so I always have to use valgrind non-stop when I'm using them... 2011-11-30T17:33:33 at least you're not doing that :P 2011-11-30T17:33:41 dealing with strings in C is terrible 2011-11-30T17:33:53 that's why some of the worst C (or C++) I've ever seen is in SNMP agents 2011-11-30T17:34:02 making me twitch just thinking about it 2011-11-30T17:34:17 http://man.cat-v.org/plan_9/2/string 2011-11-30T17:34:46 it's a shame the plan9 C stuff didn't make it into ISO C 2011-11-30T17:34:51 lots of it is pretty nice 2011-11-30T17:35:05 like UTF-8 ofc, which was made for plan9 2011-11-30T17:35:07 i'll try mudflap but also recompile glibc and python with ggdb and nostrip 2011-11-30T17:35:14 <3 gentoo 2011-11-30T17:35:31 if you're crashing inside glibc the bug is probably in your code 2011-11-30T17:35:40 and knowing where it crashes in glibc probably won't help you 2011-11-30T17:35:50 ;) 2011-11-30T17:35:55 usually in that case knowing WHEN it happens is more useful 2011-11-30T17:35:59 because it's likely you just did it 2011-11-30T17:36:02 but valgrind whines about glibc 2011-11-30T17:36:08 if there's some glibc call (eg print) that crashes, start calling it from everywhere 2011-11-30T17:36:12 to narrow it down 2011-11-30T17:36:23 ah 2011-11-30T17:37:07 given that you wrote a relatively small amount of C code and integrated with Python I'd guess it's more likely that you are managing your own small amount of memory properly 2011-11-30T17:37:17 but you're messing up the python refs and causing python to step on something 2011-11-30T17:38:00 i'll see 2011-11-30T17:38:06 *** moises has joined #aichallenge 2011-11-30T17:38:06 what mudflap options should i use? 2011-11-30T17:38:41 and how does it report? in stderr? 2011-11-30T17:39:48 I think so 2011-11-30T17:40:30 I think you need -mode-check at the very least 2011-11-30T17:41:40 *** Guest16993 has quit IRC (Ping timeout: 265 seconds) 2011-11-30T17:42:00 it timeouts now :D 2011-11-30T17:44:03 it produced 3719948 lines of logs in first turn and it didn't even start second.. 2011-11-30T17:44:31 *** Antimony has quit IRC (Ping timeout: 248 seconds) 2011-11-30T17:44:36 lol 2011-11-30T17:45:30 1865719 violations.... 2011-11-30T17:46:28 at least it does something :D 2011-11-30T17:46:38 it sure does 2011-11-30T17:47:01 actually it reports on each variable = something 2011-11-30T17:47:36 sometimes even twice in one line, oh boy 2011-11-30T17:50:21 *** besh has joined #aichallenge 2011-11-30T17:51:09 heh, it's much better than valgrind 2011-11-30T17:52:44 it is hard for me to say how good it is because i won't ever be able to go through those logs 2011-11-30T17:52:53 maybe it's because python itse;f isn't mudflapped? 2011-11-30T17:53:14 dunno, I don't think that would be it 2011-11-30T17:53:25 *** antimatroid has quit IRC (Ping timeout: 244 seconds) 2011-11-30T17:53:29 oh 2011-11-30T17:53:39 are you compiling the whole thing with -fmudflap? 2011-11-30T17:53:52 like it links against python or whatever? 2011-11-30T17:54:57 I've never done cpython extensions before 2011-11-30T17:56:19 yeah, i compiled and linked with mudflap, but i don't need to link with python 2011-11-30T17:58:31 *** g0llum has quit IRC (Read error: Connection reset by peer) 2011-11-30T17:58:49 *** epicmonkey has quit IRC (Ping timeout: 245 seconds) 2011-11-30T17:59:40 Fluxid: well, you can make it abort on the first error 2011-11-30T17:59:51 they could all be valid errors 2011-11-30T18:00:23 first error is on python ref increment 2011-11-30T18:00:46 at the very beginning of module initialization 2011-11-30T18:00:46 :| 2011-11-30T18:00:53 running valgrind now 2011-11-30T18:02:21 all the fun you get with C :) 2011-11-30T18:03:11 *** MikeG has quit IRC (Quit: Page closed) 2011-11-30T18:06:42 only one report within my c file 2011-11-30T18:08:04 does it always segfault? 2011-11-30T18:08:09 no :| 2011-11-30T18:08:13 oh 2011-11-30T18:08:15 that's the problem 2011-11-30T18:08:17 i can't get it to segfault now 2011-11-30T18:08:36 it segfaulted at turn 141 before but after editing python code it stopped 2011-11-30T18:08:38 ship it 2011-11-30T18:08:51 BenJackson: you want the code? 2011-11-30T18:08:57 *** Antimony has joined #aichallenge 2011-11-30T18:09:07 Fluxid: no that's just a software engineering joke 2011-11-30T18:09:12 ah 2011-11-30T18:09:14 ;) 2011-11-30T18:09:15 "ship it" as in "ship the product" 2011-11-30T18:09:20 got it 2011-11-30T18:09:41 it works... usually, so it's okay, right? 2011-11-30T18:09:41 heh, you could just release note it 2011-11-30T18:09:45 "sometimes crashes on turn 141" 2011-11-30T18:09:49 ;) 2011-11-30T18:10:06 removes /usr when uninstalling 2011-11-30T18:10:09 make a segfault handler that moves your remaining ants into a frowny face 2011-11-30T18:10:22 sigsegv is uncatchable :( 2011-11-30T18:10:30 it's totally catchable 2011-11-30T18:10:37 seriously? 2011-11-30T18:10:52 yes, but you can't *ignore* it 2011-11-30T18:10:57 ah! 2011-11-30T18:11:03 so what are you going to do in the handler is the question 2011-11-30T18:11:22 can i do a longjump? 2011-11-30T18:11:25 yes 2011-11-30T18:11:29 just to make things worse 2011-11-30T18:11:57 fixing your bug is probably better 2011-11-30T18:12:02 but when i do a longjump then it's like i ignored it, right? 2011-11-30T18:12:15 what I mean is that SIG_IGN won't ignore segv 2011-11-30T18:12:22 ok 2011-11-30T18:12:37 it will act like SIG_DFL 2011-11-30T18:12:45 but if you catch it you can longjmp 2011-11-30T18:12:50 Fluxid: separate out all your C code and use ctypes :P 2011-11-30T18:13:04 it's like MMU fault handling: 2011-11-30T18:13:11 when you return from SEGV the instruction that faulted will restart 2011-11-30T18:13:17 if it still faults it will SEGV again 2011-11-30T18:13:36 but if you longjmp that will change pc and that instruction won't matter 2011-11-30T18:13:42 thestinger: how will it work, when my own almost-pure-c code is buggy... it will still scribble over memory ;P 2011-11-30T18:13:56 if it's pure C you'll actually be able to debug it 2011-11-30T18:14:16 I would just use C++ 2011-11-30T18:14:19 wait I *did* just use C++ 2011-11-30T18:14:29 yeah 2011-11-30T18:14:56 with STL types the high level C++ that would replace your python isn't that much worse than python 2011-11-30T18:16:03 BenJackson: it's like learning new language, i don't want to play with c++ and its libraries now 2011-11-30T18:16:21 *** Jak_o_Shadows has joined #aichallenge 2011-11-30T18:16:29 also writing c extensions for python is kind of knowledge which may help me at work soon 2011-11-30T18:16:59 what's the symptom again? I came in late 2011-11-30T18:17:04 libmudflap will definitely find the problem if you can separate out the C code into a program 2011-11-30T18:17:08 BenJackson: segfault 2011-11-30T18:17:13 you invoke your C extension a bunch and then your program crashes NOT in your extension? 2011-11-30T18:17:33 yeah 2011-11-30T18:17:52 and you're sure of your python value ref/deref? 2011-11-30T18:18:20 I guess one trick (if you can repro) is to take out all deref and accept the memory leak 2011-11-30T18:18:31 if it doesn't crash then start putting them back 2011-11-30T18:18:48 else make sure all your malloc/free are balanced and your mallocs are big enough 2011-11-30T18:18:50 the problem is that his program doesn't always crash 2011-11-30T18:18:52 :P 2011-11-30T18:19:11 worst kind of bug ever 2011-11-30T18:19:13 I would hope that if he saves his input stream (and uses the random seed) he could find some input that crashes 2011-11-30T18:19:27 what was that? a schroedinger bug? 2011-11-30T18:19:47 Fluxid: https://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug 2011-11-30T18:19:53 ah 2011-11-30T18:19:56 well, it stopped when you tried debugging right? 2011-11-30T18:23:05 ok, asserton error. after i removed the asserttion it started to segfault 2011-11-30T18:24:02 aaand it segfaulted at the next turn 2011-11-30T18:24:13 can you valgrind python? 2011-11-30T18:24:29 oh never mind 2011-11-30T18:24:38 i did it once, i'll do it again until it segfaults 2011-11-30T18:25:15 I'm trying to make my bot psychic, but for now it's acting more psychotic 2011-11-30T18:26:01 my bot is climbing back up to rank 20 :), I bet it will take a while though 2011-11-30T18:31:33 thestinger: once I resubmitted once it was easier to just fix bugs and resubmit 2011-11-30T18:31:36 no real rank to give up 2011-11-30T18:31:46 bugs? what are those :P 2011-11-30T18:31:59 they're just features I haven't discovered yet 2011-11-30T18:32:09 what I'm really optimizing is the process of not taking random losses in the first few games 2011-11-30T18:32:24 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-30T18:32:29 http://aichallenge.org/profile.php?user=2255 2011-11-30T18:32:35 1st place 4 times so far :) 2011-11-30T18:33:02 I think your bot is just too smart and it's rebelling 2011-11-30T18:33:25 cause it's awesome on the tcp server 2011-11-30T18:34:37 *** Seeker` has quit IRC (Ping timeout: 258 seconds) 2011-11-30T18:36:00 *** ikaros has joined #aichallenge 2011-11-30T18:36:04 anyway, guys, thanks for your help 2011-11-30T18:36:26 4th game for my version 9 was a 4 player with xathis 2011-11-30T18:36:37 i'm slowly going to sleep, it's 00:31 here and i need to get up early 2011-11-30T18:41:49 *** yoden has joined #aichallenge 2011-11-30T18:42:57 *** Surya has joined #aichallenge 2011-11-30T18:43:28 God, i'm pissed! I can't make my exploration system work :( 4 hours I'm on it and it still sucks 2011-11-30T18:44:00 Hi everyone btw :) 2011-11-30T18:44:18 it's usually not a good idea to program while pissed 2011-11-30T18:44:26 a bit tipsy can work 2011-11-30T18:44:59 Ummh, how do you import the java starter into netbeans 2011-11-30T18:45:00 use version control ;-) 2011-11-30T18:45:56 sure, but when you sober up you're always tempted to try to fix the bugs you created the night before, rather than throw away all the crappy work 2011-11-30T18:46:27 :) 2011-11-30T18:46:31 Surya, 4 hours is nothing :O 2011-11-30T18:46:55 *** Accoun has quit IRC (Ping timeout: 248 seconds) 2011-11-30T18:46:57 I know, I'm sure I spent more than 40 hours on my bot 2011-11-30T18:47:17 But I really want to have a good exploration system before implementing attack moves 2011-11-30T18:47:22 And I can't make it right 2011-11-30T18:47:56 So far I'm sending my ants where the visibility is low 2011-11-30T18:48:00 i cant too and i spent way more time :) 2011-11-30T18:48:20 But I enconter patterns, and my ants start doing cycles 2011-11-30T18:49:44 hmm, my psychotic bot is actually performing quite well in local testing 2011-11-30T18:49:55 I think I'll upload it :) 2011-11-30T18:51:16 Any precious advice for my cycling exploring crappy strategy? :) 2011-11-30T18:51:28 Umm, fix it? 2011-11-30T18:51:44 Hum ok 2011-11-30T18:52:00 Second time I ask for help here, second time this joke. I get it ;) 2011-11-30T18:52:09 :x 2011-11-30T18:52:19 Hwo can anyone answer such a question 2011-11-30T18:52:21 How 2011-11-30T18:52:32 No pb, ur right, I got to fix that. 2011-11-30T18:52:46 Hum, I assume some people tried my strategy 2011-11-30T18:53:03 So maybe 4 people will come and say "hey it sucks because blablabla" 2011-11-30T18:53:04 you need to explain more accurately 2011-11-30T18:53:08 what you are doing 2011-11-30T18:53:10 *** Accoun has joined #aichallenge 2011-11-30T18:53:31 what means "where visibility is low" 2011-11-30T18:53:55 Ok, every turn I create a "visibility map". Every tile contains a "score" which is how many ants see it 2011-11-30T18:54:09 When I have done all the food/attacking hills order 2011-11-30T18:54:16 I go into the exploration part 2011-11-30T18:54:54 For every ant, I check on 8 different position( North -north/east - east ...) 2011-11-30T18:55:19 X tiles from my ant, and I send it to the less visible spot 2011-11-30T18:55:38 The problem is that I encounter cycles 2011-11-30T18:55:44 they probably jitter? 2011-11-30T18:55:46 because of all the water 2011-11-30T18:56:24 Yeah, the jitter exactly 2011-11-30T18:56:27 they* 2011-11-30T18:56:58 instead of only looking at the neighborhood8 you could try to search in a larger radius or flood until you find invisible area 2011-11-30T18:57:19 but i think only searching the direct neighborhood is bad if there are many ants around 2011-11-30T18:57:34 I look the radius + 1 so far 2011-11-30T18:57:42 oh ok 2011-11-30T18:57:54 and if I encounter a water, I check an available spot around it 2011-11-30T18:57:56 but still 2011-11-30T18:58:00 my ants jitter 2011-11-30T18:58:08 and can't really explore properly 2011-11-30T18:58:09 you only consider invisible tiles or visibles too? 2011-11-30T18:58:25 visibles as "earth" 2011-11-30T18:58:39 visible + invisible 2011-11-30T18:59:19 (I answered too quickly, I consider both: if it's invisible I say it's not a water Tile) 2011-11-30T18:59:26 CStuffError: Invalid input data!!! Out of bounds!!! 2011-11-30T18:59:29 I NAILED IT! 2011-11-30T18:59:33 :D 2011-11-30T18:59:36 valgrind helped <3 2011-11-30T18:59:54 at turn i've got out of bounds write 113 2011-11-30T19:00:09 *** Seeker` has joined #aichallenge 2011-11-30T19:00:09 at turn 113* 2011-11-30T19:00:15 *** Seeker` has quit IRC (Changing host) 2011-11-30T19:00:15 *** Seeker` has joined #aichallenge 2011-11-30T19:00:15 *** Seeker` has joined #aichallenge 2011-11-30T19:00:16 *** amstan is now known as amstan_ 2011-11-30T19:00:16 only one worker active at aichallenge... >800m to next game -.- 2011-11-30T19:00:23 *** amstan_ is now known as amstan 2011-11-30T19:00:24 *** iglo has quit IRC (Read error: Connection reset by peer) 2011-11-30T19:00:31 what you can do is increase all tiles you see each turn by one and then do a bfs search from all invisble tiles to your ants or vice versa.. depending on how you have everything set up 2011-11-30T19:01:05 I'm using only Astar so far 2011-11-30T19:01:46 (thank you for being interested btw :)) 2011-11-30T19:01:58 well.. i encountered similar problems :) 2011-11-30T19:02:14 ok :) 2011-11-30T19:02:17 and i tried a lot of different approaches.. some were ok but not totally satisfieng 2011-11-30T19:02:34 satisfying* 2011-11-30T19:02:49 add me to that list with unsatisfactory exploration. 2011-11-30T19:03:04 hehe 2011-11-30T19:03:13 :) 2011-11-30T19:03:19 *** olexs has quit IRC (Quit: Leaving.) 2011-11-30T19:03:31 Surya: i tried what you described i.e going to the nearest radius + 1 least visited square 2011-11-30T19:03:34 there is one algo in the forums which does a great job 2011-11-30T19:04:05 the exploration was great.. but the distribution of ants sucked :) 2011-11-30T19:04:20 guess i should have it combined with something different 2011-11-30T19:04:22 besh: And you stopped? Why? 2011-11-30T19:04:39 *** Seeker` has quit IRC (Ping timeout: 245 seconds) 2011-11-30T19:05:13 I had similar problems and also my ants cluster for some reason 2011-11-30T19:06:01 besh: Without spoling too much, towards which solution did you go? Something similar or you just erased everything and built up a whole new system? 2011-11-30T19:06:55 Ok what i tried was to keep the number of visits of each square. 2011-11-30T19:07:18 Then send my ants to the least visited square (visible or not) 2011-11-30T19:07:57 getNearestLeastVistiedTileAtViewRadiusPlusOne 2011-11-30T19:08:29 but in one turn many ants move to same square and they did not distriubute that well 2011-11-30T19:09:00 Yeah, we got the same pb 2011-11-30T19:09:28 On some map, it works well, but when it's too much "mazy" it gets bad 2011-11-30T19:13:31 *** Regis has quit IRC (Quit: ... mains libres) 2011-11-30T19:14:37 *** xathis has quit IRC (Ping timeout: 240 seconds) 2011-11-30T19:15:58 *** Seeker` has joined #aichallenge 2011-11-30T19:15:58 *** Seeker` has joined #aichallenge 2011-11-30T19:15:58 *** Seeker` has joined #aichallenge 2011-11-30T19:17:04 Ahh, got it into netbeans, built and running 2011-11-30T19:17:10 Surya: what i use now is first try to send one ant (the nearest one) per unvisited tile. I use a coarse grid with a spacing of view_radius / 2. 2011-11-30T19:17:41 My ants try to put themselves to maximize view 2011-11-30T19:19:24 Anyway I think you got your answer. No one has good ideas here :) 2011-11-30T19:19:41 Ok, it's time to bed. Maybe an awesome idea will come up during the night. Anyway thank you very much besh for your attention :) 2011-11-30T19:19:46 I was kinda depressed :) 2011-11-30T19:20:07 cya 2011-11-30T19:20:15 *** Surya has quit IRC (Quit: Page closed) 2011-11-30T19:20:34 *** xathis has joined #aichallenge 2011-11-30T19:24:37 *** Seeker` has quit IRC (Ping timeout: 240 seconds) 2011-11-30T19:26:40 I don't understand how the collaboration in "collaborative diffusion" work. Here is a description http://scalablegamedesign.cs.colorado.edu/wiki/Collaborative_Diffusion 2011-11-30T19:27:45 It says "The fact that the two ghosts split up is not a coincidence. They collaborate with each other". Can anyone explain how that happens if the ghosts follow the gradient. 2011-11-30T19:27:59 *** ThiagoRRamos has joined #aichallenge 2011-11-30T19:28:11 *** ThiagoRRamos has joined #aichallenge 2011-11-30T19:28:15 Hey 2011-11-30T19:30:14 That description makes it sound like magic is happening. The Pacman is just sending a hill for the ghosts to climb and the ghosts are sending an anti-hill 2011-11-30T19:30:41 The diffusion is basically a BFS, it just average the surrounding tiles 2011-11-30T19:31:03 So it takes a few iterations for it to spread 2011-11-30T19:31:29 *** Garf has quit IRC (Quit: Make a new plan, Stan!) 2011-11-30T19:31:30 *** Seeker` has joined #aichallenge 2011-11-30T19:31:39 yes I understnad that but it says the 5 ghosts go 5 different ways to nail down the pacman 2011-11-30T19:31:55 Yeah, that's the anti-hill part 2011-11-30T19:32:00 I would expect , with A* f.i, there would only be one optimal path (the middle one problably) 2011-11-30T19:32:13 It's not A* 2011-11-30T19:32:51 yes, so what is so different that introduces this collaborative phenomenon. That is what i miss. 2011-11-30T19:32:55 The ghosts repel each other 2011-11-30T19:32:57 pairofdice: What do you mean by average? 2011-11-30T19:33:54 I mean, the values of the tiles is 0.2 * (tiles surrounding it) or something 2011-11-30T19:33:55 With a simple diffusion scheme (bfs) there is one path. How do they repel ? Is there an extra step 2011-11-30T19:34:22 BFS is not diffusion 2011-11-30T19:34:58 The Pacman has a value of let's say 1000 that gets diffused over the map 2011-11-30T19:35:00 pairdfdice: Hmm, I see. then I made it different :P 2011-11-30T19:35:20 The ghosts have a value of -200 that gets diffused 2011-11-30T19:35:54 Or something pretty similar 2011-11-30T19:35:59 Next game should be within 1333 minutes. 2011-11-30T19:36:02 yaaaay.. 2011-11-30T19:37:37 If only the pacman diffuses its value then it would be bfs (i.e with many iterations). Does the diffusion values from the ghosts and pacman add up or something ? 2011-11-30T19:37:38 oh well, time to get some sleep 2011-11-30T19:37:52 besh, the ghosts block the scent 2011-11-30T19:38:09 so behind the there is nothing to propagate further 2011-11-30T19:38:13 them* 2011-11-30T19:38:16 god im tired 2011-11-30T19:38:29 so it is like water tiles. 2011-11-30T19:38:32 *** Jak_o_Shadows has quit IRC (Read error: Connection reset by peer) 2011-11-30T19:38:54 yea kinda 2011-11-30T19:39:33 could be like pairofdice said.. that you just have an anti value to decrease the scent but not totally kill it 2011-11-30T19:39:33 Oh so they bring down the gradient ? 2011-11-30T19:39:41 Yea 2011-11-30T19:39:48 That should show in the animations 2011-11-30T19:39:51 Or pictures 2011-11-30T19:39:57 finally got it.. why didn't they say so ? :) 2011-11-30T19:39:59 but the value is to small i guess :P 2011-11-30T19:40:19 im just testing diffusion again for exploration 2011-11-30T19:40:24 But if you completely block it then if you have ants in a corridor... 2011-11-30T19:40:38 and im wondering if i could replace all diffusion steps by one large bfs 2011-11-30T19:41:04 would be more accurate and probably even faster 2011-11-30T19:41:08 *** grwip has quit IRC (Ping timeout: 252 seconds) 2011-11-30T19:41:09 yeap so ghosts are sort of sinks of scent. 2011-11-30T19:41:16 while pacman is the source 2011-11-30T19:41:16 hehe yea 2011-11-30T19:41:21 ghosts smell 2011-11-30T19:41:23 =) 2011-11-30T19:42:05 well 2011-11-30T19:42:09 good night 2011-11-30T19:42:13 *** ikaros has quit IRC (Quit: Ex-Chat) 2011-11-30T19:45:10 I'm trying to implement that diffusion technique right now too. I like this better, explains more fully http://www.cs.colorado.edu/~ralex/papers/PDF/OOPSLA06antiobjects.pdf 2011-11-30T19:45:54 A heat map for their visualizations would have been much preferrable to this 3d crap though. 2011-11-30T19:46:48 yeah heat map would have been better. I now see the dents in the plot that shows the depressions at the ghosts on the 3d plots. 2011-11-30T19:47:57 *** Antvolution has joined #aichallenge 2011-11-30T19:48:24 *** Anilm3 has joined #aichallenge 2011-11-30T19:48:42 the servers are imploding 2011-11-30T19:49:37 yep 2011-11-30T19:50:34 *** TheLinker has quit IRC (Remote host closed the connection) 2011-11-30T19:54:06 did the EC2 spot price jump again? 2011-11-30T19:54:46 BenJackson: it seems like only 2 workers are online for real 2011-11-30T19:54:52 so it's an amazon thing 2011-11-30T19:55:15 repinging to check 2011-11-30T19:56:03 BenJackson: 6 workers 2011-11-30T19:56:09 i think it was an update 2011-11-30T19:56:49 *** moises has quit IRC (Remote host closed the connection) 2011-11-30T19:57:21 *** chris__0076 has joined #aichallenge 2011-11-30T20:00:31 *** Chris_0076 has quit IRC (Ping timeout: 244 seconds) 2011-11-30T20:03:11 *** bhasker has quit IRC (Ping timeout: 248 seconds) 2011-11-30T20:04:54 *** Accoun has quit IRC (Read error: Connection reset by peer) 2011-11-30T20:05:51 *** Accoun has joined #aichallenge 2011-11-30T20:10:10 *** babalui has joined #aichallenge 2011-11-30T20:11:29 hello 2011-11-30T20:12:10 hi 2011-11-30T20:12:32 hi 2011-11-30T20:16:53 *** Seeker` has quit IRC (Ping timeout: 252 seconds) 2011-11-30T20:17:03 *** Anilm3 has quit IRC (Quit: leaving) 2011-11-30T20:17:20 *** Anilm3 has joined #aichallenge 2011-11-30T20:18:28 *** LouisMartin has joined #aichallenge 2011-11-30T20:20:16 does the viewers have some hotkeys? I think I remember having read about that somewhere .. 2011-11-30T20:21:10 *** Kommander has joined #aichallenge 2011-11-30T20:21:42 LouisMartin: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/visualizer/js/Util.js#L202 2011-11-30T20:21:46 per example, some keys to toggle more visual information on the grid.. 2011-11-30T20:21:51 thanks amstan 2011-11-30T20:22:00 LouisMartin: no idea what they do, feel free to look around 2011-11-30T20:23:08 *** Anilm3 has quit IRC (Ping timeout: 255 seconds) 2011-11-30T20:27:42 *** Seeker` has joined #aichallenge 2011-11-30T20:27:42 *** Seeker` has joined #aichallenge 2011-11-30T20:27:42 *** Seeker` has joined #aichallenge 2011-11-30T20:29:05 cursor left/right 2011-11-30T20:29:11 oop 2011-11-30T20:29:13 was paged up 2011-11-30T20:32:12 *** Seeker` has quit IRC (Ping timeout: 244 seconds) 2011-11-30T20:38:41 *** ChrisH_ has joined #aichallenge 2011-11-30T20:44:16 aichallenge: McLeopold epsilon * rc27d834 / (ants/mapgen/cell_maze.py ants/mapgen/map.py): cleanup and scar tissue removal of map generator - http://git.io/slm6vw 2011-11-30T20:44:16 aichallenge: McLeopold epsilon * r9163488 / (10 files in 5 dirs): Merge branch 'epsilon' of github.com:aichallenge/aichallenge into epsilon - http://git.io/GxpYVA 2011-11-30T20:46:04 *** Seeker` has joined #aichallenge 2011-11-30T20:46:04 *** Seeker` has joined #aichallenge 2011-11-30T20:46:05 *** Seeker` has joined #aichallenge 2011-11-30T20:48:58 *** besh has quit IRC (Quit: Page closed) 2011-11-30T20:53:28 *** antimatroid has joined #aichallenge 2011-11-30T20:58:19 anyone know what's going on with the workers? 2011-11-30T21:07:23 *** AntDroid_ has joined #aichallenge 2011-11-30T21:07:44 *** Seeker` has quit IRC (Ping timeout: 248 seconds) 2011-11-30T21:13:04 *** Seeker` has joined #aichallenge 2011-11-30T21:17:33 *** Seeker` has quit IRC (Ping timeout: 252 seconds) 2011-11-30T21:21:33 *** raemde_ has joined #aichallenge 2011-11-30T21:21:35 so i made the mistake of starting this in python 2011-11-30T21:22:05 *** Conorach has quit IRC (Ping timeout: 260 seconds) 2011-11-30T21:22:06 and now i realized it's way slow 2011-11-30T21:22:22 Kommander: Me too. 2011-11-30T21:22:25 Indeed 2011-11-30T21:22:55 A bit late to get to know another language for the competition. A bit over two weeks left 2011-11-30T21:23:08 Although I just discovered numpy, which is letting me do some stuff much faster. 2011-11-30T21:23:12 on the brightside, my completely unoptimized code takes 8000ms to run, but battle pretty well 2011-11-30T21:25:01 *** raemde has quit IRC (Ping timeout: 240 seconds) 2011-11-30T21:25:32 *** JorgeB has quit IRC (Quit: Textual IRC Client: http://www.textualapp.com/) 2011-11-30T21:25:54 maybe if i just do everything in C it will magically speed up... hopefully 2011-11-30T21:26:08 Probably not enough 2011-11-30T21:26:31 :( 2011-11-30T21:27:07 Though wouldn't surprise me if it did 2011-11-30T21:27:41 *** raemde_ is now known as raemde 2011-11-30T21:28:18 c++ is running faster than I expected, so I think it will improve 2011-11-30T21:28:19 Kommander: Most of the big speed gains I've made over the course of developing my bot have been due to finding clever ways to avoid recalculating the same thing over and over or avoid doing redundant or logically useless work. 2011-11-30T21:28:24 *** Seeker` has joined #aichallenge 2011-11-30T21:28:25 *** Seeker` has joined #aichallenge 2011-11-30T21:28:25 *** Seeker` has joined #aichallenge 2011-11-30T21:28:50 its at least 1000 times faster than my js implementation atm 2011-11-30T21:29:28 and at almost no memory 2011-11-30T21:29:29 ChrisH, yeah, your bot seems to have trouble with time on the official server 2011-11-30T21:30:52 * antimatroid looks forward to seeing what information people have calculated to make use of 2011-11-30T21:30:59 pairofdice: that depends on how you look at it. It a late game scenario with lots of combat and lots of ants there is a lot of work to do, so my bot will do the most important work first. 2011-11-30T21:31:10 but I'm sure it could be faster. 2011-11-30T21:31:11 i've found a bunch of neat little tricks to get some information which i've kept private and i imagine others have done the same 2011-11-30T21:31:41 ChrisH_ is that why you sit on your hills in the end game e.g. http://aichallenge.org/visualizer.php?game=145336&user=10 2011-11-30T21:31:48 still, my current code is several orders of magnitude faster than when I started, which just means I can put more features in. 2011-11-30T21:31:49 i've got some fairly complicated searching things going on too 2011-11-30T21:32:20 bugnuts: not entirely, I also stop moving ants near the end of the game if their target is too far away to get there in the remaining turns. 2011-11-30T21:32:25 * avdg has 1 goto he can't get rid of :/ 2011-11-30T21:33:06 at least in a clean way 2011-11-30T21:33:28 bugnuts: so on a map like that an ant on a hill far from the action knows it can't make it there in the last few turns, so what's the point. 2011-11-30T21:33:28 *** TheLinker has joined #aichallenge 2011-11-30T21:33:30 yeah although in that game the nearest hill is 84 steps from yours but you stop about 98 turns before the end 2011-11-30T21:33:49 Ahh, that explains it 2011-11-30T21:35:11 bugnuts: which hills? 2011-11-30T21:35:34 73,11 to 73,90 2011-11-30T21:36:14 *** Seeker` has quit IRC (Ping timeout: 260 seconds) 2011-11-30T21:39:12 bugnuts: well, looking at that game more carefully I think it is probably time constrained, lots of long paths to compute and combat and a moderate ant count. 2011-11-30T21:39:40 the good news (IMHO) is that my code handled it gracefully without timing out like it used to :) 2011-11-30T21:39:56 *** Antvolution has left #aichallenge 2011-11-30T21:40:21 ah ok. I was looking at the games you accumulated ants in the hives since I think that is probably a good end game defense 2011-11-30T21:40:25 telnet miku.acm.uiuc.edu 2011-11-30T21:40:32 ChrisH_: people thought you were going to shoort above xathis yesterday :P 2011-11-30T21:40:35 at least in multi hill maps 2011-11-30T21:40:35 ChrisH_: which language are you using? 2011-11-30T21:40:41 go 2011-11-30T21:41:56 antimatroid: it kinda looked like it, didn't it, then I lost to xathis in a 1-on-1 game, but part of the reason for that loss was a known bug in my combat code (which I'm fixing tonight), even so, I don't know if I would have won without that bug, maybe pulled off a draw though 2011-11-30T21:42:40 ChrisH_: i'm curious about what people are doing outside of combat 2011-11-30T21:42:54 ie. are you willing to share what you do generally for food collection? 2011-11-30T21:43:43 i iteratively collect non-collected food with an a* search from all movable ants to all uncollected food, then if an ant can't possibly land in a battle with an enemy on it's path I'll even reuse it next to it's collected food item and just note when it'll be available to move 2011-11-30T21:43:50 sure, in fact you can read the IRC logs from a few weeks ago where I was discussing my path finding ideas here. 2011-11-30T21:43:59 reading irc logs sucks :P 2011-11-30T21:44:12 its* 2011-11-30T21:44:17 *** jstrong has joined #aichallenge 2011-11-30T21:44:18 *** McLeopold has joined #aichallenge 2011-11-30T21:44:21 searching is a bit better than reading ;-) 2011-11-30T21:44:37 but you have to both search and then read then :P 2011-11-30T21:44:57 at the time I had a nicely working multi-source BFS technique and was trying out A* to see how it would compare and was a bit surprised to learn that A* was slower. 2011-11-30T21:45:17 what? 2011-11-30T21:45:19 so I was sharing that surprise here 2011-11-30T21:45:32 I wonder how a modified A* would do 2011-11-30T21:45:42 any details on that? 2011-11-30T21:45:47 A* should just be a directed bfs 2011-11-30T21:45:47 i've found it faster when collecting food 2011-11-30T21:45:59 yeah, it turned out that my heuristic function cost exceeded the saving due to fewer neighbor expansions. 2011-11-30T21:46:05 McLeopold: my heuristic function with multiple targets leaves me a bit iffy 2011-11-30T21:46:07 so the F calc was taking more time than searching extra nodes? 2011-11-30T21:46:18 yep 2011-11-30T21:46:25 ChrisH_: was this with multi target or single target? 2011-11-30T21:46:40 multi source BFS looking for multi target 2011-11-30T21:46:46 antimatroid: I need a fast nearest neighbors query 2011-11-30T21:46:52 i wont use multi target a* with lots of targets, but i'm still convinced it's worth it for food collection 2011-11-30T21:47:11 depends how you collect food i guess 2011-11-30T21:47:24 will you send more than one ant to the same food item? 2011-11-30T21:47:35 https://github.com/aichallenge/aichallenge/blob/epsilon/ants/mapgen/cell_maze.py#L309 2011-11-30T21:47:39 I throw all the food, enemy hills, exploration points and anything else I'm looking for into the same search 2011-11-30T21:47:48 oh 2011-11-30T21:47:54 antimatroid: I'm checking distances to every point, not just the closest 2011-11-30T21:47:55 then just bfs from the targets and move an ant as you come across it? 2011-11-30T21:48:02 *** jstrong is now known as roflmao 2011-11-30T21:48:03 that's my really fast just move all the ants at the end code 2011-11-30T21:48:57 i find doing that from the targets is better otherwise you really want to order your ants based on their closest target to move them surely? otherwise collision avoidance would be a pita 2011-11-30T21:49:26 McLeopold: what about a bfs from all targets to get closest target information across the board? 2011-11-30T21:49:27 then I bfs to the first ant, record the match, and do some tricks to erase the expanded nodes for that source and restart my BFS to get the next match, repeat until either sources or targets are exhausted 2011-11-30T21:49:59 *** Antimony has quit IRC (Ping timeout: 255 seconds) 2011-11-30T21:50:01 ahhh, i think i implemented something like that 2011-11-30T21:50:29 when you move an ant you stop using their search nodes and add in new search nodes for any ants that can move into the positions that moved ant searched into first move? 2011-11-30T21:50:49 i didn't like that :P 2011-11-30T21:50:52 if that's what you mean 2011-11-30T21:50:52 and the other trick is that I remember where ants will be in the future so they can satisfy multiple nearby targets, and i don't send three ants for food when one will due 2011-11-30T21:51:01 yeah i do that 2011-11-30T21:51:36 not sure what you mean by "stop using their search nodes" 2011-11-30T21:52:07 antimatroid: I just need eulidian distance, not path distance 2011-11-30T21:52:25 say you remove a source, then you don't want to use any search items you pull of the queue that were from that ant 2011-11-30T21:52:32 if you want to continue using hte same search queue 2011-11-30T21:53:02 McLeopold: shouldn't that be reasonably fast? 2011-11-30T21:53:45 oh, yeah, I remove them from the queue and also erase the data about completed nodes from the map so a more distant target can refill that area. 2011-11-30T21:55:22 also, I'm not using just a BFS, but it's really a Djikstra's because I use node traversal costs to control some behaviors 2011-11-30T21:58:33 plus there is the idea that a target may need more than one ant to go there to satisfy the current strategy 2011-11-30T21:58:50 and several other customizations 2011-11-30T22:00:00 when moving towards ants do you just sent an ant to where they are now? or where you think they might be in the future? 2011-11-30T22:00:01 but when I tried A* I found that computing the board wrapped Manhattan distance at every step of the search was just too costly 2011-11-30T22:00:09 send* 2011-11-30T22:00:19 you mean towards enemy ants? 2011-11-30T22:00:23 yeah 2011-11-30T22:00:56 that's a big hint towards one of the best parts of my bot :P 2011-11-30T22:01:28 I don't want to give away too much, because that was the big improvement that got me to the top 10, but I will say that I assume they are headed towards my nearest hill 2011-11-30T22:02:21 and if not, that's ok, the hills are what's important, right 2011-11-30T22:02:33 *** Guest63595 has joined #aichallenge 2011-11-30T22:03:29 ChrisH_: yeah, i'm doing that :) 2011-11-30T22:03:39 i think i just gave it away, but oh well :P 2011-11-30T22:04:08 i don't think you are alone in thinking along those lines. 2011-11-30T22:04:40 i know, but i doubt everyone has implemented it 2011-11-30T22:04:46 true 2011-11-30T22:05:01 or done it well 2011-11-30T22:05:18 yeah i worked out how to do it better than i previously was last night 2011-11-30T22:05:27 good 2011-11-30T22:09:26 *** AntDroid has quit IRC (Ping timeout: 265 seconds) 2011-11-30T22:11:40 *** Guest63595 has quit IRC (Ping timeout: 260 seconds) 2011-11-30T22:12:02 Not enough tiiiime 2011-11-30T22:19:45 *** xathis has quit IRC () 2011-11-30T22:25:48 janzer, mcleopold: It seems like the workers are behaving a bit eradic ATM are there ec2 pricing or supply issues right now? 2011-11-30T22:26:00 janzert: It seems like the workers are behaving a bit eradic ATM are there ec2 pricing or supply issues right now? 2011-11-30T22:30:27 *** deltree_ has joined #aichallenge 2011-11-30T22:40:12 *** Antimony has joined #aichallenge 2011-11-30T22:48:34 *** rohant has joined #aichallenge 2011-11-30T22:50:20 *** rohant has quit IRC (Client Quit) 2011-11-30T23:04:23 *** Seeker`_ has joined #aichallenge 2011-11-30T23:04:43 *** Cowbandit has joined #aichallenge 2011-11-30T23:07:38 pricing 2011-11-30T23:07:56 which is the public face of supply of course :) 2011-11-30T23:08:56 *** Cowbandit has quit IRC (Client Quit) 2011-11-30T23:13:15 janzert: ok, just wondering 2011-11-30T23:13:18 janzert: thanks 2011-11-30T23:15:01 *** ThiagoRRamos has quit IRC (Ping timeout: 240 seconds) 2011-11-30T23:18:26 :) 2011-11-30T23:19:44 *** avdg has quit IRC (Quit: Leaving.) 2011-11-30T23:22:57 lol, C++ 2011-11-30T23:23:44 maybe I should just give up on 80 col long lines 2011-11-30T23:24:53 I did by accident 2011-11-30T23:25:02 I happened to start workign on this challenge in a wide window 2011-11-30T23:25:05 now I'm too lazy to fix it 2011-11-30T23:26:32 thestinger: 80 cols is not enough 2011-11-30T23:26:49 some of my lines end up on two and i have a 24" wide screen monitor :P 2011-11-30T23:26:55 anyone else playing skyrim? because Lydia is a fucking tool 2011-11-30T23:28:07 *** rohant has joined #aichallenge 2011-11-30T23:28:22 antimatroid: set_radius_info(my_ants, vision_offsets, [this](Location loc) { grid[loc.row][loc.col].last_seen = turn; }); 2011-11-30T23:28:31 what's up with the servers?? 2011-11-30T23:28:32 I have like 5 of those function calls in a row 2011-11-30T23:28:39 do not want to break them onto multiple lines :P 2011-11-30T23:29:43 thestinger: why are you doing grid[loc.row][loc.col]? overload [] for Location! 2011-11-30T23:30:13 neat 2011-11-30T23:33:26 I didn't realize it did closures like that 2011-11-30T23:34:11 antimatroid: the stock grid is a vector> 2011-11-30T23:34:21 I did override it because I made a custom grid 2011-11-30T23:34:26 *** rohantt has joined #aichallenge 2011-11-30T23:34:33 antimatroid: that's not an overload 2011-11-30T23:34:37 it's a lambda 2011-11-30T23:34:54 he meant grid[loc] 2011-11-30T23:34:58 BenJackson: i wrote the c++ bot, i know, but that was to keep it simple for people :P 2011-11-30T23:35:11 good to know, I'll quit badmouthing it ;-) 2011-11-30T23:35:19 bad mouth it all you want :) 2011-11-30T23:35:28 *** rohant has quit IRC (Ping timeout: 265 seconds) 2011-11-30T23:35:37 oh, you want me to overload [] :P 2011-11-30T23:35:39 although i don't care about the windows timer stuff, screw windows :P 2011-11-30T23:35:43 thestinger: yeah 2011-11-30T23:35:58 grid[loc].stuff is way better that grid[loc.row][loc.col].stuff 2011-11-30T23:36:03 yeah 2011-11-30T23:36:57 BenJackson: lambdas actually mix really well with the other stuff in C++ 2011-11-30T23:37:29 anyone knows why the servers died all of a sudden? 2011-11-30T23:38:00 letting them capture references is awesome 2011-11-30T23:38:56 if you capture a shared_ptr with a lambda, does that increase the ref count of the ptr? 2011-11-30T23:40:33 not sure, I'm not actually returning functions anywhere though 2011-11-30T23:42:00 i have a ridiculous queue of pauseable functions 2011-11-30T23:42:17 because i'm trying to cache things at the start when there's lots of free CPU 2011-11-30T23:42:19 :( 2011-11-30T23:42:31 I considered that 2011-11-30T23:42:36 but I wasn't sure what I'd... pre-do 2011-11-30T23:42:55 i'm just caching ordered radial lists for each square 2011-11-30T23:43:05 so i can ask for "what can see here" or "what can attack here" 2011-11-30T23:43:33 it's not usually a too slow, unless ec2 is being slower than usual 2011-11-30T23:43:41 which is like 15% of the time I guess 2011-11-30T23:44:41 *** deltree_ has quit IRC (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]) 2011-11-30T23:46:02 *** Seeker`_ has quit IRC (Ping timeout: 244 seconds) 2011-11-30T23:46:51 *** Falcon256 has joined #aichallenge 2011-11-30T23:47:43 hey guys, im somewhat new to the competition.. is "Next game should be within 1734 minutes." normal? 2011-11-30T23:47:56 Falcon256: no, server is buttered up 2011-11-30T23:48:07 Okay, thanks. 2011-11-30T23:48:11 well it's not entirely abnormal 2011-11-30T23:48:17 just much worse than usual 2011-11-30T23:48:31 well, because the main server is lagged out like every other day :P 2011-11-30T23:48:40 TCP servers much better for testing 2011-11-30T23:48:56 http://aichallenge.org/visualizer.php?game=149018&user=3473&turn=288 2011-11-30T23:49:05 Hmmm, is there a guide for using a TCP server? 2011-11-30T23:49:08 sooo should I code up "simultaneous kill" for those cases?? 2011-11-30T23:49:20 Falcon256: they all have "howto" on the front page 2011-11-30T23:49:26 ants.fluxid.pl, tcpants.com 2011-11-30T23:49:28 http://ants.fluxid.pl/howto 2011-11-30T23:49:38 Cool, Thanks. 2011-11-30T23:49:39 *** Kommander has quit IRC (Ping timeout: 244 seconds) 2011-11-30T23:49:51 *** TheLinker has quit IRC (Quit: Bye) 2011-11-30T23:51:20 *** CowTipperVirus has joined #aichallenge 2011-11-30T23:53:34 *** delt0r_ has quit IRC (Read error: Operation timed out) 2011-11-30T23:54:21 *** u_ has quit IRC (Quit: u_) 2011-11-30T23:54:34 Allrighty.. I now have ants running on fluxid.. That wasen't as hard as I was expecting. Thanks for the help. 2011-11-30T23:55:55 *** Kommander has joined #aichallenge 2011-11-30T23:56:31 Falcon256: good luck :) 2011-11-30T23:56:40 the main downside to fluxid is that everyone on there is super pro :( 2011-11-30T23:56:43 there's another one if you find that level of competition too high to learn from 2011-11-30T23:57:42 well, I would rather die badly then watch ants run over eachother.. we will see how it goes. 2011-11-30T23:59:38 why is the list for dead ants in the python package using defaultdict?