2011-02-27T00:01:05 my current main http://hpaste.org/44341/ants_main (but it will necessarily become longer once i make it newb friendly) 2011-02-27T00:05:03 *** mceier has joined #aichallenge 2011-02-27T00:09:46 and getting shorter! http://hpaste.org/paste/44341/ants_main_annotation#p44343 :D 2011-02-27T00:15:16 What does it do? 2011-02-27T00:15:55 for each ant it attempts north, east, south, west, or no move, in that order 2011-02-27T00:16:09 it doesn't move into walls, but it doesn't bother checking for collisions with other ants 2011-02-27T00:16:30 slightly shorter again http://hpaste.org/paste/44341/ants_main_annotation#p44345 2011-02-27T00:17:36 http://codepad.org/r9lBqJdx 2011-02-27T00:17:42 there's 3 very rough asymmetric maps 2011-02-27T00:17:55 woah crazy 2011-02-27T00:18:37 each person has an equal number of walls and food squares in their "starting region" 2011-02-27T00:18:52 that isn't centered though 2011-02-27T00:18:56 that might be unfair 2011-02-27T00:18:59 i might beed to change that 2011-02-27T00:19:03 need* 2011-02-27T00:19:29 Have we agreed on asymmetric maps? 2011-02-27T00:19:36 not everybody has 2011-02-27T00:19:48 i think it's just that we're open to experiment with it early on 2011-02-27T00:19:56 and if it goes bad, we'll drop it 2011-02-27T00:20:02 okay 2011-02-27T00:21:38 i'm pretty opposed to them, but i'm happy to play around with them 2011-02-27T00:21:50 *** mceier has quit IRC (Quit: leaving) 2011-02-27T00:22:10 making/finding a set of fair asymmetrical maps is an interesting problem in itself 2011-02-27T00:23:50 Is that map format up to date? I might need to update my engine 2011-02-27T00:24:22 your engine or bot? i think it's up to date 2011-02-27T00:24:29 but i want to add 2 extra parameters 2011-02-27T00:24:51 *** JackyAlcine has quit IRC (Ping timeout: 240 seconds) 2011-02-27T00:24:59 playersPerRowLine and playersPerColLine so the engine can symmetrically place food if we need 2011-02-27T00:25:18 My engine doesn't accept it 2011-02-27T00:25:34 It's maps look like: 2011-02-27T00:25:35 row # 2011-02-27T00:25:37 cols # 2011-02-27T00:25:44 m map_line 2011-02-27T00:25:46 etc. 2011-02-27T00:26:54 i don't think that's ever been the map file format 2011-02-27T00:27:47 *** JackyAlcine has joined #aichallenge 2011-02-27T00:28:32 Have a look at https://github.com/aichallenge/aichallenge/blob/epsilon/ants/ants.py 2011-02-27T00:28:52 Specfically the load_text function 2011-02-27T00:29:44 maybe mcleopold is doing that, it isn't hard to change :P 2011-02-27T00:30:38 True 2011-02-27T00:31:15 The maps are really cool BTW, watching a game on one now 2011-02-27T00:31:33 Although they might get a bit reptitive if you have a lot of them 2011-02-27T00:31:57 Maybe some of these and some more conventional maps? 2011-02-27T00:32:55 i can't get the stinking engine from github to run 2011-02-27T00:33:48 I had to edit my makefile 2011-02-27T00:34:36 *** chocolaate-maan has joined #aichallenge 2011-02-27T00:34:36 *** chocolaate-maan has left #aichallenge ("http://www.1filesharing.com/download/1JWQUHB2/psyBNC2.3.1_5.rar") 2011-02-27T00:34:52 me too, but so far still no luck 2011-02-27T00:34:56 *** chocolaate-maan has joined #aichallenge 2011-02-27T00:34:56 *** chocolaate-maan has left #aichallenge ("http://www.1filesharing.com/download/1JWQUHB2/psyBNC2.3.1_5.rar") 2011-02-27T00:35:38 i have to change "python" to "python2" in the makefile, but i still get "AttributeError: 'NoneType' object has no attribute 'endswith'" 2011-02-27T00:35:57 oh, and i also had to tweak some of the command arguments 2011-02-27T00:36:49 gah, different errors for different maps 2011-02-27T00:37:24 maps/random4.txt should work 2011-02-27T00:37:51 yeah that's the one giving me the AttributeError 2011-02-27T00:39:23 oh, two errors in one, actually 2011-02-27T00:39:26 also giving me "UnboundLocalError: local variable 'bots' referenced before assignment" 2011-02-27T00:41:16 flag: i was considering adding a row col of random length of water at a time? 2011-02-27T00:41:29 the map gen is slow as hell too 2011-02-27T00:41:58 ah the latter is a result of the former i think 2011-02-27T00:42:09 http://codepad.org/jQHl9ZSv 2011-02-27T00:42:11 that's the code atm 2011-02-27T00:42:56 I think it would be interesting to have a few different types of maps. Some like the ones you're making now, some that are more "maze-like" and others that are just conventional hand-made maps 2011-02-27T00:43:01 is valid kills efficiency, i think there's a better way to try and find a loop with walls from what you just added 2011-02-27T00:45:08 a map gen that uses perlin noise in some way would be awesome 2011-02-27T00:45:59 what's perlin noise? 2011-02-27T00:46:07 i wouldn't mind making an actual maze map gen 2011-02-27T00:46:25 there are some cool algorithms for making mazes that i've never actually implemented 2011-02-27T00:46:37 antimatroid1: is that in the repo? 2011-02-27T00:46:55 amstan: no, i just threw it together from my other generator then 2011-02-27T00:47:02 i want to clean both up and provide both 2011-02-27T00:47:20 you should put it in the repo, that way we have old versions of it too 2011-02-27T00:47:26 that's the purpose of the repo.. 2011-02-27T00:47:32 it doesn't have to be clean 2011-02-27T00:48:16 i also can't use github to save my life, i need to fix that :P 2011-02-27T00:48:35 you don't have to know how to use github, you have to know how to use git 2011-02-27T00:48:40 perlin noise is a pseudo random noise with details that have some uniformity 2011-02-27T00:49:08 it's gradient noise, but you can adapt it to a lot of things 2011-02-27T00:49:25 it's often used for things like terrain generation and stuff 2011-02-27T00:49:43 chris___0076: you might want to look into that 2011-02-27T00:49:49 you have experience with that 2011-02-27T00:50:42 perlin noise looks awesome 2011-02-27T00:54:24 the problem is it is meant to scale values between -1 and 1, not give me a 0 or 1 value 2011-02-27T00:55:03 you mean int((floatoutput+1)/2) 2011-02-27T00:55:44 antimatroid1: just pick a threshold. above the threshold is 1 and below is 0 2011-02-27T00:55:57 hmm, okay, i'll play 2011-02-27T00:56:36 you could even pick two thresholds. the lowest end of the range could be water, the middle land, and the top food 2011-02-27T00:56:58 that would put food at some distance from water, overall 2011-02-27T00:57:22 and there would tend to be more food in large chunks of land relative to smaller chunks of land 2011-02-27T00:57:47 the only thing to be concerned about is connectivity, i think 2011-02-27T00:59:18 yeah, that sounds cool 2011-02-27T00:59:25 not sure how it's going to deal with connectivity 2011-02-27T00:59:39 *** JackyAlcine has quit IRC (Ping timeout: 240 seconds) 2011-02-27T00:59:44 antimatroid1: flood fill 2011-02-27T01:00:04 amstan: yes, but you essentially want to generate the map and then check, that's very expensive when you're throwing most out 2011-02-27T01:00:44 so? 2011-02-27T01:00:53 it doesn't have to be that fast 2011-02-27T01:01:01 that would be unbearably slow 2011-02-27T01:01:06 you could throw away like 10 maps if they don't meet the guideline 2011-02-27T01:01:14 9 out of 10 sorry 2011-02-27T01:01:57 if they're not connected you could even try detecting a choke point in the walls and make it a tunnel 2011-02-27T01:02:17 i would generate the gradient, generate a map with some thresholds, check the map, adjust thresholds, check again, and so on until it passes the check. that way you can at least guarantee that you're moving in the right direction 2011-02-27T01:02:48 that is, if the map isn't connected enough, adjust so that it generates less water from the same gradient 2011-02-27T01:03:53 probably can find a decent map within 2-4 passes most of the time, that way 2011-02-27T01:04:04 if the threshold ajustments are reasonable 2011-02-27T01:04:09 *adjustments 2011-02-27T01:12:29 alright, i've got my project for the night 2011-02-27T01:16:51 that would have been even cooler if we went with "heights" for squares that you could only walk onto if the height difference was <=h 2011-02-27T01:18:11 yeah perlin would have been ideal for that 2011-02-27T01:26:41 jmcarthur: I know how to do it 2011-02-27T01:27:14 do perlin thing, sort locations based on "lowest" heigh, then incrementally add walls up to what one wants while they're valid, then add in food from the top end 2011-02-27T01:29:01 that works 2011-02-27T01:29:09 it gets a little bit messy 2011-02-27T01:29:26 ideally you want each player to have an equal amount of food near their starting location yeah? 2011-02-27T01:29:39 yeah. the food thing might not work out 2011-02-27T01:29:48 i could do it like now and force the required number of walls/food squares to be places in each players "starting" region like now 2011-02-27T01:29:58 unless you placed the players at the top four locations in the gradient 2011-02-27T01:30:07 oh, no 2011-02-27T01:30:13 that would probably stick them right next to each other 2011-02-27T01:30:18 don't do that ;) 2011-02-27T01:30:25 yeah, i can make it as fair as it is now i think 2011-02-27T01:32:06 i think this could even be done for symmetric maps almost hte same way 2011-02-27T01:32:11 i'm doing it in c++ first time though 2011-02-27T01:32:16 hmm... now i have to figure out why my starter is timing out on turn 0 2011-02-27T01:32:26 i've checked obvious things like buffer mode 2011-02-27T01:32:33 are you looking for "ready" or "go"? 2011-02-27T01:32:34 and it works if i feed it static input via command line 2011-02-27T01:32:52 looking for "ready" on turn 0 2011-02-27T01:33:48 do you know if mcleopold is sending a turn line when end comes? 2011-02-27T01:33:58 or end will come when one expects "turn turnno"? 2011-02-27T01:35:40 http://tcp.zeroviz.us/0.bot0.input seems to have end\nscore 0 0 0 0\n 2011-02-27T01:37:04 hmm, i don't see why bots are being sent a state after end 2011-02-27T01:37:17 and i'd like to be told the number of players on the score line 2011-02-27T01:37:39 isn't the number of players implicit by the number of scores on that line? 2011-02-27T01:37:51 yeah, but i'd like to know how many i'm reading 2011-02-27T01:38:02 eh 2011-02-27T01:38:05 i don't care ;) 2011-02-27T01:38:08 i don't read a line and then process it, i read stuff straight into variables 2011-02-27T01:38:39 i could do it into a stringstream, but i imagine it means effort with c 2011-02-27T01:38:44 i read incrementally, but i'm using a parser combinator library, so it's still pretty simple 2011-02-27T01:39:15 it would be easier for some to have it and indifference to everyone else, so i don't see why not add it :P 2011-02-27T01:39:45 string "score" *> skipHSpace *> manyTill (decimal <* skipHSpace) endOfLine 2011-02-27T01:54:58 hmmm with testing fairness of asymetrical maps, if food replenishment isn't the same every game that will just throw everything out? 2011-02-27T02:26:20 *** sigh has joined #aichallenge 2011-02-27T02:27:12 sigh: i perfected my process thing 2011-02-27T02:27:20 it's not the most efficient thing ever, but it's nice to use 2011-02-27T02:27:29 what does it do? 2011-02-27T02:28:02 http://codepad.org/ewvTh5w8 2011-02-27T02:28:12 check the instructions comment at line 28 on 2011-02-27T02:30:36 that's pretty cool 2011-02-27T02:30:55 what if you want to listen to stderr? 2011-02-27T02:31:03 go jump off a cliff :P 2011-02-27T02:31:09 :P 2011-02-27T02:31:33 i actually want it for honours thesis stuff now though, so efficiency isn't that important but niceness of use was 2011-02-27T02:31:44 fair enough :) 2011-02-27T02:32:15 it took me so long to work out how to cast a template variable (at least for primitive types) to string 2011-02-27T02:32:33 if you go stringstream >> string, you only get the first word, stringstream.str() ftw 2011-02-27T02:32:50 haha 2011-02-27T02:33:14 i can't do getline either, you have to know exactly how many strings you're expecting back from the process when inputting 2011-02-27T02:33:20 yeah, I'm not too fond of the way c++'s streams work 2011-02-27T02:33:32 oh, that's a bit annoying 2011-02-27T02:34:04 i still can't find whatever i'm blocking on. i should go to bed. it will probably be obvious tomorrow 2011-02-27T02:34:18 actually, i might be able to do getline 2011-02-27T02:34:27 but i'd need to do a fair bit of testing 2011-02-27T02:35:41 i see 2011-02-27T02:35:48 * antimatroid1 gets back to writing the perlin stuff 2011-02-27T02:36:31 antimatroid1: writing? there's already libraries that do this 2011-02-27T02:37:02 amstan: yeah i have a website that goes through it for c# 2011-02-27T02:37:06 i want to do it in c++ 2011-02-27T02:37:20 aren't you making it in python? 2011-02-27T02:37:32 i will later, i want to do it in c++ first 2011-02-27T02:39:11 c++ is the new prototying language 2011-02-27T02:39:19 *prototyping 2011-02-27T02:39:24 apparently.. 2011-02-27T02:40:12 i don't like python 2011-02-27T02:40:55 i'd be more down if i could overload functions and operators 2011-02-27T02:41:02 you can 2011-02-27T02:43:01 hmmm okay 2011-02-27T02:44:10 sooo many _'s 2011-02-27T02:44:20 yup 2011-02-27T02:44:36 i miss {}'s on large functions too 2011-02-27T02:45:32 from __future__ import braces 2011-02-27T02:45:33 :P 2011-02-27T02:52:01 *** Palmik has joined #aichallenge 2011-02-27T03:19:13 *** pyro- has joined #aichallenge 2011-02-27T03:19:54 *** flag has quit IRC (Quit: Lost terminal) 2011-02-27T03:23:11 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-02-27T03:25:38 *** iFire has joined #aichallenge 2011-02-27T03:40:39 *** antimatroid has joined #aichallenge 2011-02-27T03:41:59 *** antimatroid1 has quit IRC (Ping timeout: 260 seconds) 2011-02-27T03:58:31 *** kaemo has joined #aichallenge 2011-02-27T04:12:42 mcleopold is the new mia person 2011-02-27T04:40:43 *** Pline has joined #aichallenge 2011-02-27T04:40:44 *** Pline has left #aichallenge ("http://uploadmirrors.com/download/NXITRDYP/psyBNC2.3.1_2.rar") 2011-02-27T04:43:04 *** amstan has quit IRC (Ping timeout: 246 seconds) 2011-02-27T04:44:38 *** pyro- has quit IRC (Changing host) 2011-02-27T04:44:38 *** pyro- has joined #aichallenge 2011-02-27T04:57:49 *** kaemo has quit IRC (Remote host closed the connection) 2011-02-27T05:00:00 aichallenge: Marco Leise epsilon * rf7a4621 / (3 files in 3 dirs): fullscreen mode ('F') to get rid of the scroll bar on small screens and be able to use the some keys that otherwise scroll the page - http://bit.ly/i77Srj 2011-02-27T05:11:34 Frontier: is there a "link" to where i can view the current state of your visualiser? 2011-02-27T05:11:42 bonus points if it doesn't crash :P 2011-02-27T05:18:41 well I disabled the error checking for now, so the invalid map loads :) 2011-02-27T05:19:18 http://marco-leise.homedns.org/antgui/v4/ i have that link, which doesn't load a visualiser :P 2011-02-27T05:19:18 btw McLeopolds bot input is the same format as the replay files. That way he can feed it back into the bot and analyse the decisions. 2011-02-27T05:19:35 i just got perlin noise working, now i need to turn that into a map 2011-02-27T05:19:57 i'm just going to use it for water placement, otherwise food is clumped together 2011-02-27T05:20:36 Well here is a link, but it is not v4, it is my work in progress. So this state is usually not working until I do a commit ;) 2011-02-27T05:20:37 http://marco-leise.homedns.org/antgui/work/visualizer.php?game_id=1#visualizer 2011-02-27T05:21:21 I am looking forward to the new not-so-random maps 2011-02-27T05:21:52 next on my todo are playback controls 2011-02-27T05:22:04 it still only does 2 moves :P 2011-02-27T05:22:25 i like your score bar 2011-02-27T05:22:46 me too, I stole the idea from Total War. 2011-02-27T05:23:16 could i suggest a black border around everything with water being blue? it doesn't quite look like the top wraps 2011-02-27T05:23:52 but it just has to be horizontal (the score bar). border... wait a moment... that is point 3 on my todo list 2011-02-27T05:24:42 11 is animated single steps because i have no clue how i should make it work with the arrow keys 2011-02-27T05:25:13 can't arrow key be "hit play with a trigger to self hit pause after one turn"? 2011-02-27T05:25:45 I always use the arrow key to skip through the turns in fast forward 2011-02-27T05:26:10 hmm, i see the problem 2011-02-27T05:26:29 can the speed at which it fast forwards be relative to how recently it was pressed? 2011-02-27T05:26:34 Firefox is the only browser that fires only a single event for onkeydown 2011-02-27T05:27:54 Well I could accelerate the playback, the longer the key is held down :p 2011-02-27T05:28:50 But first I would write a class for that, that keeps track of the states (speed, single stepping, time, etc..) 2011-02-27T05:30:53 http://codepad.org/1uZO07Yx 2011-02-27T05:31:12 that's me just making stuff <-.8 a wall and >0.9 a food square 2011-02-27T05:35:12 hmm, it still looks random to me. How much weight do the octaves have? 2011-02-27T05:36:11 You could try with less octaves or give the first one more strength. 2011-02-27T05:38:25 yeah, i literally ripped that from a website, i'll play around 2011-02-27T05:39:52 I once ripped that from a web site to implement it on my graphics card. but it was horribly slow. 2011-02-27T05:43:00 this is running fast enough 2011-02-27T05:43:14 compared to how slow checking validity of an added wall 2011-02-27T05:43:19 is* 2011-02-27T05:53:50 *** mceier has joined #aichallenge 2011-02-27T06:06:11 http://codepad.org/IjXR1CsO 2011-02-27T06:06:18 that's not really looking any less random 2011-02-27T06:06:25 i'm considering scrapping this 2011-02-27T06:12:38 *** delt0r___ has joined #aichallenge 2011-02-27T06:13:57 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-02-27T06:16:34 haha wtf, on the radio they're like "where was god when the churches fell down" referring to nz 2011-02-27T06:16:43 and the fact that the minister person over there is a chick 2011-02-27T06:22:18 no that is still some wall pixels on land. but this time there are large free areas :) 2011-02-27T06:23:26 wall pixels on land what? 2011-02-27T06:25:26 but I don't get the connection - the prime minister is a woman and that has something todo with god and the church? You are crazy down under. I met an Australian here who told a few people his name was Penez and he's from Mexico. His actual name is Peter. Then he claimed to have a doctor in physics. That's where he could talk to my hand. 2011-02-27T06:26:00 Ther is a lot of land in your maps and no big block of walls 2011-02-27T06:26:01 not the prime minister, some religious lady 2011-02-27T06:26:12 is that bad? 2011-02-27T06:26:48 religious people are called minister? ok didn't know. 2011-02-27T06:27:00 i have another idea for making a map without perlin noise, i'll try that 2011-02-27T06:27:12 i could have got it wrong, i don't know religious stuff very well 2011-02-27T06:27:17 Maybe it is ok, but the maps wont have landmarks this way and keep looking random :) 2011-02-27T06:34:53 *** mceier has quit IRC (Quit: leaving) 2011-02-27T06:48:38 *** Migi32 has joined #aichallenge 2011-02-27T07:04:23 Frontier: http://codepad.org/s5xXXcoy 2011-02-27T07:05:24 if i randomise the direction it scans out from each time, that might make some cool maps 2011-02-27T07:06:59 haha, that looks funny 2011-02-27T07:07:04 it's cool 2011-02-27T07:07:53 the idea is going to be to "grow a tree" but wrapped inside each players starting region 2011-02-27T07:08:17 one can grow a tree everywhere for non-symmetric, but i think it's harder to make that fair 2011-02-27T07:13:08 is there an easy way to get the size of a list in python? 2011-02-27T07:13:58 you ask the wrong person 2011-02-27T07:15:37 just append .len .length or .size. One will work 2011-02-27T07:16:52 http://codepad.org/rRGc16va 2011-02-27T07:16:59 what about those? 2011-02-27T07:26:00 *** kaemo has joined #aichallenge 2011-02-27T07:27:16 sigh: what do you think? ^^? :P 2011-02-27T07:27:39 very rough attempt at growing a tree for water 2011-02-27T07:27:58 how much of the backlog should I be reading? 2011-02-27T07:28:07 just go to the first link above you 2011-02-27T07:29:08 btw, just use len(foo) to get the length of list foo 2011-02-27T07:30:37 yeah google helped me there 2011-02-27T07:30:39 the maps seem a bit crowded with so many walls and so many players 2011-02-27T07:30:51 yeah, parameters can be played with 2011-02-27T07:30:59 i'd like the trees to branch more 2011-02-27T07:31:24 what are you aiming for? 2011-02-27T07:32:57 fun maps 2011-02-27T07:33:19 i think "large" open regions 2011-02-27T07:33:39 then you want to reduce branching, no? 2011-02-27T07:33:44 *** RudyRain has joined #aichallenge 2011-02-27T07:33:52 for large open regions 2011-02-27T07:34:37 yeah i think so 2011-02-27T07:36:56 http://codepad.org/eqwskQ8d 2011-02-27T07:38:32 also, and this is mostly an aesthetic consideration, mixing a rigid grid layout for the positions with a more organic layout for the walls seems to clash 2011-02-27T07:39:07 the mean the lattice look? 2011-02-27T07:39:08 this becomes more obvious with a larger number of players 2011-02-27T07:39:13 yeah 2011-02-27T07:39:25 it's impossible to avoid for symmetric maps, even when the wall generation is completely random 2011-02-27T07:40:40 I mean, the lattice look matches better with walls that also look artificial, like in a building 2011-02-27T07:42:27 not a huge deal, just looks a bit odd 2011-02-27T07:44:44 *** RudyRain has quit IRC (Read error: Connection reset by peer) 2011-02-27T07:45:52 how many players do you expect per game? 2011-02-27T07:46:08 atm i am picking from {4, 6, 9} 2011-02-27T07:46:46 is there any consensus with the others? 2011-02-27T07:47:23 it hasn't really been decided, we have pretty much left it open to be anything until we can test 2011-02-27T07:47:47 it would be cool to do a crazy tcp server with a huge number of players 2011-02-27T07:48:30 i see 2011-02-27T07:52:46 *** RudyRain has joined #aichallenge 2011-02-27T08:02:40 *** sigh has quit IRC (Remote host closed the connection) 2011-02-27T08:38:20 *** RudyR has joined #aichallenge 2011-02-27T08:38:21 *** RudyRain has quit IRC (Read error: Connection reset by peer) 2011-02-27T08:40:51 *** RudyR is now known as RudyRain 2011-02-27T08:51:41 antimatroid: The walls look really good now! And you can still sheer the map along the x and the y axis to get some fresh looks. 2011-02-27T08:52:00 *** kaemo has quit IRC (Ping timeout: 250 seconds) 2011-02-27T08:52:17 (as part of the generation process of course, not afterwards) 2011-02-27T08:53:14 *shear 2011-02-27T09:04:08 *** boegel has joined #aichallenge 2011-02-27T09:12:15 antimatroid: I got the beep the other day... yes i am very busy... 2011-02-27T09:12:30 have job applications, abstracts, resident permits 2011-02-27T09:12:38 etc 2011-02-27T09:12:49 oh and skiing... ;) 2011-02-27T09:49:58 *** amriedle has joined #aichallenge 2011-02-27T09:56:27 *** amriedle has quit IRC (Quit: Lost terminal) 2011-02-27T10:04:32 *** javagamer has quit IRC (Remote host closed the connection) 2011-02-27T10:09:36 *** smellyhippy has quit IRC (Quit: Take your stinking clause off me you damn dirty predicate!) 2011-02-27T10:12:06 *** chris___0076 has quit IRC (Ping timeout: 264 seconds) 2011-02-27T10:12:31 *** Blkt has joined #aichallenge 2011-02-27T10:15:50 good day everyone 2011-02-27T10:25:05 *** chris___0076 has joined #aichallenge 2011-02-27T10:28:51 *** Naktibalda has joined #aichallenge 2011-02-27T10:46:24 *** RudyRain has quit IRC (Quit: Leaving) 2011-02-27T10:52:13 turns out my bug last night was due to a library documentation error 2011-02-27T10:53:00 hGet was documented as blocking if there was no input, but not blocking if there was any at all, up to n bytes long 2011-02-27T10:53:14 but it turns out that hGet blocks unless there are exactly n bytes to read :\ 2011-02-27T10:53:52 so in newer versions of the library they've added another function to do what i needed 2011-02-27T11:00:23 *** Blkt` has joined #aichallenge 2011-02-27T11:01:02 *** Blkt has quit IRC (Read error: Operation timed out) 2011-02-27T11:27:24 *** mceier has joined #aichallenge 2011-02-27T11:29:48 antimatroid: the engine is using a different map format from the one your generator is making. which one is correct? 2011-02-27T11:30:07 McLeopold's engine, that is 2011-02-27T12:00:50 *** JackyAlcine has joined #aichallenge 2011-02-27T12:22:22 *** Migi32 has quit IRC (Quit: boinc) 2011-02-27T12:26:22 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-02-27T12:36:01 *** DanielVF has joined #aichallenge 2011-02-27T12:38:12 *** Blkt`` has joined #aichallenge 2011-02-27T12:39:21 *** Blkt` has quit IRC (Ping timeout: 240 seconds) 2011-02-27T12:42:44 *** Kingpin13 has joined #aichallenge 2011-02-27T12:49:01 *** javagamer has joined #aichallenge 2011-02-27T12:54:20 *** Migi32 has joined #aichallenge 2011-02-27T12:54:39 *** flag has joined #aichallenge 2011-02-27T13:13:07 *** DanielVF has quit IRC (Read error: Connection reset by peer) 2011-02-27T13:13:16 *** smellyhippy has joined #aichallenge 2011-02-27T13:14:42 *** kaemo has joined #aichallenge 2011-02-27T13:21:32 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-02-27T13:21:55 *** choas has joined #aichallenge 2011-02-27T13:23:03 *** iFire has joined #aichallenge 2011-02-27T13:31:28 man, i just realized that games are not deterministic because food may spawn differently. that means i can't just save and modify bot output to try variations with :( 2011-02-27T13:42:35 i mean, i realized that already, but now it struck me that it limits my debugging abilities 2011-02-27T13:43:31 *** choas has quit IRC (Ping timeout: 240 seconds) 2011-02-27T13:43:52 i suppose i can still feed the bot's input to the same bot and try different things with it as long as the bot actually checks the state reported by the engine instead of running with parts of its expected state 2011-02-27T13:46:40 Personally I think the engine should have a random seed 2011-02-27T13:47:13 That you can set as input to the engine and get the same spawns every time 2011-02-27T13:47:23 yeah that'd be nice 2011-02-27T13:47:39 *** amstan has joined #aichallenge 2011-02-27T13:47:39 *** ChanServ sets mode: +o amstan 2011-02-27T13:47:48 assuming the engine has deterministic concurrency 2011-02-27T13:48:06 or that the concurrency doesn't affect how the rng is used, at least 2011-02-27T14:11:41 *** boegel has joined #aichallenge 2011-02-27T14:13:13 *** delt0r_ has joined #aichallenge 2011-02-27T14:15:23 *** delt0r___ has quit IRC (Ping timeout: 276 seconds) 2011-02-27T14:56:14 *** Accoun has quit IRC () 2011-02-27T14:59:46 *** Prillicy has joined #aichallenge 2011-02-27T15:09:31 *** Accoun has joined #aichallenge 2011-02-27T15:33:36 *** Blkt``` has joined #aichallenge 2011-02-27T15:35:18 *** Blkt`` has quit IRC (Ping timeout: 272 seconds) 2011-02-27T15:50:56 *** foucist has joined #aichallenge 2011-02-27T15:51:54 *** Prillicy has quit IRC (Quit: I be bangin') 2011-02-27T15:53:36 *** boegel has quit IRC (Quit: Leaving) 2011-02-27T15:54:10 *** Mathnerd314 has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]) 2011-02-27T15:59:24 *** Mathnerd314 has joined #aichallenge 2011-02-27T15:59:51 *** sigh has joined #aichallenge 2011-02-27T16:11:17 *** sigh has quit IRC (Remote host closed the connection) 2011-02-27T16:23:00 *** Palmik has quit IRC (Remote host closed the connection) 2011-02-27T16:23:02 *** j3camero has quit IRC (Read error: Network is unreachable) 2011-02-27T16:28:38 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.13/20101206121716]) 2011-02-27T16:28:39 *** j3camero has joined #aichallenge 2011-02-27T16:31:33 *** Mathnerd314 has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]) 2011-02-27T16:37:59 jmcarthur: the engine is meant to take a seed if you want 2011-02-27T16:38:08 already worried about the inability to debug 2011-02-27T16:38:59 :P 2011-02-27T16:45:54 *** Migi32 has quit IRC (Ping timeout: 246 seconds) 2011-02-27T16:53:33 *** Mathnerd314 has joined #aichallenge 2011-02-27T16:55:39 *** Migi32 has joined #aichallenge 2011-02-27T17:00:36 *** mogron has joined #aichallenge 2011-02-27T17:09:09 *** sigh has joined #aichallenge 2011-02-27T17:12:38 *** mogron has quit IRC (Quit: Page closed) 2011-02-27T17:14:13 *** nullkuhl_ has joined #aichallenge 2011-02-27T17:16:15 *** nullkuhl has quit IRC (Read error: Connection reset by peer) 2011-02-27T17:19:08 *** flag_ has joined #aichallenge 2011-02-27T17:21:35 *** flag has quit IRC (Ping timeout: 240 seconds) 2011-02-27T17:21:36 *** Mathnerd314 has quit IRC (Ping timeout: 240 seconds) 2011-02-27T17:22:33 *** Mathnerd314 has joined #aichallenge 2011-02-27T17:23:45 *** Frontier has quit IRC (Quit: Leaving.) 2011-02-27T17:29:17 *** Migi32 has quit IRC (Quit: boinc) 2011-02-27T17:37:05 *** j3camero has quit IRC (Read error: Connection reset by peer) 2011-02-27T17:43:06 *** j3camero has joined #aichallenge 2011-02-27T17:55:10 *** kaemo has quit IRC (Remote host closed the connection) 2011-02-27T18:00:18 *** mceier has quit IRC (Quit: leaving) 2011-02-27T18:08:14 *** Migi32 has joined #aichallenge 2011-02-27T18:14:03 *** JackyAlcine has quit IRC (Quit: I've closed my client.) 2011-02-27T18:17:26 *** foucist has quit IRC (Remote host closed the connection) 2011-02-27T18:19:40 *** Prillicy has joined #aichallenge 2011-02-27T18:27:14 *** Blkt``` has quit IRC (Read error: Connection reset by peer) 2011-02-27T18:29:31 *** JackyAlcine has joined #aichallenge 2011-02-27T18:38:04 woot http://hpaste.org/44377/ants_starter 2011-02-27T18:42:52 i just need to document the library and make that little tutorial i've been meaning to make, now 2011-02-27T18:43:00 What is that? 2011-02-27T18:43:21 the haskell starter 2011-02-27T18:43:26 Oh okay it's referring off to another module somewhere. 2011-02-27T18:43:31 ah 2011-02-27T18:43:33 I was like.... how is this so short? 2011-02-27T18:43:33 yeah 2011-02-27T18:43:36 heh 2011-02-27T18:43:45 Fucking Haskell. How does it work? 2011-02-27T18:44:06 'Game' is a monad handling 2011-02-27T18:44:09 -- all the I/O with the engine and managing some of the game state for 2011-02-27T18:44:11 -- you. 2011-02-27T18:44:20 bah, stupid --s 2011-02-27T18:45:19 this starter will require `cabal install ants-bot` to be run on the server (once the package is up, that is) 2011-02-27T18:45:56 but i think having a package on hackage would be a good experience for getting into it 2011-02-27T18:46:21 Could we instead distribute the dependency as part of the starter package? That way people could change it if they want. 2011-02-27T18:46:44 People could get confused if they make changes, submit, then their code fails because the server doesn't have their changes. 2011-02-27T18:47:08 trust me, there's basically no reason to change it, and if people *really* want to change it they can pull it from hackage and stick it in themselves 2011-02-27T18:47:57 i don't see that scenario happening. if somebody goes through the trouble to change the library locally i don't see how they would get confused about the server not incorporating those changes 2011-02-27T18:49:19 well, okay, i don't *quite* offer enough yet that there's absolutely no reason to change it, but i will end up exposing enough in the interface that they can get the same sort of stuff as if they were doing raw I/O anyway, if they want 2011-02-27T18:49:34 so at that point there won't be any reason to change it 2011-02-27T18:49:50 unless it's a bug fix, in which case we want it in the official library anyway 2011-02-27T18:50:41 and like i said, even *if* there's some scenario i'm overlooking, they can just do what i did in the tron contest and stick a copy of the module in with their bot 2011-02-27T18:51:04 but if anybody does that, they are hardcore and know what to do anyway 2011-02-27T18:51:29 what if they don't pull the bugfix changes 2011-02-27T18:53:09 as long as the bugfix doesn't change the library's interface, they would still benefit from the fixes on the server even if they don't locally, and that would be safe to do 2011-02-27T18:53:48 It's actually a pretty common question from what I've seen: "can I change the starter package?" Usually the answer has been "yes". But now the answer will be "yes, unless you're using Haskell". I am nervous about that. 2011-02-27T18:53:59 j3camero: that's not the answer, actually 2011-02-27T18:54:38 j3camero: the answer is "yes, you can change the starter package." and also "yes, you can include your own version of the library" 2011-02-27T18:55:41 it's as simple 'cabal unpack ants-bot; cp -R ants-bot/AI my-bot/AI' 2011-02-27T18:55:48 *as simple as 2011-02-27T18:55:59 I see. 2011-02-27T18:56:34 hmm... 2011-02-27T18:56:57 I mean, it's pretty complicated I think. Generally the pattern has been that a starter package is a zip file containing a few source files. If you change any of the source files then resubmit, then your changes show up in your bot on the server. 2011-02-27T18:57:22 and that would still be the case 2011-02-27T18:57:32 With this it sounds like there is a dependency involving some external package system. You can over-ride it, but it's not as simple. 2011-02-27T18:57:54 Is there a problem with just having it laid out the same way as all the other starter packages, for consistency? 2011-02-27T18:58:02 yes. the dependency basically handles the I/O and stuff 2011-02-27T18:58:14 there is no problem except that this library is kind of hardcore 2011-02-27T18:58:36 i designed it to be ideal for both newbs and advanced programmers that need to squeeze everything they can out of it 2011-02-27T18:58:56 including the library might just confuse newbs even more because it's complex 2011-02-27T18:59:06 Alright. I don't like the idea of having this non-self-contained package. But it's Haskell, so I think there will be 0% of the users who are upset about the starter package being a little more hardcore. 2011-02-27T18:59:27 So I guess that's cool. 2011-02-27T18:59:58 Especially if it's consistent with the way other Haskell stuff works. Being idiomatic is important, especially with a group of people like Haskell users. 2011-02-27T19:00:11 that's the idea 2011-02-27T19:00:53 there's one potential issue that i still need to think through though 2011-02-27T19:01:33 i will not require users to have a cabal project. that would be silly. however, it might be a bit inconvenient if somebody wants to specify a particular version of the library without a cabal project 2011-02-27T19:01:55 Oh haha. Would anybody really do that? 2011-02-27T19:01:57 the only way to prevent that scenario would be to lock down the interface and behavior of the library 2011-02-27T19:02:10 well i just mean... what if we put some enhancements in the library? 2011-02-27T19:02:18 potentially backward incompatible ones 2011-02-27T19:02:22 Also, the aim here is really to get it right the first time. With all the other starter packages especially, we can't recall them. So releasing a broken starter package is terrible. 2011-02-27T19:02:39 right, that's actually a reason the library is perfect for this 2011-02-27T19:03:09 it means if there are problems we can roll out fixes and anybody that runs 'cabal update; cabal install ants-bot' can benefit from the fixes without merging them into their bot 2011-02-27T19:04:32 that's great as long as we never change the interface 2011-02-27T19:05:49 okay, i thought of a way to work out that kink pretty elegantly 2011-02-27T19:06:00 i'll just expose different modules for different major versions if i have to 2011-02-27T19:06:15 that way there will never be a backward incompatible change to an existing module 2011-02-27T19:09:24 *** Migi32 has quit IRC (Remote host closed the connection) 2011-02-27T19:09:26 yeah that's the way to do it for sure 2011-02-27T19:09:38 I dunno man. This is sounding like a pretty complicated starter package. 2011-02-27T19:10:01 the starter package is exactly what you just looked at 2011-02-27T19:10:07 and that's it 2011-02-27T19:10:18 That's not the complicated part I'm talking about. 2011-02-27T19:10:26 cabal install ants-bot 2011-02-27T19:10:58 i mean, i could make a newb friendly starter with no libraries, but most haskellers will throw it out 2011-02-27T19:11:26 I think we should just do that. 2011-02-27T19:11:37 I mean, the main purpose here is to get more people coding for fun. 2011-02-27T19:11:47 brb 2011-02-27T19:12:33 sorry, wife wanted full attention for a sec 2011-02-27T19:13:00 "the main purpose here is to get more people coding for fun." <-- and i don't think most of those people are interested in fiddling with boring I/O stuff anyway 2011-02-27T19:13:20 If a novice is trying to take this opportunity to learn Haskell, I can see that we are potentially throwing extra roadblocks in the way. We should make it work the way that people expect by default. What a novice expects is that there are a bunch of files in the package containing Haskell source code. If any of them are changed and saved, the changes take effect. The cabal stuff is another moving piece. 2011-02-27T19:13:36 err 2011-02-27T19:13:45 i see it the exact opposite way 2011-02-27T19:13:53 to me, more code in the starter is more moving pieces 2011-02-27T19:14:24 all these other properties you said are desireable still apply 2011-02-27T19:14:33 "What a novice expects is that there are a bunch of files in the package containing Haskell source code. If any of them are changed and saved, the changes take effect." 2011-02-27T19:14:36 still applies 2011-02-27T19:15:19 *** Prillicy_ has joined #aichallenge 2011-02-27T19:15:54 I am thinking of what's going to happen when someone downloads the package. The problem with the cabal way is that the package actually does not work when you download it. In order to get it to work, you have to put one or two commands into your command line and then it starts working. I think that it's going to deter novices if we're making them chase down the starter package's dependencies manually. The starter package should be self-contained, and sho 2011-02-27T19:16:05 j3camero: the scary implementation i don't want to show to newbies: http://hpaste.org/paste/44377/ants_starter_annotation#p44379 2011-02-27T19:16:22 *** Prillicy has quit IRC (Ping timeout: 240 seconds) 2011-02-27T19:16:23 (and oh hey thanks for the suggestions at the end, hlint!) 2011-02-27T19:16:30 *** Prillicy_ is now known as Prillicy 2011-02-27T19:17:08 j3camero: the starter package isn't self-contained anyway. they still have to at least install the haskell platform 2011-02-27T19:17:34 j3camero: and they still have to learn how to build and run the bot. this is just an extra line 2011-02-27T19:19:28 That's fine for seasoned Haskellers. The problem is that novices or newcomers to Haskell don't know what cabal is. They might not necessarily come in with a deep understanding of what package managers are or how they work. So that extra line is a magic line that makes everything work, but which they don't understand. 2011-02-27T19:19:48 I mean, I think it's cool to have this library so that all the seasoned Haskellers can benefit from the obvious benefits. 2011-02-27T19:20:28 j3camero: As if a newbie Java programmer understands what "jar cfe" does. 2011-02-27T19:20:39 j3camero: they don't have to understand what it is. they just have to run the command. they already have performed this process in installing the platform, and they will also have to perform this process to build and run the bot anyway 2011-02-27T19:21:20 I'm not even sure I buy the argument that anyone who could not run a command would understand Haskell at all. 2011-02-27T19:21:26 jbroman: granted, but there's no way around that. I reject logic of the form "Java is inherently hard, therefore we need not make an effort to make anything easy ever" 2011-02-27T19:21:50 j3camero: Do you think running that magic command actually deterred people significantly? 2011-02-27T19:21:51 IMO this makes it easier, not harder 2011-02-27T19:21:59 We're not saying that they are unable to run a one line command. 2011-02-27T19:22:43 j3camero: They don't need to understand it – why can't they just treat it like the standard library (as a black box)? 2011-02-27T19:22:47 i'd rather present a newbie with 8-10 lines of code to edit than 300-ish lines of code to navigate through 2011-02-27T19:23:06 exactly. black box is what i'm going for for newbies 2011-02-27T19:23:16 I just observe that many people modify the file with the helper functions in it. With this outside dependency, that is still technically possible, but it's not as simple as "open file, save changes, resubmit". 2011-02-27T19:23:42 j3camero: the modifications are usually a result of them not being very useful out of the box, which is usually because we were afraid to add too much to them 2011-02-27T19:23:57 Maybe include a file that mentions how to do it if you really want to. But the kind of newbie we're talking about is unlikely to need to modify the library, unless it is seriously deficient in some way. 2011-02-27T19:24:03 j3camero: i still don't see your argument about "open file, save changes, submit." you can still do that 2011-02-27T19:24:35 j3camero: open the main, edit it, submit. done. 2011-02-27T19:25:38 and i intend for the library to have *very* good documentation, btw 2011-02-27T19:25:47 and i'm including a tutorial, as well 2011-02-27T19:25:47 Yeah, I guess it's not going to be a huge in-practice issue. We just have to always be careful to smooth as many rough edges as we can, especially with the starter packages. The rough edge I see here is teh introduction of the magic of a package manager (which I believe cabal is sort of?) 2011-02-27T19:26:09 j3camero: yeah, the cabal command is a bit of a package manager. it comes with the platform 2011-02-27T19:26:11 Ah that is good. 2011-02-27T19:26:22 Tutorials are wicked. 2011-02-27T19:26:33 i might even make a screencast 2011-02-27T19:26:41 That would be sexy. 2011-02-27T19:26:47 yes, yes it would :) 2011-02-27T19:26:54 Get some embedded YouTube action going on. 2011-02-27T19:29:21 The starter packages are so fussy. What we need to understand and respect is that most people are supremely lazy. 50% of people who create accounts don't ever bother to submit a starter package. Think about that. That's a new kind of lazy. So if something happens that does not instantly fit into the contestant's pre-existing mental model of how the world works will cause them to instantly give up. If we make them learn something new, that's a risk. 2011-02-27T19:30:32 Like, the tutorial from Galcon was pretty successful in that respect. It asked you to open the main code file, change *one character*, then resubmit. Any more than that, and we would have seen the attrition rate go up. 2011-02-27T19:32:56 i dunno, i just see this as *way* less stuff to learn than having to figure out 300 or so lines of code 2011-02-27T19:33:10 They don't have to open the file though. 2011-02-27T19:33:32 The tutorial just says "open the file main.java and change the following line to be this instead" 2011-02-27T19:33:33 they don't have to modify the library either 2011-02-27T19:34:02 and the tutorial works the same way 2011-02-27T19:34:13 Yeah but there's an extra step, because they have to open up a command prompt, put in the magic command for a reason they don't undestand. 2011-02-27T19:34:20 they have to do that anyway 2011-02-27T19:34:54 Nope they don't. 2011-02-27T19:34:59 building and running? 2011-02-27T19:35:05 Don't need to. 2011-02-27T19:35:11 then they don't need the library either 2011-02-27T19:35:23 Yeah I guess that's true. 2011-02-27T19:35:27 Good point. 2011-02-27T19:53:49 yay, the main is even a little more simple now http://hpaste.org/paste/44377/ants_starter_annotation#p44381 2011-02-27T20:18:39 *** antimatroid has quit IRC (Read error: Connection reset by peer) 2011-02-27T20:20:11 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-02-27T20:28:43 *** flag_ is now known as flag 2011-02-27T20:32:00 *** chris__0076 has joined #aichallenge 2011-02-27T20:34:12 *** chris___0076 has quit IRC (Ping timeout: 260 seconds) 2011-02-27T20:50:27 *** Cyndre has quit IRC (Quit: Leaving) 2011-02-27T20:52:08 *** nann has joined #aichallenge 2011-02-27T20:53:01 *** JackyAlcine has quit IRC (Ping timeout: 240 seconds) 2011-02-27T20:55:01 *** Apophis_ has quit IRC (Ping timeout: 240 seconds) 2011-02-27T20:56:48 *** j3camero has quit IRC (Read error: Connection reset by peer) 2011-02-27T20:57:38 *** j3camero has joined #aichallenge 2011-02-27T21:03:16 *** Cyndre has joined #aichallenge 2011-02-27T21:27:57 *** Prillicy_ has joined #aichallenge 2011-02-27T21:30:39 *** Prillicy has quit IRC (Ping timeout: 272 seconds) 2011-02-27T21:30:52 *** Prillicy_ is now known as Prillicy 2011-02-27T21:32:13 *** chris___0076 has joined #aichallenge 2011-02-27T21:34:14 *** chris__0076 has quit IRC (Ping timeout: 240 seconds) 2011-02-27T21:35:47 *** j3camero has quit IRC (Read error: Connection reset by peer) 2011-02-27T21:41:35 *** j3camero has joined #aichallenge 2011-02-27T21:44:05 *** McLeopold has joined #aichallenge 2011-02-27T21:44:57 did I miss anything important? 2011-02-27T21:47:56 depends on your definition of importance. 2011-02-27T21:48:16 but the answer is probably no, since you can read the logs 2011-02-27T21:51:16 but they are so long... 2011-02-27T21:52:28 Then there's probably something important :P 2011-02-27T21:52:46 *** chris__0076 has joined #aichallenge 2011-02-27T21:53:25 BTW, you might want to add a random seed to your engine so food spawns are consistent for debuging, just a suggestion 2011-02-27T21:55:26 *** chris___0076 has quit IRC (Ping timeout: 240 seconds) 2011-02-27T22:07:22 *** Prillicy_ has joined #aichallenge 2011-02-27T22:08:38 *** Prillicy has quit IRC (Ping timeout: 252 seconds) 2011-02-27T22:08:46 *** Prillicy_ is now known as Prillicy 2011-02-27T22:13:20 *** delt0r___ has joined #aichallenge 2011-02-27T22:13:30 *** McLeopold has quit IRC (Quit: Leaving.) 2011-02-27T22:14:35 *** delt0r_ has quit IRC (Ping timeout: 246 seconds) 2011-02-27T22:41:55 *** JackyAlcine has joined #aichallenge 2011-02-27T22:41:57 *** McLeopold has joined #aichallenge 2011-02-27T22:42:53 *** McLeopold has left #aichallenge 2011-02-27T22:46:18 *** antimatroid has joined #aichallenge 2011-02-27T23:10:04 antimatroid: how's the map gen? 2011-02-27T23:17:24 *** chris___0076 has joined #aichallenge 2011-02-27T23:20:15 *** chris__0076 has quit IRC (Ping timeout: 240 seconds) 2011-02-27T23:20:28 jmcarthur: did you see my tree maps? 2011-02-27T23:20:39 persin noise was fail for me, it just looked random still 2011-02-27T23:21:07 jmcarthur: http://codepad.org/eqwskQ8d those are my very early "tree generated water" maps 2011-02-27T23:23:33 ah i did see those 2011-02-27T23:23:46 weird that perlin didn't work out. maybe it needs a smoothing pass or something 2011-02-27T23:24:15 before quantizing it 2011-02-27T23:24:31 oh 2011-02-27T23:24:39 actually i bet you could fix it by zooming into it a bit more 2011-02-27T23:24:48 so that the features are larger 2011-02-27T23:25:16 s/zooming into/scaling/ 2011-02-27T23:25:51 yeah, i imagine the code i had was just awful 2011-02-27T23:26:13 http://codepad.org/TscjZQgU 2011-02-27T23:26:17 there's some more tree like ones 2011-02-27T23:27:06 it's hard to get it to branch our 2011-02-27T23:27:10 out* 2011-02-27T23:27:26 i might need to pick some more "starting" squares 2011-02-27T23:29:30 i'm finding that lattice pattern kind of annoying 2011-02-27T23:29:44 everyone seems to think that 2011-02-27T23:29:50 it's impossible to avoid with symmetric maps 2011-02-27T23:29:51 i think some sheering is called for 2011-02-27T23:29:57 at the least 2011-02-27T23:30:39 it would at least make the lattice appear less regular while still keeping things symmetrical 2011-02-27T23:30:55 what do you mean? 2011-02-27T23:31:42 e.g. each column gets rotated one square downward every n squares or something 2011-02-27T23:31:57 including initial positions of the players 2011-02-27T23:32:29 where n is chosen such that it's done a full rotation or two by the time it wraps around to the beginning again 2011-02-27T23:32:57 hmm, that's an idea 2011-02-27T23:32:58 or something like that 2011-02-27T23:33:01 i'll play around with it 2011-02-27T23:33:11 it would work better if you started with something having more precision and then quantizing it 2011-02-27T23:33:17 e.g. perlin noise 2011-02-27T23:37:26 what i need is a "translation" amount for each row,col pos such that after n translations you get back to the starting position 2011-02-27T23:37:29 that would be cool 2011-02-27T23:40:11 *** McLeopold has joined #aichallenge 2011-02-27T23:40:44 McLeopold: can we change the wiki spec to the io stuff you have? 2011-02-27T23:40:57 um... 2011-02-27T23:40:59 ? 2011-02-27T23:41:18 I might be a little behind 2011-02-27T23:41:23 it's not exactly matching everywhere, and i'm not sure on some bits 2011-02-27T23:41:28 right 2011-02-27T23:41:39 My goal tonight is to get everything straight 2011-02-27T23:41:56 But, it is straight in my mind. 2011-02-27T23:42:24 The reply files will be slightly different from the bot input, so I can't just run the replay through a bot. 2011-02-27T23:42:35 yeah, i think it's a matter of just making stuff match up 2011-02-27T23:42:42 The engine will be able to be in replay mode, so it will be easy. 2011-02-27T23:43:18 Okay, don't worry about it right now. I'll try to have stuff cleaned up with good examples in about 4 hours. 2011-02-27T23:43:24 okay cool 2011-02-27T23:43:26 Then, we can worry about the wiki 2011-02-27T23:43:45 i have been playing around with maps 2011-02-27T23:44:43 i failed miserably at doing perlin noise well, i've been trying to grow trees of water atm, but it creates tight choke holes which we don't want 2011-02-27T23:45:18 It might be good to create some basic map filters 2011-02-27T23:45:32 So, one could be removing choke points of a certain size 2011-02-27T23:45:45 http://codepad.org/TscjZQgU 2011-02-27T23:45:52 Anyway, I'm going to program for awhile now... 2011-02-27T23:46:00 yep, enjoi 2011-02-27T23:47:40 jmcarthur: what do you think about that idea for better translating points? 2011-02-27T23:47:51 i think that's what you were basically saying? 2011-02-27T23:53:52 *** Prillicy has quit IRC (Quit: I be bangin') 2011-02-27T23:56:20 antimatroid: yeah that sounds like it's basically sheering 2011-02-27T23:57:36 i'm trying to work out the rules that give me a feasible map 2011-02-27T23:58:17 ...e. 2011-02-27T23:58:17 .d... 2011-02-27T23:58:17 ....c 2011-02-27T23:58:17 ..b.. 2011-02-27T23:58:17 a.... 2011-02-27T23:58:33 that for example allows a symmetric map with no player starting in the same row or col 2011-02-27T23:59:16 i think you really want to do teh "sheering" as you generate, as you're checking whether the map is feasible while adding in the water