2011-03-03T00:00:38 sigh: hm? 2011-03-03T00:00:45 sigh: oh the thing on the haskell reddit? 2011-03-03T00:01:00 * antimatroid goes looking 2011-03-03T00:01:29 jmcarthur: yeah... that's pretty much what I remember of my reddit browsing today 2011-03-03T00:01:34 i'm not really sure about that job... 2011-03-03T00:01:50 I'm always suspicious when they don't give any details 2011-03-03T00:01:55 upfront 2011-03-03T00:01:57 well i got details over the phone 2011-03-03T00:02:05 doesn't sound fishy or anything 2011-03-03T00:02:10 just not sure it's my cup of tea 2011-03-03T00:02:21 link? 2011-03-03T00:02:26 reddit is failing me 2011-03-03T00:02:33 and you aren't using jmcarthur as your username 2011-03-03T00:02:37 i just get the impression that the guy doesn't really do the interviewing and hiring process very often 2011-03-03T00:02:38 http://www.reddit.com/r/haskell/comments/fvwol/haskell_job_offer/ 2011-03-03T00:02:53 antimatroid: yeah it's an antiquated username of mine instead. geezusfreeek 2011-03-03T00:03:16 jmcarthur: yeah, interviewing can be hard... I had to do it for the first time a couple weeks ago 2011-03-03T00:03:24 still have no idea what I'm doing 2011-03-03T00:03:28 yeah and it's also weird that it was called a "job offer," but the guy isn't a native english speaker 2011-03-03T00:03:34 *** Mathnerd314 has quit IRC (Read error: Connection reset by peer) 2011-03-03T00:04:30 i'm flying to new york for an interview soon. i just know i'm going to hate new york though 2011-03-03T00:04:43 what's wrong with new york? 2011-03-03T00:04:44 ergh, queues 2011-03-03T00:04:55 i'm averse to participating in queues 2011-03-03T00:04:59 haha 2011-03-03T00:05:02 also talking to a company in portland. the work sounds less interesting, but the area much nicer 2011-03-03T00:05:13 i would rather do something equivalent that takes longer but doesn't require me to wait in a queue 2011-03-03T00:05:23 o_O 2011-03-03T00:05:34 i've only ever seen good things about portland, anything bad was an attempt at keeping people away 2011-03-03T00:05:38 seen/heard 2011-03-03T00:05:51 * antimatroid is an expert on the us :P 2011-03-03T00:05:55 ha 2011-03-03T00:06:42 i like pretty scenery and isolated living. hard to find in new york :P 2011-03-03T00:07:01 portland can offer that with a short commute to a city with the conveniences that come with it 2011-03-03T00:07:18 i'm with you on that 2011-03-03T00:07:20 :) 2011-03-03T00:07:29 i say "isolated" but i really just mean "not like sardines" 2011-03-03T00:07:48 sigh's going away from that possibly :P 2011-03-03T00:08:00 well, melbourne isn't quite, but sydneys worse 2011-03-03T00:08:08 melbourne is nice and relaxed 2011-03-03T00:08:33 i get money thanks to krudd next week 2011-03-03T00:08:40 like $1050, and again next semester aha 2011-03-03T00:09:24 why thanks to krudd? 2011-03-03T00:09:54 payments to students he set up 2011-03-03T00:10:02 got 650 or so each semester last year 2011-03-03T00:10:13 part of that stimulus package 2011-03-03T00:10:17 ah, i see 2011-03-03T00:10:18 pretty stupid imo, but whatever 2011-03-03T00:10:27 i want free monies :( 2011-03-03T00:10:49 i worked for the first time in like 6 months yesterday :| 2011-03-03T00:10:51 that was weird 2011-03-03T00:10:54 yes, stimulate all the students to buy alcohol 2011-03-03T00:11:02 what work? 2011-03-03T00:11:16 same research stuff for an eco professor 2011-03-03T00:11:25 i get to use c++ :D 2011-03-03T00:11:27 i hate GAUSS 2011-03-03T00:11:29 and matlab 2011-03-03T00:11:45 we've finally talked her into letting us use c++ (the other half that was antimatroid) 2011-03-03T00:11:45 ah, that sort of whork is pretty much like being in a class 2011-03-03T00:11:49 *work 2011-03-03T00:12:05 yeah, it's good experience, good pay and extremely felxible 2011-03-03T00:12:07 antimatroid? 2011-03-03T00:12:07 perfect students job 2011-03-03T00:12:24 well i made the username before tron, but i worked with a friend for tron 2011-03-03T00:12:49 he's the smarter version of me 2011-03-03T00:12:53 oh, now I see what you are saying 2011-03-03T00:25:53 *** Frontier has quit IRC (Quit: Leaving.) 2011-03-03T00:27:05 portland? we had a lot of ppl in this contest from portland 2011-03-03T00:27:11 greghaynes is from there 2011-03-03T00:46:15 *** delt0r_ has joined #aichallenge 2011-03-03T00:48:27 *** delt0r___ has quit IRC (Ping timeout: 276 seconds) 2011-03-03T01:38:52 *** sigh has quit IRC (Ping timeout: 240 seconds) 2011-03-03T01:46:11 *** Palmik has joined #aichallenge 2011-03-03T02:04:10 *** chris__0076 has joined #aichallenge 2011-03-03T02:06:56 :) 2011-03-03T02:07:05 Yep, a lot of people from portland state uni were in it 2011-03-03T02:07:05 *** chris___0076 has quit IRC (Ping timeout: 246 seconds) 2011-03-03T02:11:55 again this time greghaynes ?:D 2011-03-03T02:40:16 *** DanielVF has quit IRC (Quit: Leaving...) 2011-03-03T02:41:34 *** sigh has joined #aichallenge 2011-03-03T02:43:56 *** DanielVF has joined #aichallenge 2011-03-03T02:53:08 *** Meatkat has quit IRC (Ping timeout: 260 seconds) 2011-03-03T02:53:25 *** Kingpin13 has joined #aichallenge 2011-03-03T02:58:42 *** Meatkat has joined #aichallenge 2011-03-03T02:59:31 oh shit 2011-03-03T02:59:35 i might have to move back to ff 2011-03-03T03:23:12 *** chemuduguntar has joined #aichallenge 2011-03-03T03:28:09 *** mceier has joined #aichallenge 2011-03-03T03:30:08 hello, is there a how to on the requirements of a starter package? 2011-03-03T03:31:50 chemuduguntar: sort of 2011-03-03T03:32:00 https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-03-03T03:32:02 there's a game spec 2011-03-03T03:32:20 https://github.com/aichallenge/aichallenge/tree/epsilon/ants/bots there's some bots 2011-03-03T03:32:31 i think the cpp is the most up to date one, feel free to ask me questions 2011-03-03T03:32:36 antimatroid, cool 2011-03-03T03:32:45 i am interested in making one for scheme 2011-03-03T03:36:27 chemuduguntar: (your name is long) it's already been claimed to make the official one for scheme, but you're welcome to make your own 2011-03-03T03:36:50 also note that the specs aren't finalised yet, but i'm fairly confident the io format for bots wont change anymore 2011-03-03T03:36:59 at least nothing structurally signiciant, maybe a word or two 2011-03-03T03:37:04 ah ok 2011-03-03T03:37:45 is it any particular version of scheme? 2011-03-03T03:38:00 i noticed that someone is making one for lisp on the wiki 2011-03-03T03:38:26 there was a long conversation about that that i didn't really pay attention to 2011-03-03T03:38:41 pyro-: what did you guys decide about scheme version? 2011-03-03T03:39:53 amstan: do you know what was decided about scheme? 2011-03-03T03:40:04 i assume since pyro has started ( i think) you guys decided something 2011-03-03T03:44:29 moin moin antimatroid 2011-03-03T03:44:50 i started making a scheme starter pack for mit-scheme 9.0.1 2011-03-03T03:45:02 pyro-, cool 2011-03-03T03:45:15 i gave up trying to get an actualy answer 2011-03-03T03:45:34 is it a matter of having the right scheme run time available on the server? 2011-03-03T03:45:37 but mcleoplod or however his name is has promised to "test it" or smt 2011-03-03T03:45:44 chemuduguntar: yep 2011-03-03T03:45:52 they wont give me a real answer as to that question 2011-03-03T03:46:00 but im hopefull someone will put mit-scheme for me 2011-03-03T03:46:41 yea me too 2011-03-03T03:46:55 chemuduguntar: you might want to make your own starter anyway 2011-03-03T03:47:13 you might do a better job :p 2011-03-03T03:47:57 it's good that you both want the same thing 2011-03-03T03:48:20 pyro-: they're pretty good at accomodating, but they can't really promise you anything now when they can't check to see if it'll work and not screw newbies over 2011-03-03T03:49:03 the fact that there is anything past java/c#/python should be celebrated imo :) 2011-03-03T03:49:25 how do you mean by screw newbies over? 2011-03-03T03:49:42 what* anyone would think im not a native english speaker :D 2011-03-03T03:50:03 (i know nothing about scheme other than your conversations), if it was an implementation which was standardly used and newbies weren't expecting it to act the way it does, they might give up and just not participate 2011-03-03T03:50:08 that would be bad for the competition 2011-03-03T03:50:21 ah 2011-03-03T03:50:21 wasn't* :P 2011-03-03T03:50:30 that won't really happen at all no matter what you do 2011-03-03T03:50:55 there is no dominanant scheme implementation so we schemers just have to learn to adapt to whatever we've got at hand 2011-03-03T03:51:00 newbie or not 2011-03-03T03:51:08 if we keep side effects to a minimum it will be good 2011-03-03T03:51:10 why scheme then? just based off that it sounds awful? 2011-03-03T03:51:49 chemuduguntar i started by defining a bunch of adt with constructors and and selectors 2011-03-03T03:52:13 im not going to do anythign stupid with streams all over the place but its pretty functional :D 2011-03-03T03:52:54 antimatroid: the implementations and community are fragmented and yeah that is bad 2011-03-03T03:53:21 but i don't know any better programming language that has a working implementation in terms of its abstraction abilities 2011-03-03T03:53:47 if you ever wanted to learn scheme and how to program in scheme read the wizard book and acopaying lectures 2011-03-03T03:53:50 i cant spell that word 2011-03-03T03:54:09 accompanying 2011-03-03T03:54:43 antimatroid: http://mitpress.mit.edu/sicp/full-text/book/book.html famous computer science book that uses scheme :) 2011-03-03T03:55:07 i've decided on haskell for my next language, i'm (very) slowly learning it 2011-03-03T03:55:19 http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ video lectures to go with 2011-03-03T03:55:19 c++ does pretty much everything i need, except templates are awful 2011-03-03T03:55:29 if it wasn't for c++ templates i wouldn't be looking to change 2011-03-03T03:56:54 c++ = every feature Stroustrup ever heard of hacked on top of C, badly :) 2011-03-03T03:56:59 but its usefull sometimes 2011-03-03T03:57:44 i dont know haskel either. i find haskel, ml and friends very hard to learn for some reason 2011-03-03T03:57:48 +l 2011-03-03T03:58:01 *** amstan has quit IRC (Ping timeout: 240 seconds) 2011-03-03T03:59:33 haskell wasn't made for mere mortals =) 2011-03-03T03:59:46 haskell is like there is no spoon 2011-03-03T04:00:41 there was no spoon for me when the wizard book showed me how a mostly working version of cons can be defined in terms of lambda :D 2011-03-03T04:01:34 oh yea that blew my mind the first time i saw it 2011-03-03T04:01:47 i started seeing lambda symbols everywhere 2011-03-03T04:02:23 dreaming in lambda calculus = bad trip. do not recomend 2011-03-03T04:05:51 grokking over cpp bot e.g. now to get an idea of the main loop 2011-03-03T04:07:48 chemuduguntar: will you make and publish a scheme starter pack? i will snarf your good ideas 2011-03-03T04:08:44 pyro-, sure 2011-03-03T04:08:55 you might be correcting my horrible mess of a code though :) 2011-03-03T04:09:22 in any case it will be usefull to have someone to compare notes with 2011-03-03T04:09:28 pyro-: sure about c++, but it lets me do almost anything i want, which i like 2011-03-03T04:09:34 not that i have a huge amount of time for this competition atm 2011-03-03T04:10:06 yep antimatroid ! the benefit of collecting a huge ugly mass of features together is there's normally the feature your looking for somewhere 2011-03-03T04:10:47 scheme does not have the quality of libraries and runtimes for me to use it for application programming 2011-03-03T04:11:21 http://abstrusegoose.com/strips/pure_mathematics.JPG 2011-03-03T04:11:22 ahaha 2011-03-03T04:11:54 i had to write my own process class for c++ 2011-03-03T04:11:56 was not impressed 2011-03-03T04:12:04 well, i mostly got someone else to 2011-03-03T04:12:22 i can use it like a stream now though :) 2011-03-03T04:12:26 :D 2011-03-03T04:12:39 i don't know much about pure mathematics :D 2011-03-03T04:12:54 i only need some logic stuff for computer science and some applied stuff for engineering :D 2011-03-03T04:14:27 antimatroid what is a process class? 2011-03-03T04:14:39 for representing operating system processes? 2011-03-03T04:15:17 no, for running bots in an engine 2011-03-03T04:15:29 i'm doing game theory stuff for my thesis and need it 2011-03-03T04:15:36 of course my internet is f'd brb 2011-03-03T04:16:37 *** Cyndre has quit IRC (Ping timeout: 276 seconds) 2011-03-03T04:17:26 *** antimatroid1 has joined #aichallenge 2011-03-03T04:18:19 pyro-: http://pastebin.com/9KMpR0L2 2011-03-03T04:18:57 it's awfully slow, but it will do for thesis work 2011-03-03T04:19:22 i only need to pass the location of a game file to each bot and read a pure strategy back from each 2011-03-03T04:19:46 *** antimatroid has quit IRC (Ping timeout: 250 seconds) 2011-03-03T04:20:06 oic 2011-03-03T04:20:58 and it needs to work on windows and not windows apperently 2011-03-03T04:21:13 well i've only used it on windows, but it would be nice if it did yeah 2011-03-03T04:22:42 *** Migi32 has joined #aichallenge 2011-03-03T04:22:46 *** Cyndre has joined #aichallenge 2011-03-03T04:23:46 what compiler do you use? 2011-03-03T04:24:40 mingw 2011-03-03T04:25:00 only because the error messages aren't insane, it's not the greatest compiler 2011-03-03T04:25:15 code::blocks <3 2011-03-03T04:26:15 nvi <3 2011-03-03T04:36:03 *** Naktibalda has joined #aichallenge 2011-03-03T04:44:15 *** mega1 has joined #aichallenge 2011-03-03T04:44:18 so ants can spawn and fight over water 2011-03-03T04:44:23 seems a bit counter-intuitive 2011-03-03T04:44:39 but i am guessing that only way they can spawn is an ant is close to the shore 2011-03-03T04:44:48 chemuduguntar: the spawn especially, but that's how it's been made 2011-03-03T04:45:18 i have suggested a few times it might be better to change that, but oh well 2011-03-03T04:45:19 it doesn't really matter 2011-03-03T04:45:25 i stopped trying to think of the ants as ants 2011-03-03T04:45:45 what do you two think about the two battle options? 2011-03-03T04:45:48 random pixels with random rules =D 2011-03-03T04:46:39 battle option 1 looks a big confusing at first, but once you understand it, it's really quite straight forward 2011-03-03T04:46:39 me? i did'nt bother spending much time to compare them. if i were designing a game i would try and simplify it so such choices didn't have to be made 2011-03-03T04:46:58 the two options naturally present themselves 2011-03-03T04:47:12 they are deterministic which is important 2011-03-03T04:47:51 battle option 2 can't always be correctly calculated by the actual bot with fog of war, is slower to calculate, and offers less interesting micro 2011-03-03T04:48:12 the only real argument for it is that "newb bots" wont get beaten as badly by the very top bots 2011-03-03T04:48:21 i would not have pixels attacking with range. maybe attack by collision or attack by attack command 2011-03-03T04:48:32 "Each bot is passed a parameter at the start of the game indicating the square of each ants visibility, which is how far each ant can see around them. At the moment this is set at 96, giving a view radius of approximately 9.8." how were 96 and 9.8 derived? 2011-03-03T04:49:03 your two battle options arnt interesting to me from a game design perspective so i dont really look much at either :D 2011-03-03T04:51:04 sorry :D 2011-03-03T04:51:24 your number 1 seems less random but i only gave them both a cursery glance 2011-03-03T04:52:44 chemuduguntar: it makes a nice circle :) 2011-03-03T04:53:07 pixels attacking with range? 2011-03-03T04:53:15 attack by collision is boring 2011-03-03T04:53:26 antimatroid1, i see 2011-03-03T04:53:27 i made a game that had actual fight moves 2011-03-03T04:53:56 hmm is there a transform that'll go from radius to n-pixels? 2011-03-03T04:54:08 and you had home holes that could be invaded to win the game, and you had to take harvest back home to spawn new ants 2011-03-03T04:54:11 but it was "too complicated" 2011-03-03T04:54:21 antimatroid1: you showed me it 2011-03-03T04:54:24 transform? what do you mean? 2011-03-03T04:54:43 i think your boring is not my boring :) 2011-03-03T04:54:44 like if you had a radius of r, how many pixels would be visible? 2011-03-03T04:55:02 not sure, i suspect you could work it out, but it'd be a bit messy 2011-03-03T04:55:22 given calculations are done with euclidean distance modified for the fact that you're playing on a donut 2011-03-03T04:55:27 chemuduguntar: you should can use the distance formula on the specification page 2011-03-03T04:55:56 i would also look at the getLocation function in state.cc of my starter bot on the git page 2011-03-03T04:56:47 although you don't need to translate it before modding if the language does -1%5 = 4 2011-03-03T04:56:55 antimatroid1 you study game theory 2011-03-03T04:57:16 pyro-: i'm doing my honours thesis this year on game theory, it's one of my main interests yes :P 2011-03-03T04:57:31 i find games that are closer to game theory games more interesting 2011-03-03T04:57:43 so do i, but alas apparently the masses do not 2011-03-03T04:57:51 its only boring in terms of it has no story line 2011-03-03T04:57:56 the game itself is far more interesting 2011-03-03T04:58:03 but there is some interesting stuff moving to n-players with non-optimal bots 2011-03-03T04:58:18 also having f.o.w. is horrible 2011-03-03T04:58:31 and i have heaps of ideas for my bot with this, i think it will be a good ai contest game 2011-03-03T04:58:42 fow is good 2011-03-03T04:59:02 and also allows for larger maps (information to be passed) 2011-03-03T04:59:30 but its definitly horrible ;D 2011-03-03T04:59:59 we've come too far with enough agreement to change much now 2011-03-03T05:01:16 iirc it will be the first game without perfect information 2011-03-03T05:01:27 dynamic game rules ? ... that'd make it interesting ;) 2011-03-03T05:01:38 or a surprise fudge factor 2011-03-03T05:01:47 XD 2011-03-03T05:01:54 yep 2011-03-03T05:01:56 like topographical overlay 2011-03-03T05:01:59 first nplayer game too 2011-03-03T05:02:39 nplayer is interesting ! 2011-03-03T05:02:40 i think it will be better in planet wars in that there's more room for clear improvements 2011-03-03T05:02:44 than* 2011-03-03T05:03:06 there was a huge brick wall for planet wars, where it was very hard to make any noticeable improvements 2011-03-03T05:03:17 it was an awesome game though 2011-03-03T05:03:22 n players is one thing i like more about your new game 2011-03-03T05:03:35 did anyone maked a map generator yet? 2011-03-03T05:03:38 i was very hesitant about going to n players 2011-03-03T05:03:48 mcleopold and i have made one, but neither are good 2011-03-03T05:03:59 it's an open problem that everyone is encouraged to play around with 2011-03-03T05:04:20 we don't want crappy random noisy maps 2011-03-03T05:04:29 we want random, interesting, cool looking maps 2011-03-03T05:05:04 i got as far as working out what i think is all the possible ways a map can be fair. but no progress on how to make them 'nice' 2011-03-03T05:05:06 if we can get reasonably fair non-symmetric maps, unfortunately i think they will be used, but i'm going to try to make non-boring lattice symmetric ones 2011-03-03T05:05:28 my first poke at it would be creating puddles that are rougly circular 2011-03-03T05:05:36 here is an interesting example where all players start in a different row and col 2011-03-03T05:06:31 err, nevermind 2011-03-03T05:06:35 it's a very silly example 2011-03-03T05:06:38 :( 2011-03-03T05:07:00 it's no different to just placing players down the diagonal, except it's translated 2011-03-03T05:07:08 i think the real interesting maps will be those that have geographical features like narrows passes between territories etc. 2011-03-03T05:07:24 exactly 2011-03-03T05:07:29 aww man i wish i had more time 2011-03-03T05:07:34 i tried playing around with perlin noise, but i didn't get very interesting results 2011-03-03T05:08:04 pryo-: the learning persons biggest constraint, time 2011-03-03T05:08:13 i don't like your new game much. but generating maps for it is a very interesting problem! 2011-03-03T05:08:19 :D 2011-03-03T05:08:20 :p 2011-03-03T05:08:46 think about battle option 1, you want to get more ants closer to theirs to kill them without losing anything, it's very strategic 2011-03-03T05:08:51 i think it makes for an awesome game 2011-03-03T05:09:24 game is too complecated for my taste. not that i can formally define complecated 2011-03-03T05:09:28 pretty obvious what kind of strategy will do best though 2011-03-03T05:09:54 i got my thesis idea from this game actually, but it's too messy to actually do my idea with 2011-03-03T05:10:13 i'm setting up engines for more general games, then playing around with stuff through there 2011-03-03T05:10:17 *** JackyAlcine has quit IRC (Ping timeout: 252 seconds) 2011-03-03T05:10:40 i also get to play around with game generation there, and trying to partition classes of games into equivalence classes based on structure 2011-03-03T05:11:03 <3 maths 2011-03-03T05:11:11 can has translated diagonal map? 2011-03-03T05:11:47 i want to see if it escapes my notion of how to produce fair maps 2011-03-03T05:14:03 actually, it wasn't such a transpose 2011-03-03T05:14:04 ...e. 2011-03-03T05:14:05 .d... 2011-03-03T05:14:05 ....c 2011-03-03T05:14:05 ..b.. 2011-03-03T05:14:05 a.... 2011-03-03T05:14:32 the idea is find a location for a, pick rt, ct, then you you that translated n times to be the same position again 2011-03-03T05:14:49 transpose == translation 2011-03-03T05:14:52 i see it 2011-03-03T05:15:32 i think i can generate those by starting with an nxn grid with them along the diagonals, then transposing and stretching it 2011-03-03T05:15:55 then you have your rc and rt to symmetrically place any water squares with 2011-03-03T05:16:06 and you just palce n wall squares using rc and rt 2011-03-03T05:16:33 actually, that doesn't make that one does it, hmmm, it's an annoying tricky little problem 2011-03-03T05:16:51 i consider only 1x1, 2x2 or 4x4 tiles 2011-03-03T05:16:58 and then tile them 2011-03-03T05:17:34 and each group of tiles must be symetric in one of translation or rotation 2011-03-03T05:17:53 i think its enough considerations to generate all perfectly fair maps 2011-03-03T05:18:25 the other open problem is generating almost fair asymmetric maps 2011-03-03T05:18:27 1x1 tile = tile with one ant not one grid cell 2011-03-03T05:19:23 if i am understanding this correctly 2011-03-03T05:19:48 i ignored that one :) all my shitty maps met the fairness condition that starting from any ant the description of the map relative to that ant is identical to the description starting at any other ant origin 2011-03-03T05:20:14 an ant (a) dies if any of it's enemies have more enemies than num_enemies(a) 2011-03-03T05:20:23 ? 2011-03-03T05:27:42 i sort of makes sense 2011-03-03T05:27:54 assuming my reasoning is correct 2011-03-03T05:27:56 sort of yeah ;) 2011-03-03T05:28:14 its not a very simple mechanism 2011-03-03T05:29:19 two ants will kill each other 2011-03-03T05:30:20 1a vs 2b ( a sees two enemies, each enemy in turn has one enemy - so a will die) 2011-03-03T05:31:05 2b.0 will see 1 enemy , that one enemy (a) has two enemies (2b.0 and 2b.1) 2011-03-03T05:31:21 so both 2b.0 and 2b.1 survive 2011-03-03T05:35:14 i can imagine this calculation will take some time 2011-03-03T05:35:26 so the visible area must be limited 2011-03-03T05:37:31 "attackradius2 6" antimatroid1 the same range is used for attacking enemy ants as is used for judging wether or not an ant is supporting its friend? 2011-03-03T05:37:58 pyro-: you don't "support your friend" 2011-03-03T05:38:36 chemuduguntar: that is correct for battle option 1 2011-03-03T05:38:57 unfortunately the engine is currently implementing option 2, but it's all set up for both 2011-03-03T05:40:26 antimatroid1: you do, in option 1. by providing your enemies with more enemies such that you no longer have at least as many enemies in range as any of your enemies have in range 2011-03-03T05:41:29 maybe you prefer my question if i say, the same range is used to see what enemies your enemies have in range as to decide that aforementioned enemy is in range of yourself 2011-03-03T05:41:37 pyro-: yes, but not explicitly 2011-03-03T05:41:49 the number of friends in range of your ant is irrelevant in deciding whether it dies 2011-03-03T05:42:01 implicitly you help them by getting closer to the enemies 2011-03-03T05:42:36 but the number of friends in range of your enemy is not. i will say that those friends are supporting each other 2011-03-03T05:43:30 "the same range is used for attacking enemy ants as is used for judging wether or not an ant is supporting its friend?" 2011-03-03T05:43:30 what do you mean by "an ant is supporting its friend?"? 2011-03-03T05:43:38 you never count up how many friends are near an ant 2011-03-03T05:44:03 i think in any case the answer must be in the affirmative 2011-03-03T05:44:35 hmm can rule 1 be condensed to the following: 2011-03-03T05:44:43 consider a..b vs a..a..b 2011-03-03T05:44:46 the group with the lowest number of enemies survives 2011-03-03T05:44:50 in both cases 1 a and 1 b die 2011-03-03T05:45:10 chemuduguntar: not sure, i don't think so 2011-03-03T05:45:15 chemuduguntar: but some parts of a group may not be in range of the same enemies as others 2011-03-03T05:45:24 oh, for any ants in range, sure, but it's a bit messy 2011-03-03T05:45:45 oh, assuming we are considering only the ants within a given range yes 2011-03-03T05:45:46 its messy in any case =D 2011-03-03T05:46:13 it's pretty easy to do battle option 1 and makes for cool strategies 2011-03-03T05:46:46 and it also provides balance to the already existent incentive to spread your ants out for "first acceissible" rights and visibility 2011-03-03T05:46:58 whereas option 2 also encourages spreading your ants 2011-03-03T05:46:59 i dislike thinking about it. if i make an entry i intend to teach the computer the rule and let it brute force search for good situations 2011-03-03T05:47:02 same as colliding 2011-03-03T05:47:11 you can do that 2011-03-03T05:47:22 i intend to use a game tree for ants close to fighting 2011-03-03T05:47:36 -that's the same thing 2011-03-03T05:47:49 search the game tree* :) 2011-03-03T05:48:20 my bot for planet wars used a game tree, but it was so messy it was awful 2011-03-03T05:48:37 one strategy that comes to my mind with the first case ... is you could 'tip' the equation against a player 2011-03-03T05:48:45 if you had player a b c 2011-03-03T05:48:47 you were c 2011-03-03T05:49:03 chemuduguntar: yes, it also allows for cooperation better 2011-03-03T05:49:04 you could sacrifice a few of your ants, so either a or b will win 2011-03-03T05:49:19 and tit for tat strategies with cooperating with a particular player etc. 2011-03-03T05:49:22 depends how scoring is 2011-03-03T05:49:47 whether i want to remove b or let him trouble a 2011-03-03T05:50:07 each ant is worth 1 point, when it dies, any ants in range get an equal proportion of those points (an ant in range can be alive or dying from battle as well) which are then passed onto that bots owners 2011-03-03T05:50:26 so aa.b.c would give 2/3 points to a and 1/3 points to c 2011-03-03T05:50:54 ah 2011-03-03T05:51:32 in that case i probably want to be a fair bit agressive 2011-03-03T05:51:46 there is a food bonus at the end too, basically any live bots (one if there is a winner, possibly multiple if end of turns) at the end get points for the number of food squares left and the number of food squares that would have spawned if the game continued to the end 2011-03-03T05:52:03 option 2 you never want to have more than 1 ant at an equal distance to an enemy 2011-03-03T05:52:17 it's basically, spread out and don't get caught together 2011-03-03T05:52:44 which happens to also be what you want to do to cover a large food spawning area 2011-03-03T05:52:52 antimatroid1, aa.b.c , wouldn't the only surviving ants there be 'aa' ? 2011-03-03T05:52:58 no 2011-03-03T05:53:05 b has 4 enemies, c 1 2011-03-03T05:53:10 b dies 2011-03-03T05:53:18 b can't have 4 enemies 2011-03-03T05:53:24 3** 2011-03-03T05:53:26 * chemuduguntar confused :) 2011-03-03T05:53:27 unless he dislikes himself very much indeed 2011-03-03T05:53:47 oh i see 2011-03-03T05:53:56 so c can't see 'aa' 2011-03-03T05:54:05 so with a.b.c, only b dies, but if c or a didn't cooperate, the other two would die 2011-03-03T05:54:13 but you could cooperate with people based on their past actions 2011-03-03T05:54:24 why does c not see the right most a? 2011-03-03T05:54:26 c can see aa as it's within view, it's not within the attack radius 2011-03-03T05:54:38 why does c not attack-see the right most a? 2011-03-03T05:54:45 too far away to attack 2011-03-03T05:54:50 right... 2011-03-03T05:55:09 it would be pretty boring if you didn't see an enemy until you engaged in battle 2011-03-03T05:55:11 why does b attack-see the leftmost a then? 2011-03-03T05:55:19 because it's within the attack radius 2011-03-03T05:55:33 what is .? 2011-03-03T05:55:36 land 2011-03-03T05:55:43 okay. that is clear 2011-03-03T05:56:08 * = food, % = water, a-z = live ant, . = land, ? = (unofficial now) unseeable 2011-03-03T05:56:27 only unofficial because none of the official io requires passing anything about unknown squares 2011-03-03T05:56:58 the more i think about it 2011-03-03T05:57:07 the more awesome it is :P 2011-03-03T05:57:11 everyone has that 2011-03-03T05:57:23 the more i think i'll write a starter thingy and a map generator and not an entry 2011-03-03T05:57:32 bleh :P 2011-03-03T05:57:48 " so aa.b.c would give 2/3 points to a and 1/3 points to c" 2011-03-03T05:58:03 why not 1/2 and 1/2 2011-03-03T05:58:19 chemuduguntar: because a had 2 ants involved in killing b 2011-03-03T05:58:28 they did twice as much work 2011-03-03T05:58:59 ah right ... so attack radius here is 3 2011-03-03T05:59:12 oh yeah, my bad :P 2011-03-03T05:59:27 antimatroid1: the amount of time you are taking to explain it to us two, you'll have to take that long with all the other 3000 competitors who sign up too =D 2011-03-03T05:59:44 there will be some better explanations once it's decided 2011-03-03T05:59:47 with clear diagrams 2011-03-03T06:00:01 i should just go ahead and make them 2011-03-03T06:00:13 use prose :) 2011-03-03T06:00:34 i'm terrible at coherent english, i just aim for it being unambiguous 2011-03-03T06:00:38 i fail at that too 2011-03-03T06:01:10 it almost feels like a game of carcassone 2011-03-03T06:02:39 it's been a while since i played it though 2011-03-03T06:02:42 battle option 1 also feels a bit like multiplayer game of life to me 2011-03-03T06:02:54 then again it is late as 2011-03-03T06:02:55 which is awesome, not buts! 2011-03-03T06:03:08 no buts* 2011-03-03T06:03:27 i can see the game of life connection 2011-03-03T06:03:42 and celluar automata :) 2011-03-03T06:03:57 we actually worked out how to do multiplayer game of life, but decided it was too complicated and would just present a huge brick wall again 2011-03-03T06:04:20 you also had the nice fact that since squares needed 3 neighbours for a birth (i think we were 2 player at the time), you had no draws 2011-03-03T06:04:55 i think tron on a graph where edges were coloured instead of nodes would make for an awesome game too 2011-03-03T06:05:16 * pyro- o0 (more complecated than the current game :O) 2011-03-03T06:05:23 it offered less room for improving ones strategy 2011-03-03T06:05:40 and "one player" game of life is "too well studied" apparently 2011-03-03T06:07:17 i am off 2 bed ... hope to continue this conversation later :) 2011-03-03T06:07:20 nite all 2011-03-03T06:08:02 in fact me too 2011-03-03T06:08:04 gute nacht :D 2011-03-03T06:08:24 pyro-: it's 10pm 2011-03-03T06:08:31 correct ! 2011-03-03T06:08:32 chemuduguntar: night 2011-03-03T06:08:39 that is not time for bed 2011-03-03T06:08:46 i have some things to do elsewhere first 2011-03-03T06:09:01 for the purposes of being able to talk to me here i will be asleep 2011-03-03T06:09:25 night then :P 2011-03-03T06:20:03 *** Meatkat has quit IRC (Ping timeout: 264 seconds) 2011-03-03T06:21:04 *** Cyndre has quit IRC (Ping timeout: 240 seconds) 2011-03-03T06:28:21 *** antimatroid has joined #aichallenge 2011-03-03T06:29:01 *** Cyndre has joined #aichallenge 2011-03-03T06:31:10 *** antimatroid1 has quit IRC (Ping timeout: 272 seconds) 2011-03-03T07:01:23 it is absurd that i don't have exists and forall identifiers on my keyboard and part of unicode or whatever the hell it is 2011-03-03T07:01:33 same with subset 2011-03-03T07:01:35 what the hell 2011-03-03T07:03:27 *** sigh has quit IRC (Remote host closed the connection) 2011-03-03T07:13:00 *** Migi32 has quit IRC (Quit: boinc) 2011-03-03T07:13:48 *** acieroid` is now known as acieroid 2011-03-03T07:58:30 *** boegel has joined #aichallenge 2011-03-03T08:05:28 *** mceier has quit IRC (Quit: leaving) 2011-03-03T08:07:23 i has worked out how to do better symmetric maps 2011-03-03T08:09:41 TIL right click in cmd is paste 2011-03-03T08:09:48 that made my life better 2011-03-03T08:10:01 it's copy too 2011-03-03T08:10:02 mega 2011-03-03T08:10:44 *** greghaynes has quit IRC (Read error: Connection reset by peer) 2011-03-03T08:11:13 oh? 2011-03-03T08:11:22 *** greghaynes has joined #aichallenge 2011-03-03T08:19:44 *** j3camero has quit IRC (Ping timeout: 276 seconds) 2011-03-03T08:25:16 *** antimatroid has quit IRC (Ping timeout: 264 seconds) 2011-03-03T08:38:41 *** j3camero has joined #aichallenge 2011-03-03T08:40:47 *** mceier has joined #aichallenge 2011-03-03T08:46:52 *** delt0r___ has joined #aichallenge 2011-03-03T08:47:26 *** antimatroid has joined #aichallenge 2011-03-03T08:47:39 well that sucked 2011-03-03T08:47:41 my bloody power went out 2011-03-03T08:47:56 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-03-03T09:46:05 *** mceier has quit IRC (Quit: leaving) 2011-03-03T10:03:01 *** mceier has joined #aichallenge 2011-03-03T10:22:17 http://codepad.org/AQGTpVZI 2011-03-03T10:22:20 these are symmetric 2011-03-03T10:22:31 now i just need to work out how to make it in more reasonable combinations 2011-03-03T10:35:05 *** Frontier has joined #aichallenge 2011-03-03T10:35:55 Frontier: http://codepad.org/AQGTpVZI 2011-03-03T10:36:00 more awesome symmetry 2011-03-03T10:36:06 currently working out how to make it more sane 2011-03-03T10:36:17 and have both rows and columns loop before getting back to the start 2011-03-03T10:37:42 hey nice. i wonder how that looks with walls ! and there are larger primes below 26 :) 2011-03-03T10:38:21 what do you mean larger primes below 26? 2011-03-03T10:38:37 i want to work out how to generalise it more before i add walls in 2011-03-03T10:38:47 turns out group theory is practicle 2011-03-03T10:38:57 You could have made even longer maps 2011-03-03T10:39:24 i'm not sure i follow? 2011-03-03T10:39:50 oh, i have prime numbers of players 2011-03-03T10:39:56 i wonder if that's enforced 2011-03-03T10:40:22 nope 2011-03-03T10:40:30 it just spat out one with 15 players 2011-03-03T10:40:33 13 players was an experiment, wasn't it? and i looked for something even more unpractical like telling the map gen to generate a map for 23 players 2011-03-03T10:40:59 atm it's picking the players based on how long it'll take to cycle through given it has been picked to be possible 2011-03-03T10:41:06 i'm working on changing that 2011-03-03T10:41:45 obviously i want to change that around 2011-03-03T10:45:35 i think i want lcm(order(rtranslate), order(ctranslate)) = noPlayers 2011-03-03T10:45:49 but order(rt) = rows/gcd(rt, rows) 2011-03-03T10:45:58 i need to sort this mess out 2011-03-03T10:46:25 what is lcm? 2011-03-03T10:46:29 thank god for lcm(a,b) = |ab|/gcd(a,b) 2011-03-03T10:46:33 lowest common multiple 2011-03-03T10:48:50 in deed. its good to know some maths 2011-03-03T10:49:33 oh god, it's messy when i try to expand that 2011-03-03T11:04:33 *** contestbot_ has joined #aichallenge 2011-03-03T11:04:33 *** contestbot has quit IRC (Disconnected by services) 2011-03-03T11:06:27 *** contestbot_ is now known as contestbot 2011-03-03T11:06:28 *** ChanServ sets mode: +o contestbot 2011-03-03T11:07:38 Frontier: http://codepad.org/aLWM3zIw 2011-03-03T11:07:48 *** DanielVF has quit IRC (Read error: Connection reset by peer) 2011-03-03T11:08:20 i was right about the formula, still no idea how to reverse picking part of it though 2011-03-03T11:14:21 it makes more sense now at least 2011-03-03T11:21:47 ergh, i can't believe python doesn't have a do while loop 2011-03-03T11:31:30 to paraphrase Dijkstra "C++ has mentally mutilated your mind beyond all hope of regeneration" :P 2011-03-03T11:33:26 *** boegel has quit IRC (Quit: *poof!*) 2011-03-03T11:37:36 these look much nicer 2011-03-03T11:38:19 janzert1: http://codepad.org/2Gzv3mun 2011-03-03T11:38:37 the first one is a bit rank, but the rest look good 2011-03-03T11:39:01 those walls were added completely randomly (other than symmetrically) too 2011-03-03T11:39:02 I agree 2011-03-03T11:39:16 *** janzert1 is now known as janzert 2011-03-03T11:40:04 it isn't such a horrible lattice pattern now 2011-03-03T11:41:04 i do have the problem of having to calculate noPlayers off rows, cols, rtranslate, ctranslate and keep calculating them until i hit a number of players inside the valid range 2011-03-03T11:41:12 i can't work out how to flip the formula around 2011-03-03T11:41:52 "noPlayers = lcm(rows/gcd(rtranslate, rows), cols/gcd(ctranslate, cols) )" that's what i need to re arrange for rows or rtranlate 2011-03-03T11:43:10 Frontier: did you catch that link? i added in water :P 2011-03-03T11:45:06 antimatroid: these look pretty nice 2011-03-03T11:45:06 jmcarthur: yep, and that's a very rough first go 2011-03-03T11:45:06 *** McLeopold has joined #aichallenge 2011-03-03T11:45:06 i wouldn't mind playing around with perlin noise on these 2011-03-03T11:45:06 McLeopold: http://codepad.org/2Gzv3mun 2011-03-03T11:45:06 the first sucks, but it's a start 2011-03-03T11:45:24 Is it any different that the other methods? 2011-03-03T11:45:28 jmcarthur: feel free to re arrange that ^^ formula for me 2011-03-03T11:48:35 *** mega1 has quit IRC (Read error: Connection reset by peer) 2011-03-03T11:48:38 *** mega1 has joined #aichallenge 2011-03-03T11:49:48 is Frontier around? 2011-03-03T11:49:48 McLeopold: it's not tiling badly anymore 2011-03-03T11:49:49 antimatroid: so you're coming up with map dimensions before coming up with number of players? 2011-03-03T11:49:49 oh i see, yeah 2011-03-03T11:49:49 wasn't quite following 2011-03-03T11:49:49 jmcarthur: http://codepad.org/mSNkEJJe line 109 on 2011-03-03T11:49:49 *** Cyndre_ has joined #aichallenge 2011-03-03T11:49:50 if you example the lcm term with lcm(a,b) = |ab|/gcd(a,b) it just becomes a gigantic mess 2011-03-03T11:49:50 i wouldn't be surprised if there was a really neat way to do it though 2011-03-03T11:49:50 example? if you replace 2011-03-03T11:50:00 *** Cyndre has quit IRC (Ping timeout: 252 seconds) 2011-03-03T11:50:57 antimatroid: with perlin noise, you could adjust a var and get thicker or thinner walls 2011-03-03T11:51:26 McLeopold: whatever we do, i think this is the way to "tile" symmetric maps if we have to use them 2011-03-03T11:51:53 have you looked at my voronoi function yet? 2011-03-03T11:52:01 not in much detail 2011-03-03T11:52:11 i assume you're just painting outwards to what people can see first? 2011-03-03T11:52:17 access*** 2011-03-03T11:52:18 let me see if it still works... 2011-03-03T11:52:27 [(players, rows, cols, ctrans, rtrans) | rows <- [25..30], cols <- [25..30], ctrans <- [2..10], rtrans <- [2,10], players <- [lcm (rows `div` gcd rtrans rows) (cols `div` gcd ctrans cols)]] 2011-03-03T11:52:34 generates all valid combinations 2011-03-03T11:52:37 there aren't many 2011-03-03T11:52:41 no, it's not actually using voronoi, that's just the name 2011-03-03T11:52:51 it was going to be, someday 2011-03-03T11:53:13 antimatroid: ^^ only 648 valid combinations there 2011-03-03T11:53:40 oh crap 2011-03-03T11:53:40 typo 2011-03-03T11:53:45 rtrans is wrong 2011-03-03T11:54:00 2916 combinations, actually 2011-03-03T11:54:06 [(players, rows, cols, ctrans, rtrans) | rows <- [25..30], cols <- [25..30], ctrans <- [2..10], rtrans <- [2..10], players <- [lcm (rows `div` gcd rtrans rows) (cols `div` gcd ctrans cols)]] 2011-03-03T11:54:15 still not bad 2011-03-03T11:55:08 plus those are very arbitrarily picked parameters 2011-03-03T11:55:14 sure 2011-03-03T11:56:06 http://imgur.com/KYiZZ 2011-03-03T11:56:20 neat 2011-03-03T11:56:40 antimatroid: ha i didn't put in the guards to filter out stupid cases 2011-03-03T11:57:18 antimatroid: only 19 cases once i add in the guard on number of players 2011-03-03T11:57:21 between 4 and 8 2011-03-03T11:57:29 [(players, rows, cols, ctrans, rtrans) | rows <- [25..30], cols <- [25..30], ctrans <- [2..10], rtrans <- [2..10], players <- [lcm (rows `div` gcd rtrans rows) (cols `div` gcd ctrans cols)], players >= 4 && players <= 8] 2011-03-03T11:58:11 McLeopold: that is cool 2011-03-03T11:58:19 antimatroid: looks like it never find an 8 player map with that 2011-03-03T11:58:20 too much wall 2011-03-03T11:58:23 *finds 2011-03-03T11:58:30 I'll solve that after the contest starts 2011-03-03T11:58:32 with those parameters 2011-03-03T11:58:44 jmcarthur: try some larger dimensions? 2011-03-03T11:59:14 doing that now 2011-03-03T11:59:14 what are you solving for? 2011-03-03T11:59:24 the number of possible starting positions 2011-03-03T11:59:36 less water 2011-03-03T11:59:55 with dimensions between 25 and 50 and number of players from 4 to 12, it finds 419 combinations 2011-03-03T12:00:12 i think dimensions are going to be way larger anyway 2011-03-03T12:00:15 if we can 2011-03-03T12:00:34 and if we fix up sequential move making, we can do more players alright 2011-03-03T12:00:49 err, i mean players between 2 and 12 2011-03-03T12:01:01 *** KP13 has joined #aichallenge 2011-03-03T12:01:02 it found player counts for the entire range between 3 and 12 2011-03-03T12:01:03 if you have a 10x10 with 2, is (0,0),(5,5) the same as (1,1),(6,6)? 2011-03-03T12:01:09 i think minPlayers should be at least 3 2011-03-03T12:01:16 McLeopold: yes 2011-03-03T12:01:23 antimatroid: I would prefer min at 2 2011-03-03T12:01:27 antimatroid: so does your formula ;) 2011-03-03T12:01:39 jmcarthur? 2011-03-03T12:01:58 McLeopold: why? 3+ players is a significantly different game to 2 player 2011-03-03T12:02:06 although it could be interesting to see the differences 2011-03-03T12:02:09 I know, that's why 2011-03-03T12:02:22 okay sure 2011-03-03T12:02:39 in playing galcon online, the game goes chaotic the moment there are only 2 2011-03-03T12:02:44 i think we should go for mcleopold looking symmetric maps to start with 2011-03-03T12:03:02 antimatroid: it only found valid 2 player games when i crank the ranges way up 2011-03-03T12:03:04 and test some asymmetric ones too, but not for releasing 2011-03-03T12:03:07 my maps were not symmettric 2011-03-03T12:03:13 [players | rows <- [25..100], cols <- [25..100], ctrans <- [2..20], rtrans <- [2..20], players <- [lcm (rows `div` gcd rtrans rows) (cols `div` gcd ctrans cols)], players >= 2 && players <= 16] 2011-03-03T12:03:17 jmcarthur: that shouldn't be hard with 2 people? :\ 2011-03-03T12:03:22 14038 combinations ^^ 2011-03-03T12:03:37 *** Kingpin13 has quit IRC (Ping timeout: 240 seconds) 2011-03-03T12:03:37 range of player counts: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] 2011-03-03T12:03:55 looks good to me 2011-03-03T12:04:13 i think it's easy to make sure players start at least x away from each other without water 2011-03-03T12:04:18 so, is this for creating 1 map, then having the engine pick the starting locations? 2011-03-03T12:04:21 it's too costly to calculate that after adding water 2011-03-03T12:04:55 antimatroid: of those 14038 combinations, only 64 are two players 2011-03-03T12:05:25 *** Cyndre__ has joined #aichallenge 2011-03-03T12:05:39 *** nann has joined #aichallenge 2011-03-03T12:05:52 number of combinations for each number of players: [(2,64),(3,196),(4,420),(5,625),(6,896),(7,576),(8,741),(9,1100),(10,1336),(11,576),(12,1560),(13,900),(14,1569),(15,2204),(16,1275)] 2011-03-03T12:06:31 fun to see the prime numbers decrease like that 2011-03-03T12:07:02 and 16... 2011-03-03T12:07:17 i guess that might be attributable to being at the max end of the range 2011-03-03T12:07:57 *** davidd has quit IRC (Read error: Connection reset by peer) 2011-03-03T12:08:08 *** antimatroid1 has joined #aichallenge 2011-03-03T12:08:16 *** McLeopold1 has joined #aichallenge 2011-03-03T12:08:58 it sounds like algorithms for generating tesselations should be relevant here 2011-03-03T12:09:06 *** McLeopold has quit IRC (Ping timeout: 276 seconds) 2011-03-03T12:09:08 *** davidd has joined #aichallenge 2011-03-03T12:09:08 *** Cyndre_ has quit IRC (Ping timeout: 260 seconds) 2011-03-03T12:09:08 *** antimatroid has quit IRC (Ping timeout: 260 seconds) 2011-03-03T12:09:08 *** Apophis_ has quit IRC (Ping timeout: 260 seconds) 2011-03-03T12:10:56 *** McLeopold1 is now known as McLeopold 2011-03-03T12:11:30 jmcarthur: that is pretty cool (sorry dropped out, looking at the log) 2011-03-03T12:13:28 bleh 2011-03-03T12:13:32 can anyone read this? 2011-03-03T12:13:47 *** KP13 is now known as Kingpin13 2011-03-03T12:14:53 aye it did come through, my internet is being a pita 2011-03-03T12:15:01 that's funny... I thought I heard someone say something... hm, nevermind 2011-03-03T12:16:02 heheh 2011-03-03T12:17:38 i think it will be reasonable hard to do mcleopold style maps symmetrically 2011-03-03T12:17:54 without having a whole bunch of wall squares anyway 2011-03-03T12:18:20 i still don't know how much a care about symmetry. i think it will balance out, especially if we prune maps 2011-03-03T12:18:26 *how much i care 2011-03-03T12:18:53 i think "near" symmetry is good enough 2011-03-03T12:19:19 complete asymmetry is probably bad i guess 2011-03-03T12:19:36 but a uniform enough map generator should be quite fair, usually 2011-03-03T12:19:55 *** JackyAlcine has joined #aichallenge 2011-03-03T12:20:12 i'm still quite hesitant about it 2011-03-03T12:20:16 i want to at least try both 2011-03-03T12:20:28 no harm in that 2011-03-03T12:22:34 antimatroid1: anyway, i think a reasonable conclusion to draw from my experiments is that your loop isn't all that slow 2011-03-03T12:22:44 or probably isn't 2011-03-03T12:23:02 i was able to compute those in ghci really fast, and ghci is slow 2011-03-03T12:25:01 * McLeopold programs the database furiously 2011-03-03T12:26:48 jmcarthur: yeah it seems to do quite well, i just generated some larger maps 2011-03-03T12:30:02 i still haven't updated my starter for the latest i/o spec 2011-03-03T12:30:08 guess i might do that today 2011-03-03T12:30:24 been putting it off because i got bored of parsing and i/o 2011-03-03T12:36:51 *** contestbot_ has joined #aichallenge 2011-03-03T12:36:51 *** contestbot has quit IRC (Disconnected by services) 2011-03-03T12:36:55 clumps of water and such 2011-03-03T12:37:29 yeah, that has a very bad "random.gauss(4, 5)" line added, i've no idea if it's even affecting the numbers i get 2011-03-03T12:38:44 *** DanielVF has joined #aichallenge 2011-03-03T12:38:44 *** contestbot_ is now known as contestbot 2011-03-03T12:38:46 *** ChanServ sets mode: +o contestbot 2011-03-03T12:39:15 i've been trying to remove "magic" from the starter. http://hpaste.org/44490/ants_starter_again 2011-03-03T12:39:37 no more functions included to just magically find directions a given ant can move in. the starter has to do that itself now 2011-03-03T12:41:13 what do you mean by that? 2011-03-03T12:41:30 i mean i was originally using an opaque utility function to do that 2011-03-03T12:41:57 an action that takes an ant position and returns the directions it can move without hitting water 2011-03-03T12:42:05 ah okay 2011-03-03T12:42:25 on the other hand, i've added a little magic as well, but it's not cheating at least 2011-03-03T12:42:38 decided it was silly to have to give nextTurn your continuation explicitly, so no you don't have to 2011-03-03T12:42:45 *now you don't 2011-03-03T12:43:27 hmm, i guess now i can inline gameLoop back into main 2011-03-03T12:44:09 Anyone familiar with Google App Engine? 2011-03-03T12:44:24 *** Cyndre_ has joined #aichallenge 2011-03-03T12:46:12 lol, McLeopold, your maps are graphs on a torus 2011-03-03T12:46:25 yay! http://hpaste.org/paste/44490/ants_starter_again_annotation#p44491 2011-03-03T12:46:50 worked? 2011-03-03T12:48:07 i think it must be bedtime 2011-03-03T12:48:17 i got a bit carried away with that map gen, it's almost 5am :| 2011-03-03T12:48:31 *** amstan has joined #aichallenge 2011-03-03T12:48:31 *** ChanServ sets mode: +o amstan 2011-03-03T12:48:52 amstan: http://codepad.org/78fY78f4 :P 2011-03-03T12:49:05 lol, nice 2011-03-03T12:49:19 that will kill bots that try to build rooms and hallways 2011-03-03T12:49:29 yep 2011-03-03T12:49:36 We need fractal maps 2011-03-03T12:49:37 :D 2011-03-03T12:50:12 *** davidd has quit IRC (*.net *.split) 2011-03-03T12:50:12 *** Cyndre__ has quit IRC (*.net *.split) 2011-03-03T12:52:24 *** davidd has joined #aichallenge 2011-03-03T12:52:24 *** Cyndre__ has joined #aichallenge 2011-03-03T12:55:30 *** Cyndre_ has quit IRC (Ping timeout: 264 seconds) 2011-03-03T12:57:28 *** contestbot_ has joined #aichallenge 2011-03-03T12:57:28 *** contestbot has quit IRC (Disconnected by services) 2011-03-03T12:58:12 *** davidd has quit IRC (*.net *.split) 2011-03-03T12:59:23 *** contestbot_ is now known as contestbot 2011-03-03T12:59:25 *** ChanServ sets mode: +o contestbot 2011-03-03T13:00:25 *** amstan has quit IRC (Ping timeout: 252 seconds) 2011-03-03T13:05:04 *** choas has joined #aichallenge 2011-03-03T13:07:40 *** mega1 has quit IRC (Ping timeout: 252 seconds) 2011-03-03T13:07:42 *** Apophis_ has joined #aichallenge 2011-03-03T13:07:54 *** JackyAlcine has quit IRC (Ping timeout: 252 seconds) 2011-03-03T13:16:13 *** nann has quit IRC (Ping timeout: 252 seconds) 2011-03-03T13:20:42 *** Cyndre_ has joined #aichallenge 2011-03-03T13:23:26 *** davidd has joined #aichallenge 2011-03-03T13:24:24 *** Cyndre__ has quit IRC (Ping timeout: 260 seconds) 2011-03-03T13:26:47 *** dvf_ has joined #aichallenge 2011-03-03T13:29:01 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716]) 2011-03-03T13:29:23 *** DanielVF has quit IRC (Ping timeout: 252 seconds) 2011-03-03T13:33:17 *** davidd has quit IRC (Ping timeout: 260 seconds) 2011-03-03T13:34:25 *** davidd has joined #aichallenge 2011-03-03T13:37:51 *** McLeopold has quit IRC (Read error: Connection reset by peer) 2011-03-03T13:42:01 *** davidd is now known as guest 2011-03-03T13:42:05 *** guest is now known as davidd 2011-03-03T13:48:44 *** DanielVF has joined #aichallenge 2011-03-03T13:50:33 *** dvf_ has quit IRC (Ping timeout: 240 seconds) 2011-03-03T13:50:34 *** politik has quit IRC (Ping timeout: 240 seconds) 2011-03-03T13:51:13 *** politik_ has joined #aichallenge 2011-03-03T13:52:21 *** amstan_ is now known as amstan 2011-03-03T13:56:18 *** Zannick has quit IRC (Ping timeout: 250 seconds) 2011-03-03T13:56:44 *** jbroman has quit IRC (Ping timeout: 250 seconds) 2011-03-03T13:57:06 *** amstan_ has joined #aichallenge 2011-03-03T13:57:06 *** ChanServ sets mode: +o amstan_ 2011-03-03T13:57:10 *** amstan has quit IRC (Ping timeout: 250 seconds) 2011-03-03T13:57:13 *** amstan_ has quit IRC (Client Quit) 2011-03-03T13:57:45 *** jbroman has joined #aichallenge 2011-03-03T13:58:01 *** Zannick has joined #aichallenge 2011-03-03T14:00:34 *** amstan has joined #aichallenge 2011-03-03T14:00:34 *** ChanServ sets mode: +o amstan 2011-03-03T14:21:51 antimatroid1: the i/o spec doesn't line up with the engine source code 2011-03-03T14:22:14 antimatroid1: the engine outputs the player count and scores before giving the final game state, but the spec says it's the other way around 2011-03-03T14:24:40 spec should probably be changed for that 2011-03-03T14:24:57 reading player count before game state is probably better 2011-03-03T14:25:01 i agree 2011-03-03T14:26:05 *** McLeopold has joined #aichallenge 2011-03-03T14:27:39 anyone know who purplepanda is? pyro-? 2011-03-03T14:28:04 McLeopold: yes 2011-03-03T14:34:37 *** boegel has joined #aichallenge 2011-03-03T14:35:01 Tach 2011-03-03T14:35:28 amstan: did you see my lolcode bot? 2011-03-03T14:40:27 *** sigh has joined #aichallenge 2011-03-03T14:43:10 McLeopold: no 2011-03-03T14:43:14 McLeopold: you should commit it 2011-03-03T14:46:07 *** pyro- has quit IRC (Quit: Lost terminal) 2011-03-03T14:47:53 *** boegel_ has joined #aichallenge 2011-03-03T14:49:19 *** boegel has quit IRC (Ping timeout: 264 seconds) 2011-03-03T14:50:18 aichallenge: McLeopold epsilon * r903c79f / (ants/bots/lolcode/MyBot.lol ants/bots/lolcode/README.md): Added LOLCode bot. - http://bit.ly/fcNYjQ 2011-03-03T14:50:28 amstan: okay, there you go 2011-03-03T14:51:06 i like it.. it's .lol 2011-03-03T14:51:07 lol 2011-03-03T14:53:04 This implementation doesn't support any string function. So I can't actually parse the input stream. 2011-03-03T14:53:55 We'd have to go with a "non-standard compliant" implementation lolz 2011-03-03T14:53:59 do we have lolcode support added to the compilers? 2011-03-03T14:54:06 not yet 2011-03-03T14:54:36 If we do, we ought to go with mailchimp's, but I haven't got it installed yet. 2011-03-03T14:55:12 *** Accoun has quit IRC () 2011-03-03T15:06:21 *** helo has quit IRC (Quit: Page closed) 2011-03-03T15:08:27 amstan/janzert: was the website_themes ever used? 2011-03-03T15:08:34 in the database? 2011-03-03T15:08:46 McLeopold: I don't believe so 2011-03-03T15:08:47 McLeopold: nope, it was just an experiment 2011-03-03T15:08:54 McLeopold: grep the php if they use it 2011-03-03T15:08:56 but probably not 2011-03-03T15:08:59 I'm dropping it. 2011-03-03T15:09:10 McLeopold: remember to update the schema 2011-03-03T15:09:31 I'm creating a whole new schema 2011-03-03T15:09:35 ok 2011-03-03T15:09:36 A good going over of the indexes used would be really good 2011-03-03T15:09:48 ahh, starting from scratch is good too 2011-03-03T15:11:07 also, I don't think replays should be in the database 2011-03-03T15:12:10 for the ranking table, was wins, losses and draws every used? 2011-03-03T15:15:47 McLeopold: try grepping the code 2011-03-03T15:17:32 grep amstan ranking.draws 2011-03-03T15:17:54 McLeopold: hmm? 2011-03-03T15:18:06 moving replays out of the database would certainly be an improvement 2011-03-03T15:18:42 McLeopold: I'm not positive about the win-loss-draw but I don't think so 2011-03-03T15:19:21 check process_ratings.py to see if they're even recorded 2011-03-03T15:19:39 and no they aren't 2011-03-03T15:19:52 ok 2011-03-03T15:19:54 they were always recorded as 0 2011-03-03T15:20:14 they used to be used in the days before elo 2011-03-03T15:20:19 *** chemuduguntar has quit IRC (Remote host closed the connection) 2011-03-03T15:20:29 i think j3camero kept the schema from rps 2011-03-03T15:34:15 *** rebelxt1 has joined #aichallenge 2011-03-03T15:35:31 *** Accoun has joined #aichallenge 2011-03-03T15:47:04 *** Accoun has quit IRC () 2011-03-03T15:51:12 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-03T15:55:54 *** sigh has quit IRC (Remote host closed the connection) 2011-03-03T16:01:31 *** DanielVF has quit IRC (Quit: Linkinus is updating...) 2011-03-03T16:02:01 *** DanielVF has joined #aichallenge 2011-03-03T16:03:18 *** Accoun has joined #aichallenge 2011-03-03T16:12:29 *** boegel has joined #aichallenge 2011-03-03T16:15:30 *** chemuduguntar has joined #aichallenge 2011-03-03T16:31:38 *** lavalamp has joined #aichallenge 2011-03-03T16:35:19 I have a golang starter kit half written at home... is there an engine I can use to test it? 2011-03-03T16:37:10 lavalamp: under the ants directory in http://github.com/aichallenge/aichallenge 2011-03-03T16:38:01 cool, is there an example command line anywhere? 2011-03-03T16:38:04 lavalamp: it's still in a lot of flux, but useful enough for testing against 2011-03-03T16:38:41 lavalamp: i've been running with python2 playgame.py -o output -m maps/random4.txt -t 300 "$BOT" "$BOT" "$BOT" "$BOT" "$BOT" 'python2 bots/python/HunterBot.py' 2011-03-03T16:38:42 Not sure if I will write a bot this time around but I thought I'd at least try to make go a first class citizen ^^ 2011-03-03T16:38:48 lavalamp: where $BOT is my starter 2011-03-03T16:39:01 jmcarthur: thanks a bunch 2011-03-03T16:39:03 yeah the more languages we start with the better, IMO 2011-03-03T16:39:50 *** Migi32 has joined #aichallenge 2011-03-03T16:44:38 *** Palmik has quit IRC (Remote host closed the connection) 2011-03-03T16:45:11 *** Mathnerd314 has joined #aichallenge 2011-03-03T16:46:52 *** delt0r_ has joined #aichallenge 2011-03-03T16:48:45 *** delt0r___ has quit IRC (Ping timeout: 272 seconds) 2011-03-03T17:08:05 *** sigh has joined #aichallenge 2011-03-03T17:28:38 antimatroid1: my starter is as fast as yours now 2011-03-03T17:28:55 *** choas has quit IRC (Quit: leaving) 2011-03-03T17:29:57 so there 2011-03-03T17:43:07 even slightly faster :P 2011-03-03T17:45:45 *** JackyAlcine has joined #aichallenge 2011-03-03T17:48:54 *** mega1 has joined #aichallenge 2011-03-03T17:55:31 antimatroid1: is the "o" before an order optional or something? i've noticed that your bot doesn't output it 2011-03-03T17:55:45 or it could be a bug that you never noticed i guess 2011-03-03T18:04:48 *** Mathnerd314 has quit IRC (Ping timeout: 252 seconds) 2011-03-03T18:06:33 *** JackyAlcine has quit IRC (Ping timeout: 240 seconds) 2011-03-03T18:07:03 *** Todd200 has joined #aichallenge 2011-03-03T18:09:03 *** Todd200 has quit IRC (Client Quit) 2011-03-03T18:20:15 jmcarthur: the 'o' is not optional 2011-03-03T18:20:26 * McLeopold checks the engine code 2011-03-03T18:21:31 I'm guessing his ants don't actually move, if there is no 'o' prefix. 2011-03-03T18:23:04 aichallenge: McLeopold epsilon * r9695747 / sql/migrate.sql : Added sql script to migrate from old schema to new schema. - http://bit.ly/elgr9j 2011-03-03T18:25:13 *** superflit has joined #aichallenge 2011-03-03T18:25:16 *** Mathnerd314 has joined #aichallenge 2011-03-03T18:26:00 McLeopold: what does the engine do on illegal input from a bot? 2011-03-03T18:26:28 McLeopold: that would explain why his bot loses so quickly 2011-03-03T18:33:31 amstan: did you know you have to organizations with the id 144? 2011-03-03T18:33:46 McLeopold: lol.. fun 2011-03-03T18:33:49 janzert: all invalid orders are ignored 2011-03-03T18:35:35 amstan: can you do a sanity check for me, and verify that fact on the official server? 2011-03-03T18:35:56 yay, stuff to do 2011-03-03T18:36:17 select * from organizations where org_id = 144; <-- there, copy paste 2011-03-03T18:36:29 yep 2011-03-03T18:36:31 there's 2 2011-03-03T18:36:36 holy crap 2011-03-03T18:36:52 McLeopold: oh well.. just move the 144, put it at the end 2011-03-03T18:36:58 any members? 2011-03-03T18:37:01 probably.. 2011-03-03T18:37:05 i seem to remember this 2011-03-03T18:37:10 is one of them the "Other" org? 2011-03-03T18:37:15 no 2011-03-03T18:37:15 Zannick: no 2011-03-03T18:37:19 huh 2011-03-03T18:37:32 Zannick: though, yes.. we did have 2 others at one time. with different ids though 2011-03-03T18:37:48 McLeopold: the ids of the organizations should be unique 2011-03-03T18:37:49 ah, i might be thinking of that 2011-03-03T18:37:54 same with the ids of the other tables 2011-03-03T18:38:10 'Islamic University of Technology', 'UNEXPO Puerto Ordaz ' 2011-03-03T18:38:43 http://ai-contest.com/organization_profile.php?org_id=144 2011-03-03T18:38:52 I guess you handled it ok? 2011-03-03T18:39:23 McLeopold: hmm? 2011-03-03T18:39:29 inner join magic 2011-03-03T18:39:44 McLeopold: what are you talking about? who handled it ok? 2011-03-03T18:39:58 I mean the website didn't crash 2011-03-03T18:40:18 I'm being facetious. 2011-03-03T18:40:26 McLeopold: A complete new format for the replays ! 2011-03-03T18:40:52 Frontier! So, what do you think? 2011-03-03T18:41:27 I'm still reading. It might be good :) 2011-03-03T18:41:38 What do I do with the ant owner on food? 2011-03-03T18:41:46 McLeopold: it wouldn't really crash 2011-03-03T18:42:08 McLeopold: the only problem would be some random annomalies in displaying stuff 2011-03-03T18:42:31 McLeopold: only one guy had the 144 org 2011-03-03T18:42:52 http://ai-contest.com/profile.php?user_id=12364 2011-03-03T18:42:59 http://ai-contest.com/organization_profile.php?org_id=144 2011-03-03T18:43:03 he appears twice 2011-03-03T18:43:05 lol 2011-03-03T18:45:06 McLeopold: I see too things that would change: 1. ants that die in a collision fad out at the start of the turn currently, as suggested by antimatroid. now they will just fade out at the end like any other ant that dies 2011-03-03T18:45:21 2. the scores wont update during the game any more like they use to now 2011-03-03T18:45:22 Frontier: the ant owner is for hatching an ant from an egg of the right color. It is redundant, but I thought you might like it. 2011-03-03T18:45:45 ah ok, no i dont like redundancy :) 2011-03-03T18:46:06 score turn player0 player1... 2011-03-03T18:46:26 ok that would be nice 2011-03-03T18:46:48 ants colliding is just like ants killing each other. I don't see why it would be different 2011-03-03T18:47:15 or maybe just a "scores" headline and then the bare numbers in each roe 2011-03-03T18:48:25 playerXscore 0 0 0 1 1 2 2 3 4 7 10 2011-03-03T18:48:39 McLeopold: I don't mind the collision stuff myself. antimatroid liked it that way. so the turns are split in 3 parts and one of them is 'move and death from collision' and a later part is 'kills' 2011-03-03T18:49:10 you can still tell the difference if you track the ants 2011-03-03T18:49:31 but, let's say 2 ants collide, and also an enemy ant walks in range? 2011-03-03T18:49:36 you are right. and playerXscore is fine for me 2011-03-03T18:49:57 then they would just collide :) 2011-03-03T18:50:04 I would give the enemy 2 points, and the colliding player 1 point. 2011-03-03T18:50:05 because kill hapens later 2011-03-03T18:50:24 oh ok, so what really happens in the engine is not the same as on screen any more 2011-03-03T18:50:40 wait, the engine does what you suggested... 2011-03-03T18:50:43 even better, then i have no reason to handle that differently 2011-03-03T18:50:53 what? 2011-03-03T18:51:25 if the ants collide how does the enemy get points? 2011-03-03T18:51:34 wait, no, it is like what I said 2011-03-03T18:52:24 no, wrong again 2011-03-03T18:52:44 jmcarthur/antimatroid: I want to have a rules discussion, regarding scores 2011-03-03T18:52:45 where is the code that determines how to run a bot based on the language it's written in? 2011-03-03T18:53:00 it's in the database 2011-03-03T18:53:10 ah 2011-03-03T18:53:20 and i suppose there is no dump of that data? 2011-03-03T18:53:35 in the repo 2011-03-03T18:53:36 8, Haskell, MyBot.hs, ./MyBot, 1 2011-03-03T18:54:22 it expects the zip file to contain a 'MyBot.hs' and will compile it to a MyBot file, then run that. 2011-03-03T18:54:24 i was thinking it might be better for languages that support it to pass a maximum heap size argument to the bots' runtime systems matching the memory bounds imposed by the sandbox 2011-03-03T18:54:36 let me check compile stuff 2011-03-03T18:54:43 didn't someone already move that out of the database? 2011-03-03T18:54:48 that way if a bot is getting close to the memory limit the gc can get more aggressive 2011-03-03T18:54:51 meanwhile, think about scores for colliding ants when the enemy walks in range 2011-03-03T18:54:52 or maybe that was just in zeta 2011-03-03T18:56:03 McLeopold: you mean you want to figure out what happens if A collides with B while in range of C? 2011-03-03T18:56:58 hmm, just found the compiling stuff. i'm gonna change the ghc compile line to a less insane optimization level 2011-03-03T18:57:40 "Haskell" : [["ghc", "--make", BOT + ".hs", "-O2", "-v0"]], 2011-03-03T18:58:04 jmcarthur: on collisions, yes what should happen? 2011-03-03T18:58:07 -O is good enough. occasionally -O2 is faster, but usually it's either the same or slower 2011-03-03T18:58:08 in regards to scorring 2011-03-03T18:58:21 i think i had suggested -O2 when we had the older ghc 2011-03-03T18:58:28 i have no idea. thinking 2011-03-03T18:58:38 jmcarthur: I'll take your recomendation for haskell compiling 2011-03-03T18:58:49 also, can we allow user specific options? 2011-03-03T18:59:58 i did it already 2011-03-03T19:00:05 for compiling? 2011-03-03T19:00:21 aichallenge: Jake McArthur epsilon * r2024cd1 / manager/compile_anything.py : change ghc optimization flag to -O - http://bit.ly/eW6K3C 2011-03-03T19:00:23 yes, options for compiling. might be overkill 2011-03-03T19:00:24 users can override them in the source files already, for haskell 2011-03-03T19:00:30 err 2011-03-03T19:00:44 well, i think the command line overrides, but if the option isn't there already the source file can specify 2011-03-03T19:00:58 so they can't set -O2, but they can set, say -funbox-strict-fields, or whatever 2011-03-03T19:01:35 okay, there are two cases for the collision thing 2011-03-03T19:01:53 if A and B are owned by the same player, that player certainly shouldn't get points for that 2011-03-03T19:02:02 player c? 2011-03-03T19:02:26 the owner of C maybe should 2011-03-03T19:02:40 that's what I'm thinking 2011-03-03T19:02:55 consider if C cornered A and B. if C doesn't get those points then it might be a good idea for A and B to just collide to prevent C from getting them 2011-03-03T19:02:56 otherwise you could suicide yourself to prevent someone from getting points 2011-03-03T19:02:58 yeah 2011-03-03T19:04:07 I could do the fuse thing, then resolve battles like normal 2011-03-03T19:04:09 okay, and in the case that A and B are owned by different players, i think it should be the same as if they had killed each other by range attacks 2011-03-03T19:04:19 yes, range 0 2011-03-03T19:04:36 but our current ranges will prevent that 2011-03-03T19:04:43 they can't get that close 2011-03-03T19:04:46 alright, then we're good 2011-03-03T19:05:04 i don't like the fusion idea. seems to me they should just kill each other, and any enemies in the area get points from it 2011-03-03T19:05:40 are we? so a collision (must be same player) is at least 2 points (maybe more) to whoever wandered in range for that turn only? 2011-03-03T19:05:59 what do you mean "for that turn only"? 2011-03-03T19:06:17 the next turn, the points aren't there. maybe that was too much 2011-03-03T19:06:47 i don't see this affecting the strategy negatively, and it keeps the rules simpler 2011-03-03T19:06:51 if 2 ants are the same distance from the crash site, they share the points 2011-03-03T19:07:13 *** lavalamp has quit IRC (Quit: Page closed) 2011-03-03T19:07:49 so if C and D are around, C gets a point and D gets a point, right? 2011-03-03T19:08:13 it doesn't open anything up for attack. You have an ant that got you points and didn't die. But you'd have to predict the crash and be in range. If you were wrong, you're ant would die because it is in range of a live enemy. 2011-03-03T19:08:27 right 2011-03-03T19:08:34 yes,c and d share 2011-03-03T19:08:49 i'm curious, what happens if the points don't divide evenly? 2011-03-03T19:08:58 I'm using fractions :) 2011-03-03T19:08:58 *** JackyAlcine has joined #aichallenge 2011-03-03T19:09:02 oh 2011-03-03T19:09:13 should i be parsing floats then? 2011-03-03T19:09:17 for the scores 2011-03-03T19:09:40 no 2011-03-03T19:09:46 It's internal to the engine only. 2011-03-03T19:09:50 okay 2011-03-03T19:09:54 I'll take the floor for the final scores. 2011-03-03T19:10:29 Frontier: so, does the collision score decision make sense to you? 2011-03-03T19:11:28 that means colliding ants could look different, but you need to make sure that an enemy ant in range looks like it gets the points, if your doing any point animations 2011-03-03T19:11:30 *** superflit has quit IRC (Quit: superflit) 2011-03-03T19:12:32 omg 2 pages of irc chat to catch up 2011-03-03T19:12:32 McLeopold: what would be ten times as awesome as being able to give compile flags would be to be able to give runtime flags, at least for haskellers 2011-03-03T19:12:42 McLeopold: since that would let you tweak GC settings and stuff 2011-03-03T19:13:29 McLeopold: e.g. if i pass +RTS -A1m to my starter, it goes about 10% faster 2011-03-03T19:13:41 but that wouldn't apply for all bots 2011-03-03T19:13:57 so, who's the compiling chancellor? 2011-03-03T19:14:17 ...czar or ceasar 2011-03-03T19:14:49 if we do bash scripts i might just go with that 2011-03-03T19:14:58 I think we will 2011-03-03T19:15:05 McLeopold: I'm not going to animate points. I would have to implement more game play code than I should :p 2011-03-03T19:15:08 means i have to upload binaries, but oh well 2011-03-03T19:15:21 but, you'd lose your 'haskell' tag on the leader board 2011-03-03T19:15:42 okay fine, i'll make a haskell program that runs a binary 2011-03-03T19:15:45 :P 2011-03-03T19:16:03 btw i converted one of those python test bots called mybot.py (i think) to d 2011-03-03T19:16:31 are we wanting to have all the starters in the aichallenge repo? 2011-03-03T19:16:36 yes 2011-03-03T19:16:49 put it in ants/bots/haskell 2011-03-03T19:16:50 why not :), LOLCODE is also waiting 2011-03-03T19:16:52 okay 2011-03-03T19:17:01 yeah, check out my lolcode! 2011-03-03T19:17:58 what would you say i should do with the library that mine will be dependent on? sticking it in bots/haskell would make it look like a part of the starter, but the intent is for it to not be included with the tarballs 2011-03-03T19:17:59 janzert: do we really need an unknown language in the database? is that before upload? 2011-03-03T19:18:19 we'll have a script to make the tarballs 2011-03-03T19:18:26 it can not include it 2011-03-03T19:18:46 but, if you don't want your library in the repo, don't put it there 2011-03-03T19:18:52 I think it's for before the compile daemon runs on the submission and also if the daemon can't determine the language 2011-03-03T19:19:02 i don't mind it being in the repo. i just don't want it in the starters 2011-03-03T19:19:29 jmcarthur: it shouldn't really be in the repo, if the library is only used in the starter and you don't want to include it in the starter 2011-03-03T19:19:36 okay 2011-03-03T19:19:42 anyone want to create the tarball creation script? 2011-03-03T19:19:46 McLeopold: sure 2011-03-03T19:20:23 the starter pack directories have example bots (hunter) that shouldn't be included either. 2011-03-03T19:20:26 for DIR in ants/bots/*; do; tar czf $DIR.tar.gz $DIR; done 2011-03-03T19:20:30 ah 2011-03-03T19:20:36 nevermind then 2011-03-03T19:20:37 jmcarthur: i wanna do a makefile 2011-03-03T19:20:56 amstan: for the tarballs for for each starter? 2011-03-03T19:21:00 *or for 2011-03-03T19:21:06 jmcarthur: yeah 2011-03-03T19:21:27 one in each starter does make sense, the starter pack writer is responsible for it 2011-03-03T19:21:34 i mean, you want to do a makefile to generate the tarballs or you want to put a makefile in each starter pack? 2011-03-03T19:21:44 jmcarthur: both? yeah.. both 2011-03-03T19:22:03 hmm... if the language has a common project system should the starter use that? 2011-03-03T19:22:20 jmcarthur: define common project system 2011-03-03T19:22:28 haskell projects don't usually use make 2011-03-03T19:22:32 they use cabal 2011-03-03T19:22:45 jmcarthur: yeah, use cabal 2011-03-03T19:23:03 *sometimes* they will also have a makefile that just calls the appropriate cabal commands, but the makefile doesn't even do dependency tracking, normally 2011-03-03T19:23:05 okay 2011-03-03T19:23:07 i think i'll only do a makefile for c++ 2011-03-03T19:23:16 and i guess just include instructions for building 2011-03-03T19:23:21 jmcarthur: readme.md 2011-03-03T19:23:22 jmcarthur: "the engine outputs the player count and scores before giving the final game state, but the spec says it's the other way around" 2011-03-03T19:23:42 why would the engine give it before? it doesn't really matter surely, i can change it though 2011-03-03T19:23:53 antimatroid1: it always gave it before, afaik 2011-03-03T19:24:40 antimatroid1: end\nplayers 6\nscore 3 7 4 6 2 4\n 2011-03-03T19:25:21 antimatroid1: also, in case you missed it, your bot isn't outputting "o" at the beginning of order lines 2011-03-03T19:26:29 amstan: should we make the compiler stuff on the server use the build system? 2011-03-03T19:26:46 jmcarthur: jeff is against that 2011-03-03T19:26:50 jmcarthur: or.. idk 2011-03-03T19:26:50 *** mega1 has quit IRC (Read error: Operation timed out) 2011-03-03T19:26:51 nvm 2011-03-03T19:26:56 because if not then we almost don't want to encourage the use of makefiles, cabal projects, etc. 2011-03-03T19:27:11 ah yeah, i'll fix the orders after 2011-03-03T19:27:13 like... including them by default might imply that changing them will change how they are built on the server 2011-03-03T19:27:20 jmcarthur: i think he wants to stay with compile_everything for now 2011-03-03T19:27:37 jmcarthur: but there's nothing stopping us from including makefiles for people's machines 2011-03-03T19:27:52 yeah.... but then i should definitely *not* be using a cabal project 2011-03-03T19:28:05 since cabal doesn't use the same build commands that the server does 2011-03-03T19:28:26 jmcarthur: yeah, don't make your project dependent on the build system, that wouldn't be a good idea even if we did allow it on the server 2011-03-03T19:29:13 i just don't really like that we're encouraging the use of build systems that aren't used on the server 2011-03-03T19:29:22 seems confusing 2011-03-03T19:30:06 jmcarthur: we're not encouraging, we're just providing makefiles for easier compilation on the contestants machines 2011-03-03T19:30:20 *** Migi32 has quit IRC (Quit: boinc) 2011-03-03T19:30:21 yeah i see the purpose. i'm just talking about unwanted side effects 2011-03-03T19:30:27 Either we change the server to choose Make/Ant/scons/cabal/etc., or we should omit them for clarify. 2011-03-03T19:30:34 s/ify/ity/ 2011-03-03T19:30:34 jmcarthur: just include a big warning that the makefile won't be used 2011-03-03T19:30:34 what he said 2011-03-03T19:31:01 ugh 2011-03-03T19:31:02 Hopefully anyone writing C++ will know how it is compiled, and if not we can put a list of how the server will compile code on the wbsite. 2011-03-03T19:31:20 jbroman: sadly a lot of beginners don't 2011-03-03T19:31:34 but nvm, those beginners won't know how to use makefiles either 2011-03-03T19:31:37 amstan: I'm not sure how they would've gotten past "Hello, world!" without being able to compile? 2011-03-03T19:31:38 amstan: tell them to make a new project in something like code::blocks, it does all the linking for them 2011-03-03T19:32:01 makefiles would be really hax on the server 2011-03-03T19:32:21 I was thinking we were talking about makefiles for making the starter bot tarball only? The make file wouldn't be in the tarball. 2011-03-03T19:32:25 Zannick: why? 2011-03-03T19:32:33 Zannick: sandbox compilation, then run the makefiles 2011-03-03T19:32:35 the compile script would have to generate a makefile based on the files 2011-03-03T19:32:39 McLeopold: i asked for clarification and got the response "both" 2011-03-03T19:32:47 or copy one in 2011-03-03T19:32:58 makefiles are overkill 2011-03-03T19:33:10 Zannick: Presumably if we went that route, we'd include Makefiles in starter packs and require them. Not advocating this, but I don't think there's a technical obstacle. 2011-03-03T19:33:22 jbroman: there is 2011-03-03T19:33:28 jbroman: compilation isn't sandboxed right now 2011-03-03T19:33:41 jmcarthur: Ah right, I'm still living in zeta-land. 2011-03-03T19:33:50 which really needs to be fixed 2011-03-03T19:34:00 makefiles in starters is good, because it allows users to adjust parameters 2011-03-03T19:34:01 yeah 2011-03-03T19:34:09 i wouldn't advocate giving them the whole compile script 2011-03-03T19:34:59 maybe we should have a vote, allow users to customize compiling(with makefiles, bash scripts, etc.)? or continue using compile_anything.py 2011-03-03T19:35:09 i don't want to vote on that yet 2011-03-03T19:35:20 i'd rather discuss a little more 2011-03-03T19:35:43 first thing's first, though. how much trouble would it be to sandbox compilation? 2011-03-03T19:35:44 could it use makefile if it's there otherwise the python script? 2011-03-03T19:36:13 In Zeta, compilation is sandboxed. Is it ultimately cooler to compile based on a Makefile/Rakefile/build.xml/whatever or based on custom commands? 2011-03-03T19:36:17 jmcarthur: well.. compilation should be sandboxed either way, we still have a few leaks on it, apparently the CL compiler also allows compile time code execution 2011-03-03T19:36:33 antimatroid1: if we decide to allow makefile, that's a reasonable way to provide a default 2011-03-03T19:36:39 As a "power user", I like being able to use a build tool, but j3camero would almost certainly call it intimidating. 2011-03-03T19:36:40 I need a generic work for 'skill in relation to hunterbot'. 2011-03-03T19:36:42 amstan: and there are other ways to do it with ghc as well, aside from the way we "fixed" in the last contest 2011-03-03T19:36:43 jbroman: i was thinking to call a ./compile.sh, which has "make" in it 2011-03-03T19:36:53 *** mceier has quit IRC (Quit: leaving) 2011-03-03T19:36:58 jbroman: or "cabal" or we build system they want 2011-03-03T19:36:58 amstan: i like that 2011-03-03T19:37:15 McLeopold: I assume you're going to update the initial sql setup files at some point? I don't expect after you get everything converted that we'll actually be any databases from the current format to the final one 2011-03-03T19:37:19 amstan: Aesthetically, I don't like that. Not that it really matters, as most build systems can be adapted onto one another. 2011-03-03T19:37:22 what about using a qemu vm ? 2011-03-03T19:37:32 qemu is WAY overkill 2011-03-03T19:37:36 (imho) 2011-03-03T19:37:43 I think running as a separate user is the way to go. 2011-03-03T19:38:06 jbroman: IMO, beginners could be nudge toward sticking to the main source file or something. they needn't even mess with the makefile 2011-03-03T19:38:09 *nudged 2011-03-03T19:38:10 may i suggest than also using a chroot jail 2011-03-03T19:38:17 s/than/then* 2011-03-03T19:38:34 jbroman: the thing i like about compile.sh is it is universal 2011-03-03T19:38:37 regarding sandboxed compilation, what jeff was worried about, is that the current system does not allow file writes(what if they create a huge file), and for compilation you need file writes 2011-03-03T19:38:46 jmcarthur: Universal to Unix, anyhow. 2011-03-03T19:38:52 ah 2011-03-03T19:38:56 jbroman: servers are in unix 2011-03-03T19:38:58 jmcarthur: Many people do Java on Windows and use Ant there. 2011-03-03T19:39:00 amstan: two different sandbox types 2011-03-03T19:39:03 amstan: I know. 2011-03-03T19:39:08 oh 2011-03-03T19:39:13 i'd say that is marks against compile.sh, yes 2011-03-03T19:39:22 if we allow build systems, we will get requests for build systems 2011-03-03T19:39:24 jbroman: as long as they include the proper ant command in the command.sh, they should be ok 2011-03-03T19:39:30 if it's there, it's encouragement to use it 2011-03-03T19:39:31 and need to publish which ones/versions we have 2011-03-03T19:39:44 amstan: not on windows 2011-03-03T19:39:46 Zannick: yes, but we can just apt-get them 2011-03-03T19:39:52 amstan: Well sure; as I said, they can all be adapted onto one another. You could have a Makefile with "./compile.sh" as the instruction for all. That's not the point. 2011-03-03T19:39:56 just as fun as talking about which compiler/interpreter we have :) 2011-03-03T19:40:15 well, it at least doesn't have the proper file extensions for windows :P 2011-03-03T19:40:22 *extension 2011-03-03T19:40:51 Zannick: i'd say it would be reasonable to only include a build system if it's the most common build system for a particular language 2011-03-03T19:40:57 jbroman: just making sure i'm understood, the point of the ./compile.sh is just to bootstrap the build system, it doesn't actually compile anything. As long as the build system is cross platform, it won't matter that compile.sh only runs on unix 2011-03-03T19:41:21 amstan: Yeah, and I'm saying that that is not an attribute unique to shell scripts. 2011-03-03T19:41:23 well, we can't run non-unix build systems 2011-03-03T19:41:37 Zannick: We can run non-Unix-only build systems, however. 2011-03-03T19:41:46 yes 2011-03-03T19:41:54 okay yeah, further requirement that it be cross platform 2011-03-03T19:42:14 McLeopold: MyBot.lol :D 2011-03-03T19:42:18 the most common cross-platform build system for each language should be present 2011-03-03T19:42:27 i image most languages come with those anyway, if there is one 2011-03-03T19:42:50 that, or they use make 2011-03-03T19:43:10 antimatroid1: oh, not sure if you saw... my bot is as fast as yours now, and is 10% faster if i tweak the GC settings a little 2011-03-03T19:43:13 This is why I kind of like the "search for one of {Makefile, build.xml, Rakefile, Sconsfile, …}" approach, similar to how compilation is done now. A side disadvantage is that it's harder to tell what language is being used (in fact, chimeras are more likely to exist). 2011-03-03T19:43:20 I don't think build systems will be as essential to have as languages, and they'll be much easier to setup(you just install them, no need to configure the contest to use it). The user's choice will only be shown in the compile.sh file 2011-03-03T19:43:36 jmcarthur: oh it's on, what version of mine were you using? 2011-03-03T19:43:48 i think whether to go with compile.sh or just the build system is bikeshedding 2011-03-03T19:43:51 antimatroid1: the current on in the repo 2011-03-03T19:43:53 *one 2011-03-03T19:44:04 challenge accepted 2011-03-03T19:44:07 :D 2011-03-03T19:44:12 jmcarthur: Oh sure, but bikeshedding is about 60% of what goes on in here anyhow. 2011-03-03T19:44:32 antimatroid1: i fully expect that in an actual competition of this sort C++ should win any day 2011-03-03T19:44:42 antimatroid1: as long as you work hard enough on it 2011-03-03T19:44:44 i sort of agree unfortunately 2011-03-03T19:45:09 planet wars was good with language choice being fairly irrelevant 2011-03-03T19:45:14 i *do* like the idea of the server supporting build systems 2011-03-03T19:45:31 antimatroid1: i meant speed-focused competition 2011-03-03T19:45:38 jbroman: can you please remind me, how do you get globs in makefile? i wanna do something like SOURCES = *.c 2011-03-03T19:45:40 that's what i mean :P 2011-03-03T19:45:58 antimatroid1: but still... it takes a lot of work to push C++ beyond its normal limits 2011-03-03T19:46:14 antimatroid1: whereas with haskell, it starts out slower but it's actually pretty easy to optimize :D 2011-03-03T19:46:30 amstan: http://www.gnu.org/software/make/manual/make.html#Wildcard-Function 2011-03-03T19:46:39 yay, that one 2011-03-03T19:47:03 i would just generate the Makefile, SOURCES = `ls *.c` 2011-03-03T19:47:06 :P 2011-03-03T19:47:14 probably not the best way to do it 2011-03-03T19:47:29 but then again, we've reinvented the wheel multiple times with compile_anything 2011-03-03T19:47:43 Zannick: You probably run "echo $(date)" instead of simply "date", don't you? 2011-03-03T19:47:50 what 2011-03-03T19:48:03 Never mind. 2011-03-03T19:48:08 no, of course not 2011-03-03T19:48:15 i run "echo `date`" 2011-03-03T19:48:16 :P 2011-03-03T19:48:22 no shift key needed 2011-03-03T19:54:37 *** Mathnerd314 has quit IRC (Ping timeout: 252 seconds) 2011-03-03T19:59:40 hmm, can't really see where to speed things up, i moved to just 2 abs calcuations in distance instead of 4, but i don't think my bot is even using that function 2011-03-03T20:00:38 i used profiling to help me 2011-03-03T20:01:31 oh btw, in the interest of fairness, what flags are you passing to g++? 2011-03-03T20:01:44 i was only using -O3. if you think i should do something else, i'm up for trying it 2011-03-03T20:03:34 the server flags? 2011-03-03T20:03:37 looks like compile_anything is using -funroll-loops 2011-03-03T20:03:41 i'll try with that 2011-03-03T20:03:52 in epsilon, yeah 2011-03-03T20:03:57 i removed that from zeta 2011-03-03T20:04:01 ah 2011-03-03T20:04:12 the linker still uses -O2 2011-03-03T20:04:38 i'm kind of surprised to see -funroll-loops there. i've always thought it only sometimes helped 2011-03-03T20:05:12 i don't know why it was included 2011-03-03T20:05:21 jmcarthur: it probably does, I think it's there because someone requested it during tron 2011-03-03T20:05:26 and there were two bugs (?) opened during planet wars asking to remove it 2011-03-03T20:05:32 and no ones ripped it back out since 2011-03-03T20:06:15 sounds like an argument to let makefiles/compile.sh scripts in 2011-03-03T20:06:50 yep, but compilation needs to be sandboxed first 2011-03-03T20:06:52 jmcarthur: i don't play around with those myself 2011-03-03T20:07:09 you could try adding "cout.sync_with_stdio(0);" to the very start of main and seeing if it is any faster 2011-03-03T20:07:27 alright 2011-03-03T20:08:14 antimatroid1: yeah that helped a lot 2011-03-03T20:08:20 you are ahead again 2011-03-03T20:08:23 *** AlliedEnvy has quit IRC (Remote host closed the connection) 2011-03-03T20:08:26 :) 2011-03-03T20:08:45 but i'm already working on my next optimization :P 2011-03-03T20:08:56 jmcarthur: what about the java bots? 2011-03-03T20:10:45 haven't tried them 2011-03-03T20:10:58 which one is the NESW bot? 2011-03-03T20:11:19 i expect us to blow java out of the water 2011-03-03T20:11:26 me too 2011-03-03T20:11:30 *** AlliedEnvy has joined #aichallenge 2011-03-03T20:11:59 *** Mathnerd314 has joined #aichallenge 2011-03-03T20:12:24 would LeftyBot be the closest approximation? 2011-03-03T20:13:36 no 2011-03-03T20:13:38 randombot 2011-03-03T20:13:57 how the heck do i build these things 2011-03-03T20:14:09 I didn't include the build.xml did I? 2011-03-03T20:14:19 nurp 2011-03-03T20:15:03 javac RandomBot 2011-03-03T20:15:30 error: Class names, 'RandomBot', are only accepted if annotation processing is explicitly requested 2011-03-03T20:15:56 .java 2011-03-03T20:16:02 javac RandomBot.java 2011-03-03T20:16:17 http://pastebin.com/6MQzzXUz 2011-03-03T20:16:40 oh, hold on 2011-03-03T20:17:48 aichallenge: Alexandru Stan epsilon * r636e708 / ants/bots/Makefile : added a makefile to zip all starter packs - http://bit.ly/gA2Qcq 2011-03-03T20:17:49 i feel like i just wasted 30 min with that v 2011-03-03T20:18:13 antimatroid1: you gained 33% of your time back from that, btw 2011-03-03T20:18:22 so i have to do something pretty drastic now 2011-03-03T20:19:43 so.. what happened with (compile.sh calling build systems) vs (compile_everything.py)? 2011-03-03T20:20:17 amstan: vs. (putting build systems into compile_everything.py instead of languages)? 2011-03-03T20:20:48 amstan: i like the idea of using build systems on the server. so much more flexible that way. whether it's directly or through the use of compile.sh, i don't care. 2011-03-03T20:20:48 jmcarthur: does it make it any faster if you do the same with cin? 2011-03-03T20:20:52 jmcarthur: but what advantage does that have compared to compile.sh? 2011-03-03T20:21:12 amstan: just cleanliness i guess. i like i said, i don't really care 2011-03-03T20:21:20 amstan: jbroman seems a bit more against it than me 2011-03-03T20:21:29 jbroman: same question 2011-03-03T20:21:32 s/i l/l/ 2011-03-03T20:21:39 antimatroid1: i'll try it 2011-03-03T20:21:42 :) 2011-03-03T20:21:52 Same deal – I just like not having extraneous files if I can avoid it. But not a huge deal, really. 2011-03-03T20:21:55 i have no idea why that makes it faster, but my friend gave me that trick 2011-03-03T20:22:05 it actually becomes faster than using c-style io too i think 2011-03-03T20:22:11 jbroman: is it really cleaner to have a huge ass build_everything.py, with all the build systems in the world, than just compile.sh in every submission 2011-03-03T20:22:11 aichallenge: McLeopold epsilon * r9616d14 / (manager/compile_anything.py ants/bots/Makefile): Merge branch 'epsilon' of github.com:aichallenge/aichallenge into epsilon - http://bit.ly/egXz2j 2011-03-03T20:22:24 antimatroid1: cin.sync_with_stdin(0); ? 2011-03-03T20:22:27 yep 2011-03-03T20:22:28 amstan: If we can do away with all of that, sure. 2011-03-03T20:22:29 okay 2011-03-03T20:22:45 oh, just stdio i think 2011-03-03T20:22:49 If that goes over well, I'd be very happy to dump all of that logic out of it. 2011-03-03T20:22:51 oh 2011-03-03T20:22:53 it wont compile otherwise anyway 2011-03-03T20:22:55 yeah that gave "MyBot.cc:16:5: error: ‘struct std::istream’ has no member named ‘sync_with_stdin’" 2011-03-03T20:22:57 jbroman: thing is, that if we get a build_everything.py, then every time someone wants a new build system installed, we have to edit that file for them 2011-03-03T20:22:58 One thing that would be nice is if you could return the proper exit code. 2011-03-03T20:23:06 oh i misread it 2011-03-03T20:23:11 i read it as stdout 2011-03-03T20:23:11 jbroman: with compile.sh, they just need to call the new system, all we have to do is apt-get it 2011-03-03T20:23:11 (i.e. don't return 0 on failure) 2011-03-03T20:23:38 antimatroid1: i think that one hurt it 2011-03-03T20:23:57 I need git help 2011-03-03T20:23:57 ah cool, that lines now gone, cheers 2011-03-03T20:24:01 McLeopold: fire away 2011-03-03T20:24:04 just barely 2011-03-03T20:24:38 my friend said he thinks it's syncing cout and c stream thing whenever one calls endl, giving the change in time 2011-03-03T20:24:42 amstan: My point is that if someone puts sequential commands in there, you end up with situations where someone puts "make; echo WOOHOO", which will always exit "successfully" (since echo returns 0). 2011-03-03T20:24:46 so one didn't expect much difference with cin if that was the case 2011-03-03T20:25:03 amstan: It makes it trickier to distinguish successful compilation from unsuccessful compilation in such instances. 2011-03-03T20:25:12 antimatroid1: what exactly is meant by "syncing" there? 2011-03-03T20:25:25 amstan: nvm, my new file is there 2011-03-03T20:25:35 jmcarthur: you can pull Bot.java now 2011-03-03T20:25:35 jmcarthur: http://www.cplusplus.com/reference/iostream/ios_base/sync_with_stdio/ 2011-03-03T20:25:35 jbroman: compile.txt? with the one command that's supposed to execute? 2011-03-03T20:26:12 McLeopold: k 2011-03-03T20:26:13 amstan: Nah, shell script beats that. Hopefully most people will just call a build system or compiler, most of which give nice exit codes. 2011-03-03T20:26:23 (Otherwise, the error is still caught. At runtime, if necessary.) 2011-03-03T20:26:41 i should have read that page more, i think the cout line turned it off for cin anyway 2011-03-03T20:26:53 It would also be nice if we could get rid of the running logic in a similar way. 2011-03-03T20:26:59 McLeopold: run with just 'java RandomBot.class'? 2011-03-03T20:27:00 jbroman: a comment in compile.sh? something like: "Please make sure this script does not return successfully on build error" 2011-03-03T20:27:44 nope that's fail 2011-03-03T20:28:02 oh do i need to be in that directory to run it? 2011-03-03T20:28:04 jmcarthur: IIRC, java takes class names, not class files. 2011-03-03T20:28:19 So you specify the (fully qualified) name of the class, which must exist in the classpath with that name. 2011-03-03T20:28:26 oh 2011-03-03T20:28:26 "." is in the classpath, naturally. 2011-03-03T20:28:38 how do i add a classpath? 2011-03-03T20:28:45 *add to it 2011-03-03T20:28:56 So if I have foo.bar.Application in foo/bar/Application.class, I run it with "java foo.bar.Application" . I think -cp adds to the classpath. 2011-03-03T20:29:02 i'm not in the directory with it 2011-03-03T20:29:21 -cp path_to_classpath 2011-03-03T20:29:32 * antimatroid1 is reminded of how much he dislikes java 2011-03-03T20:29:37 aichallenge: McLeopold epsilon * rd490c7e / (4 files in 4 dirs): Added a few .gitignore files. - http://bit.ly/ft5IZy 2011-03-03T20:29:52 Most final Java apps are packaged as jars, which are executed with -jar instead (they include a metadata file which specifies the class to run). 2011-03-03T20:30:06 yeah 2011-03-03T20:30:10 i'm used to those 2011-03-03T20:30:20 dangit. i'll just run from there 2011-03-03T20:30:37 that's easiest 2011-03-03T20:30:46 or you can have my build file if you have ant? 2011-03-03T20:31:15 McLeopold: it seems to just be burning cpu... 2011-03-03T20:31:37 i don't have ant but i could get it if it's not huge (low on hd space) 2011-03-03T20:31:58 jmcarthur: It's annoying, but it does work if the directory structure is correct. 2011-03-03T20:32:03 I just run it from eclipse, I'm not an ant expert 2011-03-03T20:32:11 hmm... it worked that time... 2011-03-03T20:32:32 it's not running in a bash for loop though 2011-03-03T20:32:35 weird 2011-03-03T20:33:01 so, the main optimization I could make has to do with string parsing the input 2011-03-03T20:33:20 I'm building strings and then spliting them later 2011-03-03T20:33:31 McLeopold: the C++ bot is 20 times faster 2011-03-03T20:33:36 :) 2011-03-03T20:33:50 that's alright if he's doing input like that 2011-03-03T20:33:55 yeah 2011-03-03T20:33:56 provided input is still done in almost no time 2011-03-03T20:34:14 i'm reading straight into variables 2011-03-03T20:34:30 did you take into account jvm load time? 2011-03-03T20:34:35 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-03T20:34:36 i'm currently just reading a line and then parsing it manually 2011-03-03T20:34:48 McLeopold: no. i have no real way to do that that i can think of 2011-03-03T20:35:02 McLeopold: i could try going for a really long input file... 2011-03-03T20:35:24 you'd need to time it inside the program i think 2011-03-03T20:35:32 the java split command is a regex, can't look for single characters 2011-03-03T20:35:47 well, i'm also counting ghc's runtime warmup 2011-03-03T20:35:55 there isn't much, but it's more than c++ 2011-03-03T20:36:38 I read a technique for parsing integers that was faster than parseInt if you get 1 char at a time. 2011-03-03T20:37:23 But I think I was still running 1000 turns in about 15 seconds on hunter, which is good enough 2011-03-03T20:37:38 New issues about compilation: https://github.com/aichallenge/aichallenge/issues#issue/15 and https://github.com/aichallenge/aichallenge/issues#issue/16 2011-03-03T20:37:41 o_O 2011-03-03T20:38:11 why the surprise? 2011-03-03T20:38:55 McLeopold: mine is doing 14,300 turns per second 2011-03-03T20:39:12 how did you test that? 2011-03-03T20:39:37 Frontier: badly. it's actually biased against it. i have an input file with 843 turns and i divided that by how many seconds it took 2011-03-03T20:39:39 with random4.txt? 2011-03-03T20:39:54 McLeopold: it was one of antimatroid1's randomly generated maps 2011-03-03T20:40:02 the original run was 2011-03-03T20:40:09 this is the input file from that run 2011-03-03T20:40:13 for one of the bots 2011-03-03T20:40:24 I did the same thing, took a bot input file and ran it through the java bot 2011-03-03T20:40:33 maybe it was faster? 2011-03-03T20:40:37 Now I can remember 2011-03-03T20:40:57 i suspect you are just remembering wrong 2011-03-03T20:41:17 it's going through this 843 turn game in less than a second 2011-03-03T20:41:18 I remember optimizing from 39 seconds down to something 2011-03-03T20:41:20 including warmup time 2011-03-03T20:41:31 the java one, i mean 2011-03-03T20:42:36 I also created a huge map for tests, maybe that was the difference. 2011-03-03T20:42:47 There were 100's of ants in the replay. 2011-03-03T20:42:54 i don't know how many there are in this game 2011-03-03T20:44:24 *** pgpaskar_ has quit IRC (Remote host closed the connection) 2011-03-03T20:44:25 *** jbroman has quit IRC (Quit: Scotty, beam me up!) 2011-03-03T20:44:25 *** Zepp has quit IRC (Read error: Connection reset by peer) 2011-03-03T20:47:00 right.. forgot the need of run.sh 2011-03-03T20:48:13 *** AlliedEnvy has quit IRC (Remote host closed the connection) 2011-03-03T20:50:48 *** AlliedEnvy has joined #aichallenge 2011-03-03T20:52:17 aichallenge: McLeopold epsilon * rcbe9a4d / (sql/migrate.sql sql/001_schema.sql): New mysql schema. - http://bit.ly/ecFyYh 2011-03-03T20:53:02 McLeopold: hold on.. the way i set the sql folder was so that you could just run mysql *.sql and the db would be created 2011-03-03T20:53:12 oops 2011-03-03T20:53:26 It will need some cleanup 2011-03-03T20:53:31 McLeopold: the reason i renamed schema to have 000 in front was so it would be executed first 2011-03-03T20:53:40 I've got a lot of the php files changed, but I'm not going to push them yet 2011-03-03T20:53:49 McLeopold: make a branch then 2011-03-03T20:54:06 and push that 2011-03-03T20:54:22 that requires me to learn branches 2011-03-03T20:54:31 git checkout -b newbranch 2011-03-03T20:54:41 makes a branch from your current tree 2011-03-03T20:54:49 McLeopold: git checkout branchname to move between them 2011-03-03T20:55:21 I'll have to do it later, but okay. 2011-03-03T20:55:22 * jmcarthur is glad to be a darcs user in this sort of case 2011-03-03T20:55:29 branches are rarely even necessary 2011-03-03T20:55:33 branches are awesome.. 2011-03-03T20:55:40 in git.. not svn 2011-03-03T20:55:56 branches are awesome until you realize there are even awesomer alternatives for a majority of cases 2011-03-03T20:56:12 like real cherrypicking 2011-03-03T20:56:26 yay, cherry picking 2011-03-03T20:56:32 *** McLeopold has left #aichallenge 2011-03-03T20:56:34 and git's version of that sucks 2011-03-03T20:56:44 does it? worked fine for me 2011-03-03T20:56:52 it changes the commit's identity 2011-03-03T20:57:07 you can't keep doing it or else you will start getting tons of conflicts 2011-03-03T20:57:36 that's because of git's design, how every commit depends on the parent commits 2011-03-03T20:58:22 for example, in darcs i can commit A, then B, then C, then D. i can then push commits B and D to a public repo without having to worry about whether that will mess with A and C and without having to explicitly reorder them first 2011-03-03T20:58:34 yeah. and i'm just saying i consider git's design to be a problem 2011-03-03T20:58:38 in this regard 2011-03-03T20:59:17 also, people who have B and D can pull A or C from me without fear, either 2011-03-03T21:00:10 jmcarthur: so.. if you can cherry pick B without changing its identity, then git checkout B 2011-03-03T21:00:17 then git checkout HEAD^1 2011-03-03T21:00:19 where are you then? 2011-03-03T21:00:29 if it didn't change its identity it would have 2 parents 2011-03-03T21:00:32 wait, i'm trying to figure out what scenario you are talking about 2011-03-03T21:00:37 i'm talking about darcs, not git 2011-03-03T21:00:46 HEAD^1 means.. go to the parent commit 2011-03-03T21:00:55 patches don't have parents in darcs. they have dependencies 2011-03-03T21:00:56 if git didn't have changing hashes like that 2011-03-03T21:01:07 hmm 2011-03-03T21:01:13 weird 2011-03-03T21:01:27 i'm sure it works somehow.. there's just pros and cons 2011-03-03T21:01:29 a patch only depends on past patches that touch the same code that it does 2011-03-03T21:01:31 it's just different 2011-03-03T21:01:42 not on *all* past patches like in git 2011-03-03T21:02:00 jmcarthur: i'm sure that because of this design in git, it has the con that you said, but it has a pro somewhere else 2011-03-03T21:02:11 the pro is that it's a little faster 2011-03-03T21:02:32 less information and fewer transformations 2011-03-03T21:02:52 also, it makes things like in-place branching make sense at all 2011-03-03T21:02:58 make no sense in darcs, really 2011-03-03T21:03:21 then again, you could say that in darcs *every* patch you record is a new branch, in some sense 2011-03-03T21:03:32 wtf, mazda has done a recall on cars because "ants like them and have been laying their eggs in them" 2011-03-03T21:03:40 ants == spiders 2011-03-03T21:06:02 amstan: the closest approximation i can think of for that scenario you came up with is to 'darcs obliterate' patch B 2011-03-03T21:06:20 amstan: and obliterate doesn't even care if patch B is the most recent patch, so... still only a loose approximation 2011-03-03T21:08:25 *** jbroman has joined #aichallenge 2011-03-03T21:09:54 amstan: if you think of darcs like a package manage and patches like packages, you might have a decent idea of what the model is like 2011-03-03T21:09:58 *package manager 2011-03-03T21:11:06 *** javagamer has joined #aichallenge 2011-03-03T21:15:52 lame python 2011-03-03T21:16:21 1. i can't isntall numpy with 2.7? wtf? 2. the old numeric installer (which i really want and probably wouldn't work anyway) wont even open 2011-03-03T21:18:00 what can't you install numpy with 2.7? 2011-03-03T21:18:49 http://sourceforge.net/projects/numpy/files/NumPy/1.5.1/ has a prebuilt package for 2.7 on windows even 2011-03-03T21:19:00 dunno, it says it needs 2.6 then says pick a package and there aren't any :\ 2011-03-03T21:19:25 downloading that now, cheers 2011-03-03T21:19:42 i grabbed a perlin noise library off the web, but it uses numpy 2011-03-03T21:21:35 Oh no, GHC 7 was released today 2011-03-03T21:21:51 ghc 7 was already out 2011-03-03T21:21:51 now were going to have all the haskell fans demanding we have it :P 2011-03-03T21:21:53 this is an update 2011-03-03T21:21:58 ahh 2011-03-03T21:22:00 nah, 6.12 is reasonable enough 2011-03-03T21:22:08 6.8 was ridiculous 2011-03-03T21:23:28 but i wouldn't complain if ghc 7 was on the server ;) 2011-03-03T21:24:13 oh shit i deleted visualizer.js by setting an eclipse output folder on it Oo 2011-03-03T21:24:44 *** chris___0076 has joined #aichallenge 2011-03-03T21:26:21 :( 2011-03-03T21:26:45 hopefully your VCS came to the rescue 2011-03-03T21:27:31 *** chris__0076 has quit IRC (Ping timeout: 272 seconds) 2011-03-03T21:34:10 janzert: am i meant to be doing something after instlaling for python to find the module Numeric? 2011-03-03T21:34:59 I've never actually used numpy, but if it has a Numeric module you should just be able to "import Numeric" 2011-03-03T21:35:02 No, but I haven't worked much on the visualizer since my last git commit I think 2011-03-03T21:37:29 janzert: i do that, but it claims it can't find it, hmmm 2011-03-03T21:38:18 wasn't numeric the predecessor of numpy or did it just get folded in and expanded? 2011-03-03T21:38:28 why are you using Numeric and not numpy 2011-03-03T21:38:37 janzert: yes, i think so 2011-03-03T21:38:58 sigh: i got a perlin noise thing off the net 2011-03-03T21:39:06 http://twistedmatrix.com/users/acapnotic/wares/code/perlin/ 2011-03-03T21:39:07 that 2011-03-03T21:39:17 antimatroid1: get simplex noise, it's better 2011-03-03T21:40:20 looking at the numpy documentation it looks like everything is under the numpy package 2011-03-03T21:40:37 then try: s/Numeric/numpy/g 2011-03-03T21:40:38 :P 2011-03-03T21:41:28 yeah, looks like that code is from 2001 before numpy was around 2011-03-03T21:41:49 sigh: ? 2011-03-03T21:41:55 and I have no idea how close the numpy api is to the old numeric one 2011-03-03T21:42:04 yeah, I have no idea 2011-03-03T21:42:08 i'll try a different package 2011-03-03T21:42:26 it's just the first thing I would try (or import numpy as Numeric), just ot se if it worked 2011-03-03T21:42:36 *just to see 2011-03-03T21:42:47 * janzert nods 2011-03-03T21:42:47 yeah, no, what do you mean? 2011-03-03T21:42:57 replace that in the import line? 2011-03-03T21:43:07 sure, worth a shot 2011-03-03T21:43:32 if the API hasn't changed for the functions you are using then you will get lucky and it will work 2011-03-03T21:44:46 ah, it's stupid and has "from Numeric import *" 2011-03-03T21:45:04 so just try "from numpy import *" 2011-03-03T21:46:51 i think that worked for the moment, cheers 2011-03-03T21:46:57 cool :) 2011-03-03T21:46:59 i need pygame now before i know if it'll run though 2011-03-03T21:47:11 ahh 2011-03-03T21:47:57 hmm, i thinki sohuld maybe just try another package aha 2011-03-03T21:48:57 haha... especially when the website says: 'Note: This is more of a "code leak" than whatcha call a "release".' 2011-03-03T21:49:13 *** javagamer_ has quit IRC (Quit: Leaving) 2011-03-03T21:50:29 i only need it to work in 2d :P 2011-03-03T21:50:32 anyway, i'm going out for a while 2011-03-03T21:56:37 *** Zepp has joined #aichallenge 2011-03-03T22:05:09 antimatroid1: Could you help me quickly with a browser test? 2011-03-03T22:05:43 I'd like to know what happens when someone clicks 'script' on this page: http://marco-leise.homedns.org/antgui/work/visualizer/wrapper.html 2011-03-03T22:06:36 oh and i need to say: in Internet Explorer, I know the others work except Chromium 2011-03-03T22:12:50 myText set to applet tag 2011-03-03T22:13:06 chrome 2011-03-03T22:13:35 and "empty" turned into "applet tag" 2011-03-03T22:13:38 on the left 2011-03-03T22:13:51 i don't have ie handy though 2011-03-03T22:13:56 chrome supports it? why not on my box with chromium :( 2011-03-03T22:14:17 maybe i should just copy the files over to my windows partition and reboot 2011-03-03T22:20:06 works in IE8 2011-03-03T22:20:16 or at least is the same jmcarther reports above 2011-03-03T22:21:08 cannot be 2011-03-03T22:21:19 IE8 should support the object tag 2011-03-03T22:21:37 janzert: Can you verify that it reads 'applet tag'? 2011-03-03T22:22:11 myText set to applet tag 2011-03-03T22:22:19 copy pasted 2011-03-03T22:22:31 i guess if all browsers consistently use applet that should make me happy :) 2011-03-03T22:22:59 and above the script button it says applet tag and to the right it says empty 2011-03-03T22:23:00 ok thx guys 2011-03-03T22:23:03 :) 2011-03-03T22:27:13 *** chemuduguntar has quit IRC (Ping timeout: 240 seconds) 2011-03-03T22:34:10 *** pyro- has joined #aichallenge 2011-03-03T22:59:55 *** Todd200 has joined #aichallenge 2011-03-03T23:08:43 *** Todd200 has quit IRC (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi)