2010-12-12T00:02:10 *** Azrathud has quit IRC (Quit: Leaving) 2010-12-12T00:13:19 *** yasith has quit IRC (Ping timeout: 240 seconds) 2010-12-12T00:17:59 * antimatroid likes list comprehensions 2010-12-12T00:18:13 def make_map(X, Y): 2010-12-12T00:18:14 return [ [0 for y in range(Y)] for x in range(X) ] 2010-12-12T00:18:14 that's just cool 2010-12-12T00:23:04 Frontier: what are you using as a shift for greek? 2010-12-12T00:33:00 :) 2010-12-12T00:33:06 yeah, list comprehensions are great 2010-12-12T00:34:42 i'm not sure how to then iterate over my lists though :\ 2010-12-12T00:35:53 yeah, you end up having lists of lists 2010-12-12T00:36:26 you can do 'for yrow in map: for y in yrow:' 2010-12-12T00:36:53 or you can do 'for x in range(len(map)):' at the top level to have an index 2010-12-12T00:37:16 yeah got it, but how do i print a list on one line? 2010-12-12T00:37:29 print map 2010-12-12T00:37:35 if i print the list i get brackers, if i iterate through, it adds enter after every element 2010-12-12T00:37:51 put a , at the end of the print statement to suppress the newline 2010-12-12T00:37:58 ah, cool :) 2010-12-12T00:38:00 so print "no newline", 2010-12-12T00:38:11 (i've only ever used python for these map engines) 2010-12-12T00:38:25 i remember you said that 2010-12-12T00:39:20 got it, cheers 2010-12-12T00:47:47 antimatroid: I use Alt Gr as the modifier in my 'normal' layout to access the Greek symbols. Shift is additional to access the upper case letters 2010-12-12T00:49:53 Frontier: cheers, i might look for another app later, i don't even know how to tell the other one to map to greek 2010-12-12T00:50:01 it wants me to push a button to map to ehe 2010-12-12T00:50:14 i'm making an ant map generator atm though 2010-12-12T00:50:24 *** Utkarsh has quit IRC (Ping timeout: 255 seconds) 2010-12-12T00:55:26 *** Utkarsh has joined #aichallenge 2010-12-12T00:57:10 can i typecast to int from float? 2010-12-12T01:00:18 *** Meatkat has quit IRC (Quit: Leaving) 2010-12-12T01:02:35 antimatroid: float(x) 2010-12-12T01:03:07 got it, and was the other way oops :) 2010-12-12T01:08:11 Zannick: if you want to iterate over a list with an index, the more "pythonic" way is: for i,x in enumerate(xs) 2010-12-12T01:08:41 ah, right 2010-12-12T01:14:44 *** Rubicon-|-Cross has joined #aichallenge 2010-12-12T01:14:47 i should have the map generator ready in a couple of hours (i'm being lazy about it), hardest is going to be "check map is valid" function when adding in walls 2010-12-12T01:15:04 but i should just be able to scan out with a stack till i find the other base 2010-12-12T01:18:51 *** amriedle has joined #aichallenge 2010-12-12T01:38:57 *** amriedle has quit IRC (Quit: Lost terminal) 2010-12-12T01:40:04 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T01:49:39 can i do switches in python? 2010-12-12T01:50:11 if/elif is about it 2010-12-12T01:50:37 hmmmm, so much for python being known for neatness :P 2010-12-12T01:50:46 though you can do crazier constructs like dictionary mappings to functions 2010-12-12T01:51:27 do you think ants should know how big the world is when they start? 2010-12-12T02:29:48 *** Cyndre has quit IRC (Read error: Connection reset by peer) 2010-12-12T02:30:03 *** Cyndre has joined #aichallenge 2010-12-12T02:33:55 *** Utkarsh has quit IRC (Ping timeout: 264 seconds) 2010-12-12T02:38:56 *** Utkarsh has joined #aichallenge 2010-12-12T02:42:50 *** reportingsjr has left #aichallenge 2010-12-12T02:43:02 *** Epona has joined #aichallenge 2010-12-12T02:43:07 anyone on? 2010-12-12T02:43:58 yeah, what's up? 2010-12-12T02:44:53 just got pissed off in the python channel 2010-12-12T02:45:45 what are you up to 2010-12-12T02:45:59 writing a map generator for a possible version of the ants game 2010-12-12T02:46:13 ah 2010-12-12T02:46:27 I was thinking of solving my multiprocessing problem 2010-12-12T02:46:34 someone made an interesting idea 2010-12-12T02:46:55 to just code for multiple while statements, in just one while statement 2010-12-12T02:47:20 but 2010-12-12T02:47:27 *** Appleman1234 has quit IRC (Ping timeout: 276 seconds) 2010-12-12T02:47:34 making multiple infinate loops would be nicer 2010-12-12T02:55:31 i think this ant game can actually work really well 2010-12-12T03:00:01 I can't wait to see it? 2010-12-12T03:00:03 ! 2010-12-12T03:00:43 i'm still fine tuning how to make maps 2010-12-12T03:00:47 then i'll get to work on an engine 2010-12-12T03:00:54 i'm going to need someone else to do a gui though 2010-12-12T03:01:05 but hopefully a prototype can be going some time 2010-12-12T03:08:49 print "noWalls: " + noWalls 2010-12-12T03:08:54 how do i do that properly in python? 2010-12-12T03:12:58 print "noWalls:", noWalls 2010-12-12T03:13:07 or print "noWalls: " + str(noWalls) 2010-12-12T03:14:32 *** Palmik has joined #aichallenge 2010-12-12T03:23:57 *** virdo has quit IRC (Ping timeout: 265 seconds) 2010-12-12T03:27:16 *** virdo has joined #aichallenge 2010-12-12T03:36:40 *** Mathnerd314 has quit IRC (Ping timeout: 250 seconds) 2010-12-12T03:38:04 antimatroid: hay... havn't read anything on the forums... just coding up a ant version now. Without locked combat (really don't like that) 2010-12-12T03:38:57 delt0r_: i've almost got a map generator for you 2010-12-12T03:39:11 what format are you using 2010-12-12T03:39:25 have you read about the home hole idea? 2010-12-12T03:39:31 i really like that, and it provides a spawn point 2010-12-12T03:39:40 no 2010-12-12T03:39:50 won't till this version is done. 2010-12-12T03:39:52 you guys should set up a git repo so that you can stay in sync 2010-12-12T03:40:12 simple idea is that once we have something runing we can try different rulesets 2010-12-12T03:40:22 sigh: yea 2010-12-12T03:40:28 http://codepad.org/FiEkYOYZ 2010-12-12T03:40:31 that's the map gen so far 2010-12-12T03:40:31 once i have a basic game i may do 2010-12-12T03:40:50 gah hang on, it timed out when running 2010-12-12T03:41:20 http://codepad.org/Cx2KgcNU 2010-12-12T03:41:34 there is an example map at the bottom of that page (i need to work out why that timed out too) 2010-12-12T03:42:03 a and b represent the home holes, # walls and numbers how much grain can be harvested from that square 2010-12-12T03:45:00 cool 2010-12-12T03:45:10 format is about the same as what i was doing too 2010-12-12T03:45:39 i'm going to run some ideas by you for this first implementation 2010-12-12T03:47:17 an ant can: move, harvest, deposit,give (grains to friend bot), fight on a given turn 2010-12-12T03:47:17 an ant is generated at the home home (by queen bee) if there is at least 1 grain on the home hole square, the hole starts with 5 grains 2010-12-12T03:47:17 an ant can fight an enemy ant that is within x distance, if they land on the same square, they automatically fight to the death 2010-12-12T03:47:26 this is pretty amazing looking, antimatroid 2010-12-12T03:47:35 an ant can only do one of those things in a turn 2010-12-12T03:47:51 and friend ants can be in the same square 2010-12-12T03:48:25 I still don't like overlaping ants... and locked combat... it pulls the dynamics down too much 2010-12-12T03:48:33 you lose chooice 2010-12-12T03:48:52 you can completely remove forced combat 2010-12-12T03:49:24 but i don't know how you handle them landing in the same square and resolving who gets to harvest if not enough is left 2010-12-12T03:49:35 just no overlaps 2010-12-12T03:49:44 ie nothing on the same square 2010-12-12T03:49:50 it's hard to resolve that 2010-12-12T03:49:55 no its not 2010-12-12T03:49:55 and spawning is very hard 2010-12-12T03:50:02 its about 4 lines of code 2010-12-12T03:50:35 it also means people are going to "waste" turns by accident 2010-12-12T03:50:39 I also am still doing the single process per player 2010-12-12T03:50:55 i prefer separate processes 2010-12-12T03:51:05 its ai challenge... stupid ants will lose 2010-12-12T03:51:05 maybe i'll write a second engine, and we can compare :) 2010-12-12T03:51:31 well I still thing when we what 4000 entries to all have a few 100 games... 2010-12-12T03:51:54 having ~16+ process per game is going to be hard work 2010-12-12T03:52:04 and thats not many 2010-12-12T03:52:22 I would prefer lots of ants to a game with only 2 or 3 2010-12-12T03:52:55 getting to work at one game at a time is not the same as working on the main server 2010-12-12T03:53:19 Imagine a tcp version --each process with a separate socket? 2010-12-12T03:54:22 delt0r_: the idea is to have each process fed the game state sequentially, and each ant given a set amount of time to return their move 2010-12-12T03:54:36 then process them as though they were made simultaneously 2010-12-12T03:54:49 yea--and how small can you make that relaibly... and what about tcp? 2010-12-12T03:54:51 and KILL each nonused process, resuming it on its turn 2010-12-12T03:55:11 Still a *lot* of overhead... these are not threads 2010-12-12T03:55:12 i don't know how tcp works sorry :P 2010-12-12T03:55:31 well currently it would requre a new tcp connection per process 2010-12-12T03:55:33 it sucks if all ants have the same info 2010-12-12T03:55:49 may be unavoidable 2010-12-12T03:56:00 ie every new ant would need seconds to connect (tcp takes a 4 way ping for a connection) 2010-12-12T03:56:17 antimatroid: they still only get relative info for where they are 2010-12-12T03:56:38 yes, but you can't stop people from programming the ants to share information 2010-12-12T03:56:43 or can you? 2010-12-12T03:57:05 if it can be done, it doesn't work to say "don't do that" 2010-12-12T03:57:09 but feel free to do the 100 process version... will work fine locally... but good luck supporting that once you get 1000+ entries and everyone is complaining about not getting any games... or debug data 2010-12-12T03:57:21 does it really matter.... 2010-12-12T03:57:27 if they share... 2010-12-12T03:57:38 Think enders game... 2010-12-12T03:57:40 no, my point is one process means we have to go with that 2010-12-12T03:57:44 think cyber ants 2010-12-12T03:57:53 thy will have wireless 2010-12-12T03:57:53 i do think we should use strings now 2010-12-12T03:58:01 but i think it should be private information to the program 2010-12-12T03:58:08 people watching games don't get to see strings 2010-12-12T03:58:08 yes! 2010-12-12T03:58:25 simpler to implement and manage from the organisers point of view. 2010-12-12T03:58:53 okay, well i'm still going to write my own engine, but i'll do it for single process 2010-12-12T03:59:01 and we can see what works best once they're done 2010-12-12T03:59:01 I think a single process per player is by far the best way... from that aspect 2010-12-12T03:59:18 are you going to use python? 2010-12-12T03:59:32 yes 2010-12-12T03:59:40 i don't think communication is needed 2010-12-12T03:59:49 ?? 2010-12-12T04:00:03 if people are handling all their bots at once, they all have each others information, you can just pass them the game state for each ant 2010-12-12T04:00:12 yes 2010-12-12T04:00:16 for all ants* updated on the one map 2010-12-12T04:00:20 so, the bot can only use the methods there? 2010-12-12T04:00:36 Epona: ? 2010-12-12T04:00:57 Im just not sure I understand how this code works yet 2010-12-12T04:01:32 I know the idea of "agents" is nice --buts its very artificial from a application perspective --and i think a lot of overhead from a game engine perspective 2010-12-12T04:01:33 it's not even written, patience 2010-12-12T04:02:17 i still don't like moves being blocked 2010-12-12T04:03:10 its important from visulisation, debug, and simple symatics behavour... 2010-12-12T04:03:24 wehn you have 4 ants from 2 teams what happens? 2010-12-12T04:03:37 fight two weakest or two strongest first 2010-12-12T04:03:41 easyer to avoid the problem alltogether i think 2010-12-12T04:03:51 you still have that problem now 2010-12-12T04:04:03 what if you ants attack an ant with 1 hp left? 2010-12-12T04:04:15 and then there is all the support from post of "WTF" --where players don't understand these rules 2010-12-12T04:04:15 two* ants attack 2010-12-12T04:04:26 the ant dies 2010-12-12T04:04:28 what? 2010-12-12T04:04:40 and you waste 2hp? or does attack not cost you anything? 2010-12-12T04:04:52 the attack cost nothing 2010-12-12T04:05:11 i don't expend bullets with a club ;) 2010-12-12T04:05:20 well it cost movement 2010-12-12T04:06:09 i would process fight before moves, so if you find an enemy in the required range, they are still there when it's processed 2010-12-12T04:06:24 yea 2010-12-12T04:06:47 fight, remove the dead, move, resolve collisons... done 2010-12-12T04:09:04 lets just get the dam things runing 2010-12-12T04:09:19 think it will become clear whats stupid and what not at that point 2010-12-12T04:09:55 *** Appleman1234 has joined #aichallenge 2010-12-12T04:26:11 antimatroid: if you allow stacking... how to ants "see" this? 2010-12-12T04:26:31 what do you mean? 2010-12-12T04:26:51 well I use a simple map format like you do 2010-12-12T04:27:00 so you can't see stacked ants 2010-12-12T04:27:09 for updats that is 2010-12-12T04:27:12 updates 2010-12-12T04:27:31 you have to give people both ant location and hp? 2010-12-12T04:27:47 are you doing that as a-z and A-Z? 2010-12-12T04:27:54 that could work 2010-12-12T04:27:57 just location 2010-12-12T04:28:01 no hp 2010-12-12T04:28:24 prefer to be case insensitive 2010-12-12T04:28:27 the other option is to have them take lines like 2010-12-12T04:28:27 A 1 4 0 0 2010-12-12T04:28:37 ant, player 1, 4 hp, x, y 2010-12-12T04:28:41 then they fill info in 2010-12-12T04:29:07 W 1 1 2010-12-12T04:29:07 R 6 0 0 2010-12-12T04:29:08 etc. 2010-12-12T04:29:19 and you just pass them relevant information 2010-12-12T04:29:50 yea --but if you have a lot of walls... mmm don't know whats best here... 2010-12-12T04:30:05 whats easiest to code? for a player? I think a grid perhaps? 2010-12-12T04:30:36 atm i would be planning a map, but not storing ants on there at all 2010-12-12T04:30:43 they will be their own queue 2010-12-12T04:30:46 or vector 2010-12-12T04:31:03 they are... but "combining" them is not difficult 2010-12-12T04:31:27 yeah, it will probably end up a vector > or something 2010-12-12T04:31:31 stabbing quires on a sparse grid is O(1) 2010-12-12T04:31:50 ants shouldn't be able to see through walls either, around is fine 2010-12-12T04:31:56 it's easy to work out information for that 2010-12-12T04:31:59 thats hard 2010-12-12T04:32:04 no its not 2010-12-12T04:32:07 its hard becuase what is around etc 2010-12-12T04:32:09 code it then 2010-12-12T04:32:15 i will 2010-12-12T04:32:29 and watch the 100 of people claiming that its all wrong with edge cases 2010-12-12T04:32:54 you just add each ants position to a stack, and take a blank new one, paint out till you can't do any more within vision radius, then return the map with those positions updated 2010-12-12T04:33:35 blank new one while looking at walls on original map 2010-12-12T04:33:55 los even on a grid is a pain and somewhat aritarty too (antialisaed vision?) 2010-12-12T04:34:26 ? 2010-12-12T04:34:28 especially with single cell blockers 2010-12-12T04:34:45 i'll write the code and we can see how horrible it is 2010-12-12T04:35:06 def distance(loc1, loc2): 2010-12-12T04:35:07 d1 = abs(loc1[0] - loc2[0]) 2010-12-12T04:35:07 d2 = abs(loc1[1] - loc2[1]) 2010-12-12T04:35:07 return min(d1, dim[0]-d1) + min(d2, dim[1]-d2) 2010-12-12T04:35:07 that's my distance function with wrapped edges, is that right? 2010-12-12T04:35:32 without counting walls 2010-12-12T04:35:45 also the amount of "unkown" info is now much larger and harder too track 2010-12-12T04:42:16 *** tapwater has quit IRC (Quit: tapwater) 2010-12-12T04:43:36 *** Appleman1234 has quit IRC (Ping timeout: 260 seconds) 2010-12-12T04:57:41 ha, interesting idea for turbo charged tron, each square is randomly assigned a number, the number on the square you just landed on is the number of moves you are allowed to make up to, you have to move at least 1 square 2010-12-12T05:05:34 *** Appleman1234 has joined #aichallenge 2010-12-12T05:14:25 delt0r_: i have another idea to simplify, bots can't be on the same square, but have the home squares, whenever an ant harvests something, that automatically means the queen will generate another ant next turn the home base is empty 2010-12-12T05:14:37 or even require harvest to be returned 2010-12-12T05:14:51 yea 2010-12-12T05:15:13 like RTS games... harvesting can be immediate or the peons need to return it 2010-12-12T05:15:38 and queen either has hp 1 or whatever, and if they kill your queen, you lose 2010-12-12T05:15:40 I like the idea of return it... but then the bar for a basic entry is getting set a bit higher... 2010-12-12T05:15:45 yep 2010-12-12T05:15:58 i like it, and it means you need to do an updated version of shortest path back to base 2010-12-12T05:16:01 then there is the idea of protecting the queen 2010-12-12T05:16:04 i'd put in return to begin with 2010-12-12T05:16:19 yeah, home base should be important 2010-12-12T05:16:24 *** yasith has joined #aichallenge 2010-12-12T05:16:33 the idea is to start them a decent distance apart so they can sort of set their own strategies up 2010-12-12T05:16:42 then they'll start finding each other and the battles can behin 2010-12-12T05:16:46 begin* 2010-12-12T05:17:26 i think i might make all maps square, so i can do more symmetries easily, atm their home base pretty much has to be 1 of 3 known locations 2010-12-12T05:18:11 with a square board i can make that more like 7 i think 2010-12-12T05:22:15 *** choas has joined #aichallenge 2010-12-12T05:40:10 *** boegel has joined #aichallenge 2010-12-12T05:48:16 *** boegel has quit IRC (Quit: Leaving) 2010-12-12T06:09:59 *** delt0r___ has joined #aichallenge 2010-12-12T06:12:13 *** delt0r_ has quit IRC (Ping timeout: 276 seconds) 2010-12-12T06:21:23 stupid bugs make me want to cry 2010-12-12T06:21:34 i can't get this is_valid function working :\ 2010-12-12T06:21:44 you seem to be hacking at this game pretty hard 2010-12-12T06:24:03 i want to work it out 2010-12-12T06:24:12 but this is just the map generator 2010-12-12T06:24:42 if only there was a simpler language 2010-12-12T06:24:59 i don't get to choose the language for map gen 2010-12-12T06:25:10 simpler? 2010-12-12T06:26:14 more graphic would be nicer 2010-12-12T06:26:25 what do you mean? 2010-12-12T06:26:36 sigh: feel like reading some python code for me? :P 2010-12-12T06:26:40 like most video games have really powerful engines 2010-12-12T06:26:51 sure, what do you want me to look for? 2010-12-12T06:27:13 http://codepad.org/n7rOdVXG 2010-12-12T06:27:40 that's the code, function is_valid on line 95 fails 2010-12-12T06:28:05 why does the second and third print statement have nothing after it 2010-12-12T06:28:08 i know i should start from 0, but even if i run it like is, it outputs the path it's trying to follow each step, and doesn't follow all directions 2010-12-12T06:28:11 what does it do wrong? 2010-12-12T06:28:13 ive never seen that 2010-12-12T06:28:29 run it 2010-12-12T06:28:29 mapgen.py >> map.txt 2010-12-12T06:28:33 and watch the output 2010-12-12T06:28:44 you will have to cancel the process most likely 2010-12-12T06:29:11 you only follow 3 directions, is that right? 2010-12-12T06:29:22 i = 1,2,3 2010-12-12T06:29:29 it's meant to search out from home1 looking for home2, but it only ever does 2 directions 2010-12-12T06:29:33 and it should do 3 2010-12-12T06:30:18 it should also do all 3 additions to the map before checking the stack for which lock to look from next 2010-12-12T06:30:22 which it doesn't do :\ 2010-12-12T06:30:28 antimatroid? 2010-12-12T06:30:56 Epona: it's giving me an \n character 2010-12-12T06:30:59 eh? how do you know when you;ve visited a node? 2010-12-12T06:31:10 because I have nMap with 0 and 1's 2010-12-12T06:31:13 1 means i have visited it 2010-12-12T06:31:19 oh, that or should be an and too 2010-12-12T06:31:24 that was just me fucking around 2010-12-12T06:31:29 elif map[nLoc[0] ][nLoc[1] ] != '#' and nMap[nLoc[0] ][nLoc[1] ] == 0: 2010-12-12T06:31:37 ah, that makes more sense :) 2010-12-12T06:31:52 it still doesn't work then though :\ 2010-12-12T06:32:45 it wraps all 4 edges properly i'm pretty sure 2010-12-12T06:34:53 ok, i'll try running it 2010-12-12T06:35:40 it will infinite loop, so don't leave it running for ages :) 2010-12-12T06:36:44 doesn't inf loop for me 2010-12-12T06:36:50 ever? 2010-12-12T06:36:55 what if you put in i=0? 2010-12-12T06:37:11 ok, I got an inf loop now 2010-12-12T06:37:40 it can depend on which symmetry it picks as to whether you hit the other home or not 2010-12-12T06:38:28 line 70 2010-12-12T06:38:44 change to: nLoc = list(loc) 2010-12-12T06:38:50 does that copy the reference? 2010-12-12T06:39:17 yes, you aren't creating a new list atm 2010-12-12T06:40:15 i think that did it 2010-12-12T06:40:16 thanks 2010-12-12T06:40:51 *** narnach has joined #aichallenge 2010-12-12T06:40:51 *** narnach is now known as narnach_mb 2010-12-12T06:41:37 if you comment out lines 98 and 111 you will get maps generated 2010-12-12T06:45:22 http://codepad.org/IpXK4CYh 2010-12-12T06:45:26 there is an example generated map 2010-12-12T06:45:31 deltor___: ^^ 2010-12-12T06:46:40 they actually start quite close, a is at the end of line 19, b at the start of 24 2010-12-12T06:46:49 why do you only go though 3 directions? 2010-12-12T06:46:59 i am meant to do 4 2010-12-12T06:47:08 that was just testing 2010-12-12T06:47:22 that link above^^ does 4 2010-12-12T06:47:39 it has a 32x32 grid for you too 2010-12-12T06:49:16 a choice needs to be made 2010-12-12T06:49:16 1. all square grids with more symmetries 2010-12-12T06:49:16 2. 3 symmetries and rectange grids 2010-12-12T06:53:51 delt0r___: when you pass us the game state, can you distinguish a square that is empty from one that is not currently seeable? 2010-12-12T06:54:11 I am not doing "sight" 2010-12-12T06:54:22 but yes you would have to do that 2010-12-12T06:54:57 otherwise all clients will need to dupilicate the los test so i can "know" about what it can't see 2010-12-12T06:57:57 yep :) 2010-12-12T07:02:50 http://codepad.org/VoUkxUsO 2010-12-12T07:02:51 that's a much more dense map 2010-12-12T07:03:34 maybe a little too dense, i think quite a few regions got cut off, but players home bases are guarnteed to be reachable 2010-12-12T07:03:38 from each other 2010-12-12T07:04:48 antimatroid: since you were complaining about lack of switch earlier... here's how I would do the direction stuff: http://codepad.org/cG4Tqm56 2010-12-12T07:05:05 as a bonus it makes it really easy to add more directions (like NE) 2010-12-12T07:06:58 cheers 2010-12-12T07:09:49 i think i might be able to make it so every square is accessible 2010-12-12T07:09:55 i will try that and see how it looks 2010-12-12T07:10:06 every non-wall square that is 2010-12-12T07:10:43 yeah, that's simple with the code you've already got 2010-12-12T07:10:56 might take slightly longer, but doesn't really matter 2010-12-12T07:11:10 other option is to fill blocked off regions before adding in grains 2010-12-12T07:11:12 not much longer 2010-12-12T07:11:43 that way it'd be more like working your way around underground passages? 2010-12-12T07:12:29 if the walls are placed randomly, you aren't going to have many blocked off areas 2010-12-12T07:12:40 unless you are placing a lot more walls than now 2010-12-12T07:13:45 i think dead end are good? 2010-12-12T07:14:08 i'll try the first one and see how it looks 2010-12-12T07:14:36 dead ends are fine, but that doen't have much to do with unreachable regions 2010-12-12T07:16:26 yep 2010-12-12T07:16:41 would just require larger maps for similarly interesting maps 2010-12-12T07:20:14 *** mceier has joined #aichallenge 2010-12-12T07:26:05 bah, i'm getting some weird indent error 2010-12-12T07:26:10 despite the indenting being fine 2010-12-12T07:31:11 where atr 2010-12-12T07:31:20 lemme see all you have I might be able to work it 2010-12-12T07:34:28 keyword: might* 2010-12-12T07:40:19 http://codepad.org/DmnK5T95 2010-12-12T07:40:27 Epona: what do you think of that now? 2010-12-12T07:40:34 sigh: ^^ 2010-12-12T07:41:39 ill look at it now 2010-12-12T07:42:00 there is an example map at the bottom of the page 2010-12-12T07:42:42 seems to have run without errors 2010-12-12T07:42:54 is there a way to make it display that output? 2010-12-12T07:43:10 what do you mean? 2010-12-12T07:43:38 oh I see a def print map(pMap) 2010-12-12T07:43:42 maybe thats it 2010-12-12T07:44:20 hmm 2010-12-12T07:46:10 you can reach every non-wall square from your home base 2010-12-12T07:47:45 how do I get that output thats at the bottom? 2010-12-12T07:48:16 on your computer? 2010-12-12T07:48:16 save file as say mapgen.py 2010-12-12T07:48:16 then from terminal 2010-12-12T07:48:16 mapgen.py 2010-12-12T07:48:16 or 2010-12-12T07:48:16 mapgen.py >> map.txt 2010-12-12T07:48:54 you need to have python installed, otherwise just keep clicking "submit" at the very bottom of the page and the website will generate you a new one 2010-12-12T07:49:09 mfw im doing this from windows ;_; 2010-12-12T07:49:15 so am i :P 2010-12-12T07:49:27 xp <3 2010-12-12T07:49:50 I need to boot up a vm machine 2010-12-12T07:50:38 i'm going to restrict it to always having square dimensions and add more symmetries 2010-12-12T07:52:07 I like it, I have to say 2010-12-12T07:52:09 with the wall 2010-12-12T07:52:11 s 2010-12-12T07:55:09 antimatroid: did you want me to look at something? 2010-12-12T07:56:34 sigh: http://codepad.org/DmnK5T95 2010-12-12T07:56:37 just the map at the bottom 2010-12-12T07:57:10 heh, it's like a maze 2010-12-12T07:57:22 ah, you added the check if all squares are reachable 2010-12-12T07:57:23 yep, with wrapped edges 2010-12-12T07:57:46 btw, your comment for is_valid is out of date 2010-12-12T07:57:59 Epona: if you didn't realise, you're allowed to go off the top and come out on the bottom, same with the sides 2010-12-12T07:58:05 sigh: yeah, i'll fix that now 2010-12-12T07:58:14 i'm adding more symmetries 2010-12-12T07:59:04 pseudo infinity 2010-12-12T08:00:09 unbouned != infinite -_- 2010-12-12T08:00:18 *unbounded 2010-12-12T08:00:33 http://codepad.org/cTZQLnR1 2010-12-12T08:00:38 fixed, with one more symmetry added 2010-12-12T08:00:42 transpose 2010-12-12T08:01:31 cool 2010-12-12T08:01:53 i think i can do another 3 combinations of those 2010-12-12T08:02:03 but cbf working them out atm 2010-12-12T08:04:15 yeah, there are 8 symettries in all for a square (including identity) 2010-12-12T08:05:31 yeah, and identity doesn't work obviously 2010-12-12T08:05:52 ants aren't allowed to stack anymore? :P 2010-12-12T08:06:13 am i right that you have to have either 1,2 or 4 players for a 2d symmetric game? 2010-12-12T08:06:34 well, home base on top of each other wouldn't work :P 2010-12-12T08:06:54 you can have 8 as well 2010-12-12T08:07:06 assuming a square grid 2010-12-12T08:07:07 not with home bases 2010-12-12T08:07:38 why not? 2010-12-12T08:09:06 there is no limit, as long as you can tile the board appropriately 2010-12-12T08:10:05 *** choas has quit IRC (Ping timeout: 272 seconds) 2010-12-12T08:10:17 yes, but home base can't overload 2010-12-12T08:10:20 overlap* 2010-12-12T08:10:36 don't need to 2010-12-12T08:11:23 for example, think about a torus... put 1 person for each cardinal direction on top, and similarly on the bottom 2010-12-12T08:11:50 if the torus is made from a square then all 8 points are symettrical 2010-12-12T08:11:58 :S :P 2010-12-12T08:13:31 i might post the current code in the forums and see what people think / get ideas 2010-12-12T08:13:49 similarly, you could go to 16 players... torus is (circle x circle) so choose a different pair of cardinal directions for each player 2010-12-12T08:14:42 yeah, that's true 2010-12-12T08:16:19 anyway, stick to 2 player :P 2010-12-12T08:16:33 *** Migi32 has joined #aichallenge 2010-12-12T08:21:06 i plan to, was just thinking about it :P 2010-12-12T08:22:40 *** Appleman1234 has quit IRC (Remote host closed the connection) 2010-12-12T08:23:41 *** Appleman1234 has joined #aichallenge 2010-12-12T08:26:27 @tcp 2010-12-12T08:26:28 Accoun: tcp = (#1) http://www.benzedrine.cx/planetwars/, or (#2) http://72.44.46.68/, or (#3) 98.247.248.39:995 (zeroviz.us), or (#4) http://tcp.zeroviz.us/, or (#5) http://tcp2.zeroviz.us/ (crazy!) 2010-12-12T08:31:43 *** sigh has quit IRC (Remote host closed the connection) 2010-12-12T08:33:08 amstan: I think you guys should put something on the main site about aigamedev 2010-12-12T08:33:23 they are coming through on giving people accounts they normally charge for 2010-12-12T08:35:08 it may actually be harder if ants can see through walls 2010-12-12T08:35:20 because they may stupidly try to get to something they can't 2010-12-12T08:48:10 delt0r___: you still about? 2010-12-12T08:59:54 *** Appleman1234 has quit IRC (Ping timeout: 265 seconds) 2010-12-12T09:08:41 *** Naktibalda has joined #aichallenge 2010-12-12T09:09:25 http://codepad.org/ugaRX7bA is this better or not? it gives some space around each persons home base 2010-12-12T09:12:46 antimatroid: kinda --I have some real work that needs to be done 2010-12-12T09:16:13 i don't see any way to print people just a map of characters with a square having an ant with hp and grains on it 2010-12-12T09:16:23 i think it might need to be lines of info 2010-12-12T09:16:27 antimatroid: it is really jeff's decision, i should go changing the main site like that 2010-12-12T09:16:50 j3camero: I think you should add something on the main site about aigamedev 2010-12-12T09:16:57 amstan: http://codepad.org/ugaRX7bA 2010-12-12T09:17:03 check the bottom of the page 2010-12-12T09:17:45 uh, so unpythonic 2010-12-12T09:17:52 use classes man 2010-12-12T09:18:05 haha sorry, it's done now 2010-12-12T09:19:10 so what is this? 2010-12-12T09:19:36 sample generator for ant wars 2010-12-12T09:19:41 ic 2010-12-12T09:19:42 ugh... you 2010-12-12T09:19:52 'a' and 'b' are home holes, # walls, and numbers grains 2010-12-12T09:19:53 you're also using normal comments instead of the doc field 2010-12-12T09:19:57 to document a function 2010-12-12T09:20:14 it's the second thing i've written in python ever, give me a break :P 2010-12-12T09:20:34 we should also consider using json for everything 2010-12-12T09:20:37 sigh and frontier helped me work out syntax etc. 2010-12-12T09:20:49 json? 2010-12-12T09:21:05 yes 2010-12-12T09:21:52 do you know what it is? 2010-12-12T09:21:59 nope 2010-12-12T09:22:09 sigh.. 2010-12-12T09:22:19 it's a thing that websites use a lot 2010-12-12T09:22:35 i know nothing about websites :P 2010-12-12T09:22:36 to transfer data, in arbitrary formats 2010-12-12T09:22:41 or databases etc. 2010-12-12T09:22:49 so.. you encode the data as a string 2010-12-12T09:22:56 which also happens to be valid javascript 2010-12-12T09:23:06 looks similar to python as well 2010-12-12T09:23:17 so.. you can put cool stuff in it, like dicts, arrays, strings, numbers 2010-12-12T09:23:26 without worrying about parsing it, formatting it and all that 2010-12-12T09:23:33 i think we may have to stick to one process 2010-12-12T09:23:36 there's libraries that read and write it for most major languages 2010-12-12T09:23:41 huh? 2010-12-12T09:23:43 which means all friend ants know what every other one does 2010-12-12T09:23:44 parsing in anything outside js would be a pain though wouldn't it amstan 2010-12-12T09:23:54 has nothing to do with processes 2010-12-12T09:24:02 no, that was a separate comment sorry 2010-12-12T09:24:03 delt0r___: python: import json 2010-12-12T09:24:15 java? lisp? C++ ? 2010-12-12T09:24:24 yep, they all have libraries 2010-12-12T09:24:27 some of them built in 2010-12-12T09:24:30 haskell? 2010-12-12T09:24:39 and if not.. most implementations will be like 100 lines at most anyway 2010-12-12T09:24:51 3rd party lib support was underwhelming last time (on the server) 2010-12-12T09:24:58 http://www.google.com/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=haskell+json 2010-12-12T09:25:25 delt0r___: we are rewriting from scratch anyway.. 2010-12-12T09:25:34 we should not hold back because of stuff from last time 2010-12-12T09:25:49 the advantage is that we won't have parsing problems with the starter packages 2010-12-12T09:25:57 it is still human readable, much easier to store 2010-12-12T09:26:02 much easier for the visualizer to handle 2010-12-12T09:26:04 well i just can't see "do you support lib X" getting all that much attention. 2010-12-12T09:26:29 and.. the protocol can be extended live 2010-12-12T09:26:34 without breaking older versions 2010-12-12T09:26:44 hence the protocol can always be backwards compatible 2010-12-12T09:26:58 a thing which is impossible using a made up format 2010-12-12T09:27:33 it was cool that you could write your own bot with any language, just dealing with input/output, nothing else 2010-12-12T09:27:48 yes, this is even better and easier 2010-12-12T09:27:55 you don't have to know how the protocol works 2010-12-12T09:28:05 and if your language doesn't have a json library.. you're doing it wrong 2010-12-12T09:28:26 and you should not be worrying about this... that's the reason starter packages exist 2010-12-12T09:28:30 what are you passing me? my data structs often end up looking very different to the starter packages 2010-12-12T09:28:54 i'd rather be given input to process how i like 2010-12-12T09:28:54 whatever you want? 2010-12-12T09:29:06 ok.. like it's not hard to parse it as you like 2010-12-12T09:29:07 (i don't really understand :P) 2010-12-12T09:29:16 you might just break a few things though 2010-12-12T09:29:20 here... 2010-12-12T09:29:33 before: 1 2 3 4 5 6 2010-12-12T09:30:04 after: "array" = [1, 2, 3, 4, 5, 6] 2010-12-12T09:30:16 darn... : not = 2010-12-12T09:31:07 amstan: Don't get me wrong. A format formatting system is a real good idea. 2010-12-12T09:31:40 but i do get sick of useing XML/newBetterThanXML/etc for simple things 2010-12-12T09:32:12 but this is not simple 2010-12-12T09:32:18 amstan: as for lanuage support. well again no problems there, as long as the main server is going to support it 2010-12-12T09:32:32 you could have any kind of info that you can give to the bot and that it has to return 2010-12-12T09:32:38 we cannot anticipate if there's more needs 2010-12-12T09:32:46 we cannot 2010-12-12T09:32:48 last time we needed to somehow pass max turns 2010-12-12T09:32:52 we couldn't 2010-12-12T09:32:58 because the protocol would not allow it 2010-12-12T09:33:03 if we were using json we could have 2010-12-12T09:33:13 one extra entry in the dict would not break other things 2010-12-12T09:33:22 well i was thinking there can be a init message at the start... again its format is perhaps less important that having it 2010-12-12T09:33:38 and "named" things is a good idea 2010-12-12T09:33:59 yes, so instead of making or own format for a dict like thing 2010-12-12T09:34:01 just use json 2010-12-12T09:34:04 but is JSON the best for this.? 2010-12-12T09:34:07 yeah, i think pass people board dimensions, then wait for them to send back "ready" then feed gamestates 2010-12-12T09:34:23 possibly pass noTurns and turnTime as well 2010-12-12T09:34:42 that way parameters can be played with and people can't bitch about having hard coded anything 2010-12-12T09:34:47 you could even have a warning indicator 2010-12-12T09:34:53 for running out of time 2010-12-12T09:35:05 no, just provide timers in every starter package 2010-12-12T09:35:12 with a getTime function 2010-12-12T09:35:27 antimatroid: but which parameters do we include, you cannot know you which ones you'll need by the time you have to have the protocol done 2010-12-12T09:35:32 amstan: what are your thoughts on the next game (kind of game that it) 2010-12-12T09:35:33 is 2010-12-12T09:35:37 delt0r___: no idea 2010-12-12T09:35:47 people are suggesting ants, but i don't see how that's going to work 2010-12-12T09:35:51 in terms of processing power 2010-12-12T09:36:02 amstan: works fine with single processes, like i said before 2010-12-12T09:36:13 we are working out now how to do it feasibly 2010-12-12T09:36:20 yea-- i almost have an game implementation ready. Buts its one process per player --not per ant 2010-12-12T09:36:26 how? 2010-12-12T09:36:35 how do you make sure ants don't communicate with eachother 2010-12-12T09:36:40 I don't 2010-12-12T09:36:40 if it's single process? 2010-12-12T09:36:58 cyborg ants should have wireless anyway 2010-12-12T09:37:05 delt0r___: i am wondering how you feel about automatic fight to the death if two enemy bots land in the same square, invalid if two friends land in the same square, and you can "fight" an enemy next to you? 2010-12-12T09:37:15 that way there is no move collision detection 2010-12-12T09:37:25 well, undoing moves 2010-12-12T09:37:41 itd be cool to see friendly fire 2010-12-12T09:37:50 well i have my basic version almost done... lets just see what falls out 2010-12-12T09:38:08 amstan: I will give JSON a good look at in the next days 2010-12-12T09:38:48 delt0r____: would i be able to take a look at the code you have so far? i could start knocking together a few example like bots if i knew what the format is like 2010-12-12T09:41:32 antimatroid: its not so nice yet... let me finish a debug round or two 2010-12-12T09:41:53 sure 2010-12-12T09:48:00 antimatroid: its java you know 2010-12-12T09:48:11 that's alright, i can probably read it 2010-12-12T10:12:10 *** davidjliu has joined #aichallenge 2010-12-12T10:12:44 *** narnach_mb has quit IRC (Quit: Leaving.) 2010-12-12T10:18:23 *** Migi32 has quit IRC (Quit: BOINC) 2010-12-12T10:37:48 *** amriedle has joined #aichallenge 2010-12-12T10:38:28 delt0r___: what is your fighting? 2010-12-12T10:38:52 i think it might be cool if a bot can "shoot" with a given direction, and that bullet just follows that path until hitting a wall or enemy 2010-12-12T10:38:55 or friend 2010-12-12T10:39:53 my fighting is that an ant must "attack" an adjesnt square 2010-12-12T10:40:18 that's what i was thinking before, what do you think of it being "fire" with direction?? 2010-12-12T10:40:41 it's not possible to shoot yourself (without looping the map) like that either 2010-12-12T10:40:44 more code--right not antthing with more code 2010-12-12T10:40:55 ;) 2010-12-12T10:50:32 it's not much harder, and way more awesome 2010-12-12T10:50:52 now you are tracking ants and "bullets" 2010-12-12T10:50:57 its quite a bit more code 2010-12-12T10:52:01 not really, bullets are just an extra thing per square, and they have a specified direction 2010-12-12T10:52:12 if they even land in the same squer as an ant, deduct an hp 2010-12-12T10:52:19 ever* 2010-12-12T10:52:24 square* 2010-12-12T10:52:28 (it's almost 3am) 2010-12-12T10:52:40 i'm setting up a cpp starter package like bot atm 2010-12-12T10:52:49 i haven't done anything about input etc. yet, it's all very general 2010-12-12T10:53:10 bots should cancel each other too 2010-12-12T10:53:13 bullets* 2010-12-12T11:03:30 *** Epona has quit IRC (Ping timeout: 250 seconds) 2010-12-12T11:11:18 *** bhasker has joined #aichallenge 2010-12-12T11:12:48 bhasker: morning 2010-12-12T11:12:52 morning 2010-12-12T11:12:57 http://codepad.org/ugaRX7bA 2010-12-12T11:13:03 i made an example map gen for antwars :)( 2010-12-12T11:13:10 there is a map at the bottom of the page 2010-12-12T11:13:17 looking for any feedback 2010-12-12T11:13:37 oh i haven't read about the game yet 2010-12-12T11:14:25 so the numbers is the amount of resources at that point? 2010-12-12T11:15:58 yep 2010-12-12T11:16:03 'a' and 'b' are home holes 2010-12-12T11:16:06 # are walls 2010-12-12T11:16:22 ah k 2010-12-12T11:16:26 with edges wrapped, you can reach every non-wall from your home hole, which is where ants would spawn 2010-12-12T11:16:50 ah k 2010-12-12T11:18:16 so what kind of feedback are you looking for? critique on the map? or the generator?. 2010-12-12T11:18:23 anything 2010-12-12T11:18:31 suggestions for what people like/don't like 2010-12-12T11:18:40 hmm 2010-12-12T11:18:45 let me read up on the game first 2010-12-12T11:19:03 the last few pages are possibly more relevant than the middle ones 2010-12-12T11:20:12 k 2010-12-12T11:21:35 i'm going to make a post in there of how i currently think it could be done 2010-12-12T11:23:38 so each ant runs a copy of the code 2010-12-12T11:23:56 so the server will spin up new instances every time the ant reproduces? 2010-12-12T11:25:09 no, we currently think all ants will be in the one process 2010-12-12T11:25:20 it's too hard to do it the other way 2010-12-12T11:25:27 but i think this will still be quite interesting 2010-12-12T11:27:09 ah the battle code competition does that 2010-12-12T11:27:10 i think 2010-12-12T11:27:21 there each robot spins up an instance 2010-12-12T11:33:28 overall looks interesting to me 2010-12-12T11:33:45 but hard to critique without some real gameplay on the map 2010-12-12T11:34:26 yep 2010-12-12T11:34:38 i'm about halfway through writing this more recent post 2010-12-12T11:39:25 *** perror has joined #aichallenge 2010-12-12T11:41:07 do we have an agreement on rules yet 2010-12-12T11:41:13 for battle resolution/growth etc 2010-12-12T11:41:19 or are they still being fleshed out 2010-12-12T11:41:45 *** amriedle has quit IRC (*.net *.split) 2010-12-12T11:41:45 *** Naktibalda has quit IRC (*.net *.split) 2010-12-12T11:41:45 *** delt0r___ has quit IRC (*.net *.split) 2010-12-12T11:41:47 *** delt0r has quit IRC (*.net *.split) 2010-12-12T11:41:47 *** politik has quit IRC (*.net *.split) 2010-12-12T11:43:23 *** amriedle has joined #aichallenge 2010-12-12T11:43:23 *** Naktibalda has joined #aichallenge 2010-12-12T11:43:23 *** delt0r___ has joined #aichallenge 2010-12-12T11:43:23 *** delt0r has joined #aichallenge 2010-12-12T11:43:23 *** politik has joined #aichallenge 2010-12-12T11:43:56 *** Epona has joined #aichallenge 2010-12-12T11:44:08 *** mega1 has joined #aichallenge 2010-12-12T11:47:16 *** amriedle has quit IRC (*.net *.split) 2010-12-12T11:47:17 *** Naktibalda has quit IRC (*.net *.split) 2010-12-12T11:47:17 *** delt0r___ has quit IRC (*.net *.split) 2010-12-12T11:47:18 *** delt0r has quit IRC (*.net *.split) 2010-12-12T11:47:18 *** politik has quit IRC (*.net *.split) 2010-12-12T11:47:53 *** amriedle has joined #aichallenge 2010-12-12T11:47:53 *** Naktibalda has joined #aichallenge 2010-12-12T11:47:53 *** delt0r___ has joined #aichallenge 2010-12-12T11:47:53 *** delt0r has joined #aichallenge 2010-12-12T11:47:53 *** politik has joined #aichallenge 2010-12-12T11:48:18 split 2010-12-12T11:54:49 *** narnach has joined #aichallenge 2010-12-12T11:54:49 *** narnach is now known as narnach_mb 2010-12-12T11:55:09 *** narnach has joined #aichallenge 2010-12-12T12:00:16 this is probably getting old, but... 2010-12-12T12:00:17 http://www.ai-contest.com/forum/viewtopic.php?f=21&t=1205&p=8271#p8271 2010-12-12T12:00:34 that is one way i'm pretty sure the game could full be implemented and work without issues 2010-12-12T12:01:51 2. Each player controls all ants in the one process (so all share the same information), two friend ants cannot move into the same square (that would be an invalid order and loss of game), if two enemy ants land in the same square, the one with the lowest hp dies (could be both) and the other one loses that many hp, although ants may swap places. 2010-12-12T12:01:54 should be requoted 2010-12-12T12:01:59 rephrased rather 2010-12-12T12:02:00 doh 2010-12-12T12:02:11 "if two enemy ants land in the same square" 2010-12-12T12:02:21 should probably be rephrased 2010-12-12T12:03:22 why? 2010-12-12T12:03:45 could be read as two ants owned by the enemy 2010-12-12T12:03:50 which makes no sense 2010-12-12T12:03:57 ah yep 2010-12-12T12:04:13 opposing? 2010-12-12T12:04:21 yes 2010-12-12T12:04:22 *** narnach_mb has quit IRC (Quit: Leaving.) 2010-12-12T12:04:41 so new ants can only spawn at home bases? 2010-12-12T12:04:48 and ants have to carry the food back to home base? 2010-12-12T12:05:31 yes 2010-12-12T12:05:39 but you can deposit it to another ant 2010-12-12T12:05:46 ah so you can make supply chains 2010-12-12T12:05:49 yep 2010-12-12T12:12:03 *** Epona has quit IRC (Ping timeout: 272 seconds) 2010-12-12T12:12:10 *** narnach has quit IRC (Quit: Leaving.) 2010-12-12T12:22:12 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T12:26:49 *** Frontier has left #aichallenge 2010-12-12T12:29:14 *** wvdschel has joined #aichallenge 2010-12-12T12:29:15 *** wvdschel has joined #aichallenge 2010-12-12T12:29:44 *** wvdschel has left #aichallenge 2010-12-12T12:29:56 *** bhasker has joined #aichallenge 2010-12-12T12:32:14 *** Migi32 has joined #aichallenge 2010-12-12T12:36:09 *** tapwater has joined #aichallenge 2010-12-12T12:41:41 *** Mathnerd314 has joined #aichallenge 2010-12-12T12:44:12 hehe, i think i found a small bug in map gen 2010-12-12T12:47:59 antimatroid ur motivated enough to help me 2010-12-12T12:48:05 maybe i should explain the secret parts of what im doin to u 2010-12-12T12:48:43 ? 2010-12-12T12:49:03 im the guy who was like poopoo who wants to work on real ai w me yesterday 2010-12-12T12:52:27 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T12:59:13 *** yasith has quit IRC (Ping timeout: 240 seconds) 2010-12-12T13:06:58 wow 2010-12-12T13:07:00 *** Accoun has quit IRC (Ping timeout: 264 seconds) 2010-12-12T13:07:17 antimatroid: you very quickly see whats not going to work once its running 2010-12-12T13:07:27 or at least where you have problems 2010-12-12T13:07:51 getting even a basic "rage" bot to be not completly stupid in not as easy as it looks 2010-12-12T13:08:02 any gtg 2010-12-12T13:11:21 delt0r___: yeah i know, i think i have a version that will run without it being too complicated 2010-12-12T13:11:24 with lots of dynamics 2010-12-12T13:17:22 *** Accoun has joined #aichallenge 2010-12-12T13:23:02 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716]) 2010-12-12T13:26:16 *** kincody has joined #aichallenge 2010-12-12T13:31:04 *** kincody has quit IRC (Ping timeout: 265 seconds) 2010-12-12T13:49:45 *** amriedle has quit IRC (Quit: Lost terminal) 2010-12-12T13:56:39 i worked out a much better way to do the map generator actually 2010-12-12T13:56:53 so you have no way of knowing where their base is 2010-12-12T13:57:02 i'm going to bed though, i'll do it when i get up 2010-12-12T14:10:30 *** delt0r_ has joined #aichallenge 2010-12-12T14:11:48 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2010-12-12T14:27:08 *** ptika has quit IRC (Ping timeout: 265 seconds) 2010-12-12T14:27:49 *** boegel has joined #aichallenge 2010-12-12T14:33:45 *** bhasker has joined #aichallenge 2010-12-12T14:54:15 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T15:01:48 *** boegel has quit IRC (Quit: Leaving) 2010-12-12T15:05:03 *** Accoun has quit IRC () 2010-12-12T15:14:55 *** Accoun has joined #aichallenge 2010-12-12T15:19:56 *** perror has quit IRC (Quit: Bye all !) 2010-12-12T15:27:24 *** Frontier has joined #aichallenge 2010-12-12T15:32:10 *** Rubicon-|-Cross has quit IRC (Quit: Leaving) 2010-12-12T15:58:37 *** Appleman1234 has joined #aichallenge 2010-12-12T16:15:49 *** Azrathud has joined #aichallenge 2010-12-12T16:23:50 *** Appleman1234 has quit IRC (Ping timeout: 255 seconds) 2010-12-12T16:25:18 *** amriedle has joined #aichallenge 2010-12-12T16:33:56 *** mega1 has quit IRC (Ping timeout: 245 seconds) 2010-12-12T16:36:21 *** Appleman1234 has joined #aichallenge 2010-12-12T16:42:10 *** Azrathud has quit IRC (Ping timeout: 240 seconds) 2010-12-12T16:46:38 *** Appleman1234 has quit IRC (Read error: Connection reset by peer) 2010-12-12T16:50:02 *** Appleman1234 has joined #aichallenge 2010-12-12T16:58:04 *** Azrathud has joined #aichallenge 2010-12-12T17:03:44 *** sigh has joined #aichallenge 2010-12-12T17:08:42 *** Palmik has quit IRC (Remote host closed the connection) 2010-12-12T17:21:43 *** jaspervdj has quit IRC (Quit: NEVER GONNA GIVE YOU UP NEVER GONNA LET YOU DOWN) 2010-12-12T17:37:38 *** nann has joined #aichallenge 2010-12-12T17:40:04 *** delt0r___ has joined #aichallenge 2010-12-12T17:41:09 *** bobng has quit IRC (Quit: ZNC - http://znc.sourceforge.net) 2010-12-12T17:43:06 *** Apophis_ has quit IRC (Ping timeout: 240 seconds) 2010-12-12T17:43:07 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2010-12-12T18:05:36 *** medrimonia1 has joined #aichallenge 2010-12-12T18:06:26 *** medrimonia has quit IRC (Ping timeout: 255 seconds) 2010-12-12T18:07:15 *** bhasker has joined #aichallenge 2010-12-12T18:09:57 *** Appleman1234 has quit IRC (Ping timeout: 250 seconds) 2010-12-12T18:22:12 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T18:25:34 *** Appleman1234 has joined #aichallenge 2010-12-12T18:32:12 *** ChanServ has quit IRC (shutting down) 2010-12-12T18:44:42 *** ChanServ has joined #aichallenge 2010-12-12T18:44:42 *** kornbluth.freenode.net sets mode: +o ChanServ 2010-12-12T18:44:54 *** ChanServ has quit IRC (*.net *.split) 2010-12-12T18:47:27 *** Appleman1234 has quit IRC (Ping timeout: 240 seconds) 2010-12-12T18:47:57 *** Appleman1234 has joined #aichallenge 2010-12-12T18:49:01 *** ChanServ has joined #aichallenge 2010-12-12T18:49:01 *** kornbluth.freenode.net sets mode: +o ChanServ 2010-12-12T19:22:55 *** Azrathud has joined #aichallenge 2010-12-12T19:26:04 *** amriedle has quit IRC (Quit: leaving) 2010-12-12T19:50:51 *** Appleman1234 has quit IRC (Ping timeout: 255 seconds) 2010-12-12T19:57:45 *** mceier has quit IRC (Quit: leaving) 2010-12-12T20:07:39 *** Appleman1234 has joined #aichallenge 2010-12-12T20:25:17 *** Migi32 has quit IRC (Quit: BOINC) 2010-12-12T20:33:33 *** Appleman1234 has quit IRC (Ping timeout: 245 seconds) 2010-12-12T20:51:50 *** Appleman1234 has joined #aichallenge 2010-12-12T21:30:16 *** Accoun has quit IRC (Ping timeout: 240 seconds) 2010-12-12T21:34:15 *** Accoun has joined #aichallenge 2010-12-12T21:52:26 *** bhasker has joined #aichallenge 2010-12-12T21:56:36 *** antimatroid1 has joined #aichallenge 2010-12-12T21:59:08 *** antimatroid has quit IRC (Ping timeout: 255 seconds) 2010-12-12T22:10:32 *** delt0r_ has joined #aichallenge 2010-12-12T22:11:54 *** delt0r___ has quit IRC (Ping timeout: 245 seconds) 2010-12-12T22:14:42 antimatroid http://www.physorg.com/news/2010-12-algorithms-problem-solving-ants.html 2010-12-12T22:18:21 i saw that recently actually thanks 2010-12-12T22:18:27 i just fixed up the map generator 2010-12-12T22:18:40 http://codepad.org/I8r5fxCx 2010-12-12T22:18:53 i took out two of the symmetries, and added in a random "translate" map function 2010-12-12T22:19:16 the two symmetries i took are are what would have always left the other home on either the same column or row as yours, even after translating 2010-12-12T22:19:23 sigh: is that better ^^? 2010-12-12T22:21:15 ahaha, you've got a variable named map 2010-12-12T22:21:26 yeah i know, i should change that 2010-12-12T22:21:31 but it works atm 2010-12-12T22:21:38 yeah, you are overriding a builtin method 2010-12-12T22:21:47 it's the jumbling i am interested in? 2010-12-12T22:21:58 what jumbling? 2010-12-12T22:22:00 with the way it is now, i think their home base could be any other square 2010-12-12T22:22:23 at the end i translate everything in x and y dirrections 2010-12-12T22:22:34 what does translating do? 2010-12-12T22:22:38 and i removed the two symmetries that had their home base on the same row or column 2010-12-12T22:22:53 picks iT and jT randomly, then shifts all squares by that amount 2010-12-12T22:23:00 but why? 2010-12-12T22:23:08 it doesn't change anything? 2010-12-12T22:23:18 it means you don't know where their home base is 2010-12-12T22:23:23 not even one of say 7 locations 2010-12-12T22:23:56 because you don't know how much it was translated 2010-12-12T22:24:33 ah, I see 2010-12-12T22:24:58 if we're going to have private information, it's silly if people just send out a couple of scouts to the few possible places the other base might be 2010-12-12T22:26:10 ? how does translation effect that though (I should probably just read the code) 2010-12-12T22:26:11 still trivial 2010-12-12T22:26:26 janzert: so that it isn't symmetric about the centre 2010-12-12T22:26:29 translation won't change the relative position between the two bases 2010-12-12T22:26:31 just go in ne and sw 2010-12-12T22:26:40 you'll find the other base 2010-12-12T22:26:44 *ne and nw 2010-12-12T22:27:16 hmmm, is there any way to change it 2010-12-12T22:27:22 i guess not 2010-12-12T22:27:28 not with what you have 2010-12-12T22:27:30 i'll add the other symmetries back in at least 2010-12-12T22:27:39 haha 2010-12-12T22:28:02 what about with transpose? 2010-12-12T22:28:08 bah nevermind 2010-12-12T22:28:09 same 2010-12-12T22:28:32 transpose is nw 2010-12-12T22:29:01 errr... maybe the other way around 2010-12-12T22:29:28 is it worth doing the transpose at all? 2010-12-12T22:30:23 actually, I'm not so sure that it is trivial anymore 2010-12-12T22:30:46 with walls? 2010-12-12T22:31:21 if you're bases could be anywhere within a quadrant (rotate 180 degrees) for opposition base/side then randomly mirror and translate at the end 2010-12-12T22:31:57 janzert: atm i'm randomly picking before 4 symemtries 2010-12-12T22:32:08 although using the one symmetry for a whole board, of course 2010-12-12T22:32:30 between* 2010-12-12T22:33:15 i think that option is the first symmetry, location 2 = [dim-loc[0]-1, dim-loc[1]-1] ? 2010-12-12T22:33:48 well, you guys can figure out if the other base is always reachable by travelling diagonally 2010-12-12T22:34:02 sigh: the walls will prevent that 2010-12-12T22:34:03 I suspect it is, but don't have time to investigate, atm 2010-12-12T22:34:07 but it may give you an idea of where it is 2010-12-12T22:34:09 why do the bases always end up on the 45% angle from each other? 2010-12-12T22:34:23 janzert: because of wrapping 2010-12-12T22:34:39 http://codepad.org/h4awYPiH 2010-12-12T22:34:45 they don't for that, they may end up on the same line 2010-12-12T22:35:46 maps are always square or can be rectangular? 2010-12-12T22:35:53 yeah, well putting those symettries back in means you have 4 directions to search instead of 2 2010-12-12T22:35:58 janzert: square arm 2010-12-12T22:35:58 always square, i can change that if i remove the 4th symmetry 2010-12-12T22:35:59 *atm 2010-12-12T22:36:18 although even dimensions makes my life easier 2010-12-12T22:36:31 with respect to generating correct number of walls/grain squares 2010-12-12T22:37:49 you are guaranteed that your ants can reach every non-wall square from the spawn point if edges are wrapped 2010-12-12T22:41:44 agh, use 0 instead of '0' :} 2010-12-12T22:41:51 :P 2010-12-12T22:41:53 fixed 2010-12-12T22:42:43 well, now it is 2010-12-12T22:43:01 ok, I think that rotating thwarts the diagonal thing 2010-12-12T22:43:02 and it's probably easier to visualize if the 0 turn into . when printing 2010-12-12T22:43:38 sigh: wouldn't it just make it one diagonal direction? 2010-12-12T22:44:25 rotating should allow them to end up, with a final mirror/translation step should allow them to end up any relative position 2010-12-12T22:45:33 do i need to rotate it once or twice? and just clockwise is fine? 2010-12-12T22:45:49 rotate 180 then translate 2010-12-12T22:45:51 is enough 2010-12-12T22:45:56 okay, i'll do that now 2010-12-12T22:46:18 you will probably cry of laughter at how i'd rotate something, what's the easiest way? :P 2010-12-12T22:46:26 x,y = -x,-y 2010-12-12T22:46:51 what you would probably want to do is generate half the map completely random then rotate 180 degrees, then translate (and randomly mirror if the bases are identifiable to the ants as a and b) 2010-12-12T22:46:59 err... adjust for your non-zero centered grid :P 2010-12-12T22:47:06 mirror, 50% of the time that is 2010-12-12T22:47:25 okay 2010-12-12T22:47:31 x,y = dim-x-1, dim-y-1 is correct, I think? 2010-12-12T22:47:36 janzert: will that work with my paint algorithm each turn? 2010-12-12T22:47:42 to make sure all squares can be reached 2010-12-12T22:48:39 i'll just do it how i would, and let you laugh at me :) 2010-12-12T22:48:56 I haven't worked out what the whole thing is doing yet :) 2010-12-12T22:49:57 janzert: 'a' and 'b' represent home holes, where an ant spawns if grains are there and no ant is currently on it, you start with 5 grains or so, # are walls, and numbers are grains that can be harvested 2010-12-12T22:50:04 http://www.ai-contest.com/forum/viewtopic.php?f=21&t=1205&start=60 2010-12-12T22:50:14 my last post there explains how i think the game could be done and work 2010-12-12T22:50:17 yep, I figured that much out 2010-12-12T22:50:20 well, last big post 2010-12-12T22:52:01 ok, so with the proposed protocol the player won't know which base is 'a' or 'b' so the mirror step is unnecessary 2010-12-12T22:52:08 sigh: http://codepad.org/QMhXN2O5 2010-12-12T22:52:10 will that do the trick? 2010-12-12T22:52:36 oh, iR = jR = dim-1 though 2010-12-12T22:53:07 and returning my new map ehe 2010-12-12T22:53:25 *** bhasker has quit IRC (Quit: bhasker) 2010-12-12T22:53:49 haven't got time to think this through right now 2010-12-12T22:53:59 sure, i have to go do stuff too 2010-12-12T22:54:08 i'll work it out later, it's giving me an error now 2010-12-12T22:54:58 I just writing a function to test that the generator doesn't always creates maps where you can trivially find the other bases by going in any of the 8 obvious directions 2010-12-12T22:55:06 *I suggest writing 2010-12-12T22:55:59 errr, i see my problem from above, that code was terrible aha 2010-12-12T22:57:22 i don't expect charging their base right at the start to be a very smart strategy anyway worst case 2010-12-12T23:00:44 * Frontier shσωs μρ αgαιη, τσ sεε ωhατ's gσιηg ση. 2010-12-12T23:04:56 http://codepad.org/51GidmTj 2010-12-12T23:04:58 i think that works 2010-12-12T23:08:20 Frontier: grumble grumble! 2010-12-12T23:09:00 here's a bit of list and generator expression abuse for your map printing function :) http://codepad.org/Cxb32Pad 2010-12-12T23:09:55 print_list can also just be print " ".join(str(i) for i in pList) 2010-12-12T23:10:21 cheers, it is my second attempt at something in python :) 2010-12-12T23:10:38 anyway, i do need to do some other stuff, i'll be back in a while 2010-12-12T23:10:52 later 2010-12-12T23:11:00 oh god, that's so much better to look at :) 2010-12-12T23:11:52 i think this game could work though, and i think it'd make for a pretty awesome one 2010-12-12T23:12:47 someone should go back and look at the tron map generator, I think it should be adaptable to make pretty good maps for this 2010-12-12T23:26:19 janzert: " ".join(map(str,pList)) if we are going for code golf here :P 2010-12-12T23:27:32 won't work cause map is overridden as a list of lists :P 2010-12-12T23:27:42 but yeah 2010-12-12T23:27:54 aha... you are right :( 2010-12-12T23:32:15 janzert: i had a good idea for tron last night actually 2010-12-12T23:32:35 like this but without resources, you get a new snake of length x from home hole every y turns, if you go into their hole they lose 2010-12-12T23:32:45 and if a snake dies, it disappears 2010-12-12T23:33:37 so you've got a "snake" and your aim is to invade the opponent's "hole"... right 2010-12-12T23:34:00 you have multiple snakes 2010-12-12T23:34:06 so you have to protect your hole and invade theirs 2010-12-12T23:34:10 haha 2010-12-12T23:34:28 *** Appleman1234 has joined #aichallenge 2010-12-12T23:39:13 *** Appleman1234 has quit IRC (Ping timeout: 265 seconds) 2010-12-12T23:49:09 *** Appleman1234 has joined #aichallenge