2011-02-19T01:00:47 *** flag has quit IRC (Quit: Lost terminal) 2011-02-19T01:47:02 *** pgpaskar has quit IRC (Quit: leaving) 2011-02-19T01:47:22 *** pgpaskar_ has joined #aichallenge 2011-02-19T03:05:40 *** mega1 has joined #aichallenge 2011-02-19T03:09:11 *** choas has joined #aichallenge 2011-02-19T03:15:22 *** Mathnerd314 has quit IRC (Ping timeout: 250 seconds) 2011-02-19T03:19:18 *** sigh has quit IRC (Remote host closed the connection) 2011-02-19T03:34:14 *** sigh has joined #aichallenge 2011-02-19T03:50:51 *** Frontier has joined #aichallenge 2011-02-19T03:56:48 *** Accoun has quit IRC (Ping timeout: 250 seconds) 2011-02-19T03:57:22 *** Accoun has joined #aichallenge 2011-02-19T04:10:36 *** Palmik has joined #aichallenge 2011-02-19T06:20:16 *** JamesMG has quit IRC (Read error: Operation timed out) 2011-02-19T06:21:38 *** JamesMG has joined #aichallenge 2011-02-19T06:46:33 *** uniqanomaly has quit IRC (Remote host closed the connection) 2011-02-19T06:59:43 I've added Tasmanian time to the Gnome clock applet. So I know when you Aussies go offline. 2011-02-19T07:11:17 :P 2011-02-19T07:11:29 now your only problem is how variable my "bed time" is 2011-02-19T07:11:43 i was thinking the other day i need to get an app where i can assign a time to usernames 2011-02-19T07:11:50 i might look into that now 2011-02-19T07:21:58 bloody i have an application 2011-02-19T07:22:08 it expects me to know when daylight savings starts and ends 2011-02-19T07:22:12 i don't even know that for hobart 2011-02-19T07:22:48 Frontier: where do you live and what's the timezone +- gmt? :P 2011-02-19T07:22:58 germany yeah? 2011-02-19T07:24:09 right, currently it is CET 2011-02-19T07:24:28 so 12:10pm? 2011-02-19T07:24:36 it's 11:10pm here 2011-02-19T07:24:43 not quite: 13:10pm 2011-02-19T07:25:14 i'm terrible with arithmetic sometimes :P 2011-02-19T07:26:09 oh man, this application is cool 2011-02-19T07:26:12 Just select Germany from the Gnome countries menu ^^ and remember to add greek letters to your keyboard 2011-02-19T07:26:20 i'm on xp :P 2011-02-19T07:26:22 What does it do? 2011-02-19T07:26:37 it lets me create a little clock for wherever, but name it whatever i want 2011-02-19T07:26:44 i currently have antimatroid and Frontier clocks 2011-02-19T07:26:48 and i can set alarms for each 2011-02-19T07:27:09 i'd been using a website for an alarm recently 2011-02-19T07:27:26 ah ok... i figure i could do the same with by setting appointments in the calendar, but that seems awkward 2011-02-19T07:27:43 what's your favourite colour? 2011-02-19T07:27:49 *** Migi32 has joined #aichallenge 2011-02-19T07:27:54 i swear colour looks much nicer with the u 2011-02-19T07:27:57 bloody americans 2011-02-19T07:27:57 mint 2011-02-19T07:28:06 done 2011-02-19T07:28:09 i took leaf 2011-02-19T07:28:12 the other green 2011-02-19T07:28:40 anyone else want a clock on my screen? :P 2011-02-19T07:29:58 oh, even more cool, it's only visible on the desktop 2011-02-19T07:30:23 Have you taken a look at McLeopolds visualizer yet? I've just looked at the source code. Makes me think I should hurry a bit :p 2011-02-19T07:31:01 But I really had more drive when I was writing versione 1 to 3. oh well 2011-02-19T07:31:07 *versions 2011-02-19T07:31:16 was it good was it? :P 2011-02-19T07:31:19 i haven't looked 2011-02-19T07:31:28 i will when there's a link i can click to watch a game 2011-02-19T07:33:04 * antimatroid1 wonders what the server time is 2011-02-19T07:33:08 From what I can see it parses the adress bar. So you can drop the visualizer into some web server and whatch it play 2011-02-19T07:33:33 Let me see if I can do that. 2011-02-19T07:38:28 *** delt0r_ has joined #aichallenge 2011-02-19T07:39:59 Hmm, maybe it uses a different format 2011-02-19T07:40:38 *** delt0r___ has quit IRC (Ping timeout: 276 seconds) 2011-02-19T07:43:54 antimatroid1: I could get it to display turn 0: http://marco-leise.homedns.org/antgui/McLeopold/viewer.html 2011-02-19T07:45:53 I'll set the maximum scale to 10x10 per 'pixel' so the zoom function zooms in at least by factor 2 (to 20x20) 2011-02-19T07:53:07 i imagined a border :p 2011-02-19T08:11:39 *** antimatroid has joined #aichallenge 2011-02-19T08:15:36 *** antimatroid1 has quit IRC (Ping timeout: 276 seconds) 2011-02-19T08:20:47 a border, hmm. mahagoni or teak? 2011-02-19T08:25:21 *** BtbN_ has joined #aichallenge 2011-02-19T08:26:09 i know neither of those colours properly :P 2011-02-19T08:26:17 i thought my example pictures worked alright, but i really don't mind 2011-02-19T08:28:07 *** BtbN has quit IRC (Ping timeout: 246 seconds) 2011-02-19T08:41:09 *** smellyhippy has quit IRC (Quit: Take your stinking clause off me you damn dirty predicate!) 2011-02-19T08:49:26 *** sigh has quit IRC (Remote host closed the connection) 2011-02-19T08:57:47 *** smellyhippy has joined #aichallenge 2011-02-19T09:09:00 *** smellyhippy has quit IRC (Quit: Take your stinking clause off me you damn dirty predicate!) 2011-02-19T09:14:12 *** smellyhippy has joined #aichallenge 2011-02-19T09:16:18 *** boegel has joined #aichallenge 2011-02-19T09:26:56 *** boegel has quit IRC (Ping timeout: 240 seconds) 2011-02-19T09:31:30 *** mceier has joined #aichallenge 2011-02-19T09:32:06 *** boegel has joined #aichallenge 2011-02-19T09:41:30 wow, someone wrote a lzma codec in javascript. so we could store lzma compressed replays on the server and have them decompressed by the client. On the other hand it might just not be worth the server cpu time :) 2011-02-19T09:43:14 http://nmrugg.github.com/LZMA-JS/LZMA-JS_demo_simple/LZMADemo_simple.html 2011-02-19T09:52:57 *** BtbN_ is now known as BtbN 2011-02-19T10:00:28 Frontier: I have a problem for you :P 2011-02-19T10:00:34 http://www.reddit.com/r/math/comments/fofew/48_golfers_10_rounds_groups_of_4_how_can_you/ 2011-02-19T10:00:39 i'm playing around with it atm 2011-02-19T10:02:08 Oh thanks, but no. I tried those years ago and I remember it was frustrating after a while. 2011-02-19T10:03:09 :p 2011-02-19T10:03:38 i've never actually done sodoku, but it seems a lot like that 2011-02-19T10:03:50 PlanetWars had a better ratio of successes / time invested :D 2011-02-19T10:05:45 i'm not putting a huge amount of effort in 2011-02-19T10:06:10 i have an idea that could potentially flukishly find a solution, so i'll code it up and leave it running over night if it takes that long, but otherwise bleh 2011-02-19T10:06:53 *** Mathnerd314 has joined #aichallenge 2011-02-19T10:09:10 maybe ask the guy that just joined, his nick looks like he might be interested :) 2011-02-19T10:10:08 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-02-19T10:13:01 antimatroid: after just a quick skim I think the pairing can be phrased as a minimum weight perfect matching problem which can be done in polynomial time (there are even a couple open source implementations out there) 2011-02-19T10:14:30 janzert: i'll have a look, thanks 2011-02-19T10:19:41 janzert: btw, I found it is an option to store the replays in compressed format on the server and decode them within javascript. there are implementations for anything from gzip to lzma. 2011-02-19T10:20:04 ahh, that'd be great. 2011-02-19T10:20:04 it's usefulness depends though as you can imagine 2011-02-19T10:20:58 I wonder if we can't store them gzip'ed and then server them with the correct headers so the browser will decompress before handing it off to the javascript 2011-02-19T10:21:20 I'm pretty sure all the modern browsers support gzip compression 2011-02-19T10:21:23 hmmm this golfing problem is hard 2011-02-19T10:21:32 this is one of the 'dependencies' i can imagine 2011-02-19T10:22:49 It might also be the case that only a few replays are actually watched so the cpu load for compressing all of them in advance would be higher than on-the-fly gzip compression 2011-02-19T10:23:38 except I was wanting the compression to save on storage space more than bandwidth space 2011-02-19T10:24:42 then take a look at this: http://nmrugg.github.com/LZMA-JS/LZMA-JS_demo_simple/LZMADemo_simple.html 2011-02-19T10:25:40 also since amazon just changed it so you can serve content directly from S3 now, we could just store the replay data in S3 and not worry about it 2011-02-19T10:25:46 (most of the time is actually consumed by the dynamic HTML part if I can trust Chrome's profiler) 2011-02-19T10:26:27 don't we run into the cross-site-scipting problem again then? 2011-02-19T10:27:30 or do you imagine a php script to load the replay data from this S3 server and merge it into a html on ai-contest.com? 2011-02-19T10:27:31 I think the visualizer would have to be served from S3 as well for it to work, yeah 2011-02-19T10:27:37 ah ok 2011-02-19T10:28:37 (the php version would defeat the purpose, i should think before i type :p) 2011-02-19T10:29:33 the php version would still have some potential advantage but yeah it wouldn't be as nice 2011-02-19T10:33:32 *** Migi32 has quit IRC (Remote host closed the connection) 2011-02-19T11:03:16 hmm, well that didn't work at all aha 2011-02-19T11:03:25 http://codepad.org/bxliHkku 2011-02-19T11:03:28 it got 4 rounds out 2011-02-19T11:03:48 that was a very very naive attempt though 2011-02-19T11:04:09 *** McLeopold has joined #aichallenge 2011-02-19T11:05:59 McLeopold: http://www.reddit.com/r/math/comments/fofew/48_golfers_10_rounds_groups_of_4_how_can_you/ 2011-02-19T11:10:31 I wrote an algo for that somewhere 2011-02-19T11:15:11 i can't think of anything that would solve it well 2011-02-19T11:15:22 janzert suggested something, but i couldn't really find anything on it 2011-02-19T11:20:05 I'm sure I did, I just don't remember how. It was 5 years ago I think. 2011-02-19T11:27:10 http://tcp.zeroviz.us/viewer.html Use the arrow keys 2011-02-19T11:29:25 very nice 2011-02-19T11:29:31 frontier isn't going to like you :P 2011-02-19T11:32:38 it's his job to make it pretty 2011-02-19T11:33:54 McLeopold: The protocol you used, was that just a quick shot or do you want this as the 'official' output of your engine? 2011-02-19T11:34:03 what are your intentions for timing with respect to opening the contest? 2011-02-19T11:34:19 (good question antimatroid) 2011-02-19T11:36:16 Frontier: it's the final, except for the row/col thiing 2011-02-19T11:36:26 another few quibbles... does the visualiser window thing (black box) need to be square? given we're doing up to n-players, are wanting to do large maps and most screens aren't square, i was thinking it might be better to allow the width to be greater than the height of a map at the upper bound 2011-02-19T11:36:55 i think that was my main quibble 2011-02-19T11:37:13 i'll worry about the most aesthetically pleasing colours later, maybe lighter blue for water? :P 2011-02-19T11:37:58 the map scales to the box in any shape 2011-02-19T11:39:33 *** rebelxt has joined #aichallenge 2011-02-19T11:39:40 *** Prillicy has joined #aichallenge 2011-02-19T11:40:26 McLeopold: We had agreed on a format on ehterpad: http://ietherpad.com/TR0zbEqvx1 2011-02-19T11:41:52 Communication is always key I guess ^^. 2011-02-19T11:42:01 I wrote that 2011-02-19T11:42:35 You wrote the specs on ietherpad? 2011-02-19T11:42:49 McLeopold: my point was mostly maybe make the black box a rectangle that could potentially show the "largest" allowed map size 2011-02-19T11:43:04 Frontier: I think we both sort of left etherpad behind sorry 2011-02-19T11:43:12 antimatroid: it should shadow the other side of the map 2011-02-19T11:43:14 he did mention it on here 2011-02-19T11:43:39 well, let's go with the wiki 2011-02-19T11:43:44 and update it to me 2011-02-19T11:43:48 So where is the current spec? 2011-02-19T11:44:01 i'm going to bed in a minute :P 2011-02-19T11:44:38 i'll update the visualiser stuff first 2011-02-19T11:44:42 i think it's mostly right anyway? 2011-02-19T11:45:23 McLeopold: can i have some sample input for the visualiser? 2011-02-19T11:45:51 also, make that rectangle large enough for the largest allowable map with shadowing the sides etc. :P 2011-02-19T11:46:08 http://tcp.zeroviz.us/game.0.changes.txt 2011-02-19T11:46:14 *** Mathnerd314 has quit IRC (Ping timeout: 276 seconds) 2011-02-19T11:46:30 i still think it should be a rectangle to allow for larger maps, then we can work out from that what the largest feasible dimensions are for displaying the game on a screen 2011-02-19T11:47:16 McLeopold: you're still sending "go" to the bots yeah? :P 2011-02-19T11:47:51 McLeopold: We introduced some ideas on etherpad. Especially prefixing parameters with "P " and the "V 1" as a version identifier. Would you mind adding that so the format is more flexible? 2011-02-19T11:47:55 and what's the deal with there being information after the end line? 2011-02-19T11:48:14 that's the final state of the board 2011-02-19T11:48:39 wait, are you sending information about actual walks? 2011-02-19T11:48:47 and what squares die? 2011-02-19T11:49:53 this looks like it went way off the first specs that I was working with so far :s 2011-02-19T11:50:13 yeah, i'm not down with it, hang on 2011-02-19T11:50:21 i'll try to meet everyone in the middle on etherpad 2011-02-19T11:51:30 On a positive note the code looks solid :) 2011-02-19T11:55:27 McLeopold: I think the visualiser should maybe get the scores each turn too? 2011-02-19T11:58:39 *** Prillicy has quit IRC (Ping timeout: 246 seconds) 2011-02-19T11:59:12 *** Prillicy has joined #aichallenge 2011-02-19T11:59:23 McLeopold: are you still with us? I want to suggest a few changes 2011-02-19T12:04:18 yes 2011-02-19T12:04:45 okay, I can put in a "version 1" line 2011-02-19T12:04:59 the biggest most important thing is you are sending state information rather than commands 2011-02-19T12:05:01 Frontier: be prepared for the row/col switch 2011-02-19T12:05:11 ? 2011-02-19T12:05:23 you are just sending information about where ants/food are 2011-02-19T12:05:29 yes 2011-02-19T12:05:29 not what direction ants walked into 2011-02-19T12:05:32 no 2011-02-19T12:05:33 in* 2011-02-19T12:05:43 is that bad? 2011-02-19T12:05:46 that's not what frontier and i were expecting/wanting 2011-02-19T12:05:51 really? 2011-02-19T12:05:55 nope :P 2011-02-19T12:06:01 look both on etherpad and specs page 2011-02-19T12:06:05 Did you just want that for the visualizer? 2011-02-19T12:06:10 yes 2011-02-19T12:06:11 We'd like to animate the steps, so it is important to get these commands as output 2011-02-19T12:06:18 hmm... 2011-02-19T12:06:27 *** Prillicy has quit IRC (Ping timeout: 272 seconds) 2011-02-19T12:06:34 I can stuff the bot commands in there 2011-02-19T12:06:39 that way the ants can "slide" when they walk, and fading colliding ants, or battles is easier 2011-02-19T12:06:43 they would be 'O' lines 2011-02-19T12:07:16 you'd have to check if the target space has an ant to know if to fade 2011-02-19T12:07:18 Frontier: you might need to receive W/O and C lines both for the same ant 2011-02-19T12:07:31 C? 2011-02-19T12:07:37 colliding ants 2011-02-19T12:07:37 Collision 2011-02-19T12:07:43 look on etherpad 2011-02-19T12:07:46 That's a dead ant, 'D' 2011-02-19T12:08:15 *** Prillicy has joined #aichallenge 2011-02-19T12:08:24 Did you want to know the different between running into yourself and dying from an enemy? 2011-02-19T12:08:27 i thought we didn't see D for a collided ant? 2011-02-19T12:08:37 haha, we're all on a different page 2011-02-19T12:08:42 we should, it might be broken 2011-02-19T12:09:07 did you find my note for the visualiser input part on etherpad? 2011-02-19T12:09:25 not yet 2011-02-19T12:09:35 search for "McLeopold!! just here" 2011-02-19T12:09:49 :) 2011-02-19T12:10:40 other than sending the 'O' lines from the bots, that's all unnecessary. 2011-02-19T12:10:41 McLeopold: When an ant dies, but it moved in the same turn I need the move and the death as information (or the collision command which combines both) 2011-02-19T12:10:59 You can derive all that info 2011-02-19T12:11:20 I just need to send the ant orders as well. 2011-02-19T12:12:02 he shouldn't need to derive that info 2011-02-19T12:12:05 ok they are equal to the move commands, right? 2011-02-19T12:12:12 I don't want to clutter the spec or replay. 2011-02-19T12:12:15 It isn't that hard 2011-02-19T12:12:24 You can do it during the parsing phase 2011-02-19T12:12:46 O from_row from_col direction 2011-02-19T12:13:08 When parsing the line, just calc the to location... 2011-02-19T12:13:21 Then, depending on what is there now, set the flag you need. 2011-02-19T12:13:45 Flags being, collide, new food, battle, whatever 2011-02-19T12:13:55 I can add it to my visualizer as an example 2011-02-19T12:14:44 Also, I want you guys to know that whatever you need to make the visualizer *cool*, I will provide. I just want to keep the file size as small as possible. 2011-02-19T12:15:03 McLeopold, Frontier: are these three lines sufficient? 2011-02-19T12:15:03 O row col direction    #walk antC row col              #kill ants landing here due to collisionK row col              #turn ant/food into land from battle 2011-02-19T12:15:08 gah 2011-02-19T12:15:24 O row col direction    #walk ant 2011-02-19T12:15:24 C row col              #kill ants landing here due to collision 2011-02-19T12:15:24 K row col              #turn ant/food into land from battle 2011-02-19T12:15:42 You don't need the C, because there will be a D flag in location of an ants destination 2011-02-19T12:16:12 You don't need the K, because a location will turn from food to an ant. 2011-02-19T12:16:32 it was going to be done in 3 phases, so you knew when someone was dying from a collision then could see who was involved in the battles etc. 2011-02-19T12:16:33 ^^ I mean S 2011-02-19T12:17:09 It can still be done. 2011-02-19T12:17:26 I promise, if I add the O lines, you've got everything you need 2011-02-19T12:17:36 Frontier: what do you want? 2011-02-19T12:17:52 only paying minimal attention, but not having to completely and correctly implement the engine in the visualizer is good 2011-02-19T12:17:57 I can do a little work on the parser side. 2011-02-19T12:18:07 i'm with janzert there 2011-02-19T12:18:12 I just don't want to implement the game rules in the visualizer 2011-02-19T12:18:12 so you may not want the visualizer to need to derive too much, such as battle resolution 2011-02-19T12:18:14 particularly when people will go and make their own visualisers 2011-02-19T12:18:25 it doesn't have to do battle resolution 2011-02-19T12:18:25 janzert: that wouldn't be necessary, only a few quick checks in the parsing phase only 2011-02-19T12:18:54 it doesn't need battle resolution, because we are sending the D lines 2011-02-19T12:19:20 It would only really need the vision code, for cool effects. 2011-02-19T12:19:47 So the only game rule I have to implement is a check if there are several ants on the same square after a move -> collision 2011-02-19T12:19:54 it's going to mean saying "hey does more than one ant land in this destination? yes, okay fade while walking", "is that square information meant to be changing? from what? do that then?" 2011-02-19T12:20:07 if you give the commands, it's just a matter of going bam do that, bam do this 2011-02-19T12:20:43 Frontier: the check would be this, when you parse an O line, calc the destination and see what is there, set the correct flag (move, kill, colision) 2011-02-19T12:21:10 Frontier: also, check land turning into food, food disappearing and food turning into ants 2011-02-19T12:21:14 Well, it is a move in any case 2011-02-19T12:21:26 Right, it might be a move, or a move death 2011-02-19T12:21:56 You do send death lines, do you? 2011-02-19T12:22:00 i don't have to write the visualiser, but i think you're making it harder for whoever does write them 2011-02-19T12:22:02 You could also set a flag as to how many ants died at a destination 2011-02-19T12:22:13 Frontier: I should be, it might be broken... 2011-02-19T12:22:39 Okay, I will implement this in my visualizer today. You can pull my parsing and data structures. 2011-02-19T12:23:08 and land turning into food, food disappearing and food turning into ants are all seperate lines, too? 2011-02-19T12:23:34 contestbot: seen j3camero 2011-02-19T12:23:34 amstan: j3camero was last seen in #aichallenge 1 week, 1 day, 15 hours, 31 minutes, and 44 seconds ago: I am still stuck on getting the #$%^ user_sadbox to work in non-security mode so I can test the engine. I have to stop working for today. Grrrr. 2011-02-19T12:23:34 i think he wants you to work that out 2011-02-19T12:23:35 Well, you would get an F line, then check the state of the last move 2011-02-19T12:24:05 Maybe I should just write the code... 2011-02-19T12:24:24 ... i'd prefer to agree on something that will work first :P 2011-02-19T12:24:30 writing code leads to being stuck with it 2011-02-19T12:25:18 An F line is for spawning food, ok. But what about the two other situations? 2011-02-19T12:25:32 Frontier: F is not for spawning atm 2011-02-19T12:25:41 i think you're getting sent F for any square that is currenty food 2011-02-19T12:25:47 an L line will be sent when food disappears, also, the F line won't be repeated 2011-02-19T12:26:03 change that L line to K? 2011-02-19T12:26:12 then we're all agreed on that :P 2011-02-19T12:26:12 = kill 2011-02-19T12:26:28 or, D 2011-02-19T12:26:33 to keep with your death square info 2011-02-19T12:26:39 Food dies? 2011-02-19T12:26:49 in battle if there is conflict yeah? 2011-02-19T12:26:50 Ok, my head is filling up slowly :). Food can die if it is contested by two parties 2011-02-19T12:27:16 a.*.b 2011-02-19T12:27:52 I know food is removed, I just wouldn't use the word 'dies', or put a D line. An L line is good enough. 2011-02-19T12:28:29 ok, the last situation: food is converted into a new ant 2011-02-19T12:28:30 how about 'omgponies! row col' for removing food? 2011-02-19T12:28:45 hmm... may bloat the file 2011-02-19T12:28:53 it was a joke :P 2011-02-19T12:28:54 you have food, see, then an A line comes along. 2011-02-19T12:28:58 let's define macros in the header 2011-02-19T12:29:21 antimatroid: I know it was a joke ^^. 2011-02-19T12:29:48 an A line along with an L line, or just A? 2011-02-19T12:29:59 (both is ok for me) 2011-02-19T12:30:00 McLeopold: I think my last change request is that you have an "end of turn line" which is either "scores" or "end" followed by the players scores 2011-02-19T12:30:09 it's there 2011-02-19T12:30:16 and end should be the very last line of input 2011-02-19T12:30:30 followed by the last state of the game 2011-02-19T12:30:49 no, it should be the last line of input 2011-02-19T12:30:53 do an extra "turn" 2011-02-19T12:30:59 why? 2011-02-19T12:31:05 because it's more clear 2011-02-19T12:31:07 I need a really really good reason. 2011-02-19T12:31:32 and at the end of each turn, do a line 2011-02-19T12:31:33 score p1score ... pnscore 2011-02-19T12:31:43 what I'm sending is, "The game is over. Here's why." 2011-02-19T12:31:46 antimatroid: I think it is ok the way McLeopold put that 2011-02-19T12:32:15 It sounds reasonable to me. 2011-02-19T12:32:26 but the visualiser currently doesn't know the scores after each turn? 2011-02-19T12:32:35 hmm... 2011-02-19T12:32:41 yeah, I need to add that 2011-02-19T12:32:46 hence my score line :P 2011-02-19T12:32:46 Can you also send scores on every turn so I can update it? 2011-02-19T12:32:46 But only to the replay 2011-02-19T12:33:04 oh kinda double post 2011-02-19T12:33:04 we're only talking about the visualiser input atm 2011-02-19T12:33:51 can you both check the sample input? 2011-02-19T12:33:59 the score line will come right after the turn line 2011-02-19T12:34:15 'turn 1\nscore 0 0 0 0' 2011-02-19T12:34:34 McLeopold: I still think it would make sense for "end" to be the very last line of input passed 2011-02-19T12:34:41 no 2011-02-19T12:34:45 why not? 2011-02-19T12:34:49 because 2011-02-19T12:34:50 it's a lot clearer 2011-02-19T12:35:03 because ? Oo 2011-02-19T12:35:29 because it makes more sense to keep that info at the beginning of each state 2011-02-19T12:35:55 hmmm maybe with state information 2011-02-19T12:36:03 i'm still thinking in terms of what the visualiser is doing 2011-02-19T12:36:16 I'll ask it... 2011-02-19T12:36:19 it's taking your state information, but then interpreting the commands from that and showing them, then showing the score 2011-02-19T12:36:19 That is ok. There is a state in the visualizer anyways 2011-02-19T12:36:31 the visualizer says I'm right... 2011-02-19T12:36:34 :) 2011-02-19T12:37:11 On the highest level I have a start and end state for each turn. 2011-02-19T12:37:15 bleh, i'm going to bed, you guys can work it out, i don't even need to deal with the format :P 2011-02-19T12:37:24 antimatroid: you got that backwards 2011-02-19T12:37:36 sleep well 2011-02-19T12:37:38 how is it backwards? 2011-02-19T12:37:39 thx for the support antimatroid, n8 2011-02-19T12:37:55 turn 1, nothing has happened 2011-02-19T12:38:29 my intention was to be like 2011-02-19T12:38:29 turn 1 -> here are the commands the visualiser needs to make -> heres the resulting score 2011-02-19T12:38:41 McLeopold: Originally (in antimatroid's ant game) there were spawn commands 'before' turn 1. 2011-02-19T12:38:42 ok 2011-02-19T12:38:51 spawning food? 2011-02-19T12:38:58 now it seems to be like 2011-02-19T12:38:58 turn 1 -> scores from new state -> new state -> work out moves -> implement moves -> display score 2011-02-19T12:39:19 oh wait 2011-02-19T12:39:34 the visualizer should parse the replay info into an organized data structure first, then it can display stuff in any order 2011-02-19T12:39:48 turn 1 should have scores: 0 0 0 ... 2011-02-19T12:39:51 yes 2011-02-19T12:40:07 so 'turn 1' means the start of turn 1 2011-02-19T12:40:15 alright 2011-02-19T12:40:21 i had scores being for the end of the turn then 2011-02-19T12:40:30 then you get the state at the start of turn 1, before the turn 1 orders were sent 2011-02-19T12:40:47 isn't that the char map you just sent? 2011-02-19T12:40:59 *** Prillicy_ has joined #aichallenge 2011-02-19T12:41:01 because we have an end line, we want the scores for the start of the state 2011-02-19T12:41:54 uhh... 2011-02-19T12:42:23 if you send the state at the beginning of turn 1 befor any moves have been made, you send the state as it was with the char map sent to the visualiser? 2011-02-19T12:42:29 crap 2011-02-19T12:42:38 *** Prillicy has quit IRC (Ping timeout: 240 seconds) 2011-02-19T12:42:44 :P 2011-02-19T12:42:52 *** Prillicy_ is now known as Prillicy 2011-02-19T12:42:56 *g* 2011-02-19T12:43:23 i still think it would be better to send commands rather than state information to the visualiser, and probably cheaper too, but i really am out now :) 2011-02-19T12:43:25 then I'm being inconsistant with the replay file and the bot input 2011-02-19T12:43:27 it's 4 30am 2011-02-19T12:43:35 oh, i have one last question McLeopold 2011-02-19T12:43:45 where do you live vaguely, and what's the +x gmt? 2011-02-19T12:43:52 Olympia 2011-02-19T12:44:08 south of Seattle 2011-02-19T12:44:41 9:30am here 2011-02-19T12:45:13 bam, it only had seattle 2011-02-19T12:45:19 i have peoples times on my desktop now 2011-02-19T12:46:40 look at the pendulum... you are getting tired... 2011-02-19T12:48:32 *** Kingpin13 has joined #aichallenge 2011-02-19T12:48:42 Frontier: I was mashing turn 0 and turn 1 info into the map at the start. 2011-02-19T12:48:58 so I was giving the state after the moves, instead of before 2011-02-19T12:49:31 so the char map contained the results of the moves? 2011-02-19T12:49:37 *** Prillicy has quit IRC (Ping timeout: 250 seconds) 2011-02-19T12:49:44 no, it contained the start, with the starting food 2011-02-19T12:49:50 then 'turn 1' 2011-02-19T12:50:01 then the state after turn 1, which was a mistake 2011-02-19T12:50:22 which is why antimatroid was confused about my end state. 2011-02-19T12:50:42 but i wasn't confused, now i am ^^ 2011-02-19T12:51:18 *** boegel has joined #aichallenge 2011-02-19T12:51:20 i'm confused now too 2011-02-19T12:51:20 *** Prillicy has joined #aichallenge 2011-02-19T12:51:28 So, for the bot input, a bot gets 'turn 1' then the state before turn one moves, which is the starting state with food, which is also the char map at the top of the replay file 2011-02-19T12:51:37 turn 1, score at the start of turn 1, actions in turn 1 2011-02-19T12:51:54 i'm so lost :P 2011-02-19T12:52:00 I want the replay file to be consistent with the bot input 2011-02-19T12:52:31 why? 2011-02-19T12:53:06 Because it is easier to maintain would be a reason 2011-02-19T12:53:13 So you can send the replay file to a bot, and it can interpret it the same as if it was playing. 2011-02-19T12:53:36 it would also be less confusing when going between looking at one or the other 2011-02-19T12:53:52 Yeah, so, my example replay file is messed up 2011-02-19T12:54:28 check the top of the etherpad 2011-02-19T12:55:34 *** Prillicy_ has joined #aichallenge 2011-02-19T12:55:40 or a little down 2011-02-19T12:55:50 That is a good goal, but the bot input is just a (any) game state, while the replay contains the actual actions taken by the bots and no fog of war 2011-02-19T12:56:18 true, but a bot could throw out the info it knows it wouldn't get 2011-02-19T12:56:37 so are we really not going with option 3? the first post I saw for the death methods 2011-02-19T12:56:43 So you can still test what your bot would do in someone else's shoes 2011-02-19T12:56:59 *** Prillicy has quit IRC (Ping timeout: 264 seconds) 2011-02-19T12:57:12 *** Prillicy_ is now known as Prillicy 2011-02-19T12:57:28 complained that the new methods were too complex 2011-02-19T12:57:38 is everyone ignoring rational behavior? 2011-02-19T12:57:40 Prillicy_: that was identical to option 1, with different radius' 2011-02-19T12:58:02 jmcarthur did the analysis 2011-02-19T12:58:18 *** flag has joined #aichallenge 2011-02-19T12:58:18 no, everyone is confused by "death radius" 2011-02-19T12:58:36 this isn't D&D, if it were, there'd be more dice and less "this sounds good" 2011-02-19T12:58:41 not identical 2011-02-19T12:58:59 there should be no radius of death 2011-02-19T12:59:01 but similar in philosophy 2011-02-19T12:59:02 collision = death 2011-02-19T12:59:06 simple, efficient 2011-02-19T12:59:16 and most importantly, understandable 2011-02-19T12:59:32 ah, this again 2011-02-19T12:59:33 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-02-19T12:59:35 i think option 3 actually leads to the ability to block arbitrary-width corridors though, iirc 2011-02-19T12:59:47 it's been a while and i haven't been thinking about any of this stuff 2011-02-19T12:59:57 jmcarthur: and none of the other options do? bull crah 2011-02-19T13:00:14 McLeopold: version must come first, ok? just so there cannot be any 'new' features before the version is known 2011-02-19T13:00:15 Prillicy: option 1 allows you to block 1-wide and i think 2-wide 2011-02-19T13:00:22 Prillicy: i don't remember for option 2 2011-02-19T13:01:44 antimatroid: do you remember much about our analysis of option 3? 2011-02-19T13:01:53 hopefully more than i do 2011-02-19T13:02:12 McLeopold: The state information is duplicate now 2011-02-19T13:02:24 Frontier: use etherpad for chat 2011-02-19T13:02:29 *** Prillicy_ has joined #aichallenge 2011-02-19T13:02:56 sorry, the internet here is being shit 2011-02-19T13:03:33 as I was saying, blocking a corridor is a strategy that may not be successful, stopping people strategizing defeats the purpose of an AI challenge 2011-02-19T13:03:57 Prillicy_: the point is that option 3 allows you to *impenetrably* block it 2011-02-19T13:04:08 without even having to move around 2011-02-19T13:04:09 no it doesn't 2011-02-19T13:04:12 with collision, your ant dies 2011-02-19T13:04:16 *** Prillicy has quit IRC (Ping timeout: 240 seconds) 2011-02-19T13:04:23 *** Prillicy_ is now known as Prillicy 2011-02-19T13:04:24 there is no way to "not die" in option 3 2011-02-19T13:04:26 huh? 2011-02-19T13:04:29 in other options there are 2011-02-19T13:04:42 you don't get a chance to collide 2011-02-19T13:04:51 option 2 doesn't allow survival 2011-02-19T13:04:54 please explain 2011-02-19T13:04:56 unless you mean removing the range stuff as in the original proposal 2011-02-19T13:05:03 Prillicy's option 3 is different than the option 3 on the forums, I think 2011-02-19T13:05:03 how can you "impenetrably block a corridor 2011-02-19T13:05:08 my option 3 2011-02-19T13:05:10 collision = death 2011-02-19T13:05:12 period 2011-02-19T13:05:14 no work around 2011-02-19T13:05:15 oh 2011-02-19T13:05:16 no tricks 2011-02-19T13:05:18 simple 2011-02-19T13:05:22 that's not the option 3 i was talking about 2011-02-19T13:05:31 Prillicy's option 3 is if (x1, y1) == (x2, y2), death 2011-02-19T13:05:54 it's simple, and it allows for thousands of strategies 2011-02-19T13:06:08 i'm not seeing much strategy in it, myself 2011-02-19T13:06:11 Which is odd because it allows enemies to switch positions without interacting, IMO 2011-02-19T13:06:12 I don't understand why you all (who've already coded the above) feel the need to add all this complexity 2011-02-19T13:06:15 but okay, no corridor blocking with that 2011-02-19T13:06:24 Prillicy: it is simple, but Jeff didn't want a game of chase or ants slipping through lines, thus the range attack. 2011-02-19T13:06:39 then roll a d20 instead 2011-02-19T13:06:51 add bonuses for nearby allies 2011-02-19T13:06:56 and negatives for nearby enemies 2011-02-19T13:07:11 how is that at all simpler than our other proposals? 2011-02-19T13:07:22 I don 2011-02-19T13:07:27 I don't propose it 2011-02-19T13:07:30 I propose my way 2011-02-19T13:07:40 jeff's being stupid 2011-02-19T13:07:53 you heard me 2011-02-19T13:08:02 yeah, but jeff can't... 2011-02-19T13:08:06 he's been argumentative over silly things since the beginning of this 2011-02-19T13:08:22 stop overdoing i 2011-02-19T13:08:23 t 2011-02-19T13:08:27 DON'T REINVENT THE WHEEL 2011-02-19T13:08:48 what wheel are we reinventing, exactly? 2011-02-19T13:08:50 I think the main argument against your proposal is that the strategy becomes fairly shallow, Prillicy 2011-02-19T13:09:06 At least, when only a few ants in a small area are concerned 2011-02-19T13:09:19 There's still strategy on how to gather food, where to explore, etc. 2011-02-19T13:09:22 Prillicy's proposal still allows for a reasonable amount of macro 2011-02-19T13:09:32 Yeah, that's what I meant 2011-02-19T13:09:34 i just don't like it because it has zero micro 2011-02-19T13:09:46 flag: incorrect, it allows for shallow strategies to work, but it also leaves open the option for more complex strategies 2011-02-19T13:09:53 Prillicy: example? 2011-02-19T13:09:53 jmcarthur: what do you mean by micro in this case 2011-02-19T13:10:28 Micro is tactics, Macro is strategy. Do we all agree? 2011-02-19T13:10:31 for example, a "find food, go for it, find enemies, go for it" strategy works, without having to build complex formulas to account for allied ants so that you don't "mass die" 2011-02-19T13:11:00 maybe one call, don't move if there's an ally in that square, could be added for safety 2011-02-19T13:11:02 however 2011-02-19T13:11:04 Prillicy: i mean that your proposal allows you to say things like "i want to try blocking my opponent from this territory", but not things like "i want to protect this ant while attacking that ant so he can live and kill this other ant on the next turn and fight efficiently" 2011-02-19T13:11:34 building out formulas based on map size and shape, positions of enemy ants, shifting squares with enemies to avoid death...all of this could still function 2011-02-19T13:11:35 that was so much fun reading through that knowing Prillicy and jmcarthur were talking about different option 3's ahaha 2011-02-19T13:11:39 that is, your proposal emphasizes high-level decisions and deemphasizes details 2011-02-19T13:11:44 i'm terrible at going to bed, hang on, still catching up 2011-02-19T13:11:51 reddit is too addictive 2011-02-19T13:12:01 jmcarthur: I disagree 2011-02-19T13:12:18 jmcarthur: details can be analyzed a lot, including, using other ants to protect certain ants 2011-02-19T13:12:26 antimatroid: go to bed, I except to see a quit line very soon! 2011-02-19T13:12:28 more than that, I don't see any proof 2011-02-19T13:12:42 good thing you don't expect it 2011-02-19T13:12:53 i think the proof is on you to show that there's more to battling with your proposal than just throwing armies at each other 2011-02-19T13:13:16 McLeopold: i never quit :P 2011-02-19T13:13:19 jmcarthur: you want to see the complexity of one on one ant movement? consider this game strategy 2011-02-19T13:13:47 you see an enemy ant, and you've managed to close to right next to each other 2011-02-19T13:13:57 i don't care about complexity. i care about tactical decisions having an actual effect on the outcome 2011-02-19T13:14:05 if you move to the enemy ant's square, he could choose to move, or nto 2011-02-19T13:14:14 if he doesn't move, you'll die, but you'll kill him 2011-02-19T13:14:20 you are describing game theory 2011-02-19T13:14:25 he he moves, you'll both still be right next to each other 2011-02-19T13:14:26 yes 2011-02-19T13:14:28 I am 2011-02-19T13:14:32 that is not what i'm talking about 2011-02-19T13:14:38 that's 1 on 1 battles 2011-02-19T13:14:45 that sort of dance could go on for days between 2 ants 2011-02-19T13:14:50 yes 2011-02-19T13:14:54 and you could move allies around to cut off enemy escape routs 2011-02-19T13:14:57 *routes 2011-02-19T13:15:01 thus, real military tactics 2011-02-19T13:15:03 a game of chicken, you mean 2011-02-19T13:15:11 which is not really what i think of as "fun" 2011-02-19T13:15:31 unless you had enough ants to give no options but retreat 2011-02-19T13:15:32 so you want to add 900% difficulty for beginners to add some "fun" that only you seem to enjoy? 2011-02-19T13:15:45 unless you're stupid enough to collide your own ants, it's 1:1, which is very boring micro wise 2011-02-19T13:15:47 Prillicy: your proposal always has even trades. There is no way for me to gain an advantage on an opponent except by gathering more food than them. 2011-02-19T13:15:59 Prillicy: a vast exaggeration 2011-02-19T13:16:26 a beginer will do find with the strategy of "move as many ants as close to the enemy as possible" 2011-02-19T13:16:29 flag: that is the idea 2011-02-19T13:16:45 Prillicy: if that is the idea, you're making the game more shallow 2011-02-19T13:16:55 no 2011-02-19T13:16:56 Prillicy: i prefer more ways to gain advantages 2011-02-19T13:16:59 I'm giving a purpose to food 2011-02-19T13:16:59 Prillicy: what if ants were big enough to occupy a 3x3 grid, then they only had to step on part of an ant to kill it? 2011-02-19T13:17:00 or to lose advantages 2011-02-19T13:17:04 otherwise, throw out food altogether 2011-02-19T13:17:12 food gives you a way to account for mistakes 2011-02-19T13:17:16 in planet wars, were there really that many ways to gain advantages? 2011-02-19T13:17:26 planet wars was a very shallow game, IMO 2011-02-19T13:17:36 with big brick walls 2011-02-19T13:17:47 yet this site took off like wildfire because of it 2011-02-19T13:17:49 while it was fun to watch and an interesting thought problem, i don't think it was a great ai game 2011-02-19T13:18:04 I would have given up if it had been more complex 2011-02-19T13:18:26 Prillicy: were you around for tron? 2011-02-19T13:18:32 no 2011-02-19T13:18:37 we want a game that's simple to understand but provides a long, clear and smooth path to the top 2011-02-19T13:18:50 Prillicy: it was waaay simpler than planet wars, and i liked it waaaay more. i am not arguing for complexity here at all 2011-02-19T13:18:52 your game is no longer simple to understand 2011-02-19T13:18:56 1:1 trades make sense 2011-02-19T13:19:06 no they don't 2011-02-19T13:19:09 1:5 trades with strange and complex math problems doen't 2011-02-19T13:19:17 it's not complex maths at all 2011-02-19T13:19:26 it's just try to get more enemies closer to them than they do you 2011-02-19T13:19:34 Prillicy: so your argument boils down to "i don't want to have to think as i program AI"? 2011-02-19T13:19:47 Prillicy: you don't need to argue anything. The current plan is to be very close to 1:1. 2011-02-19T13:19:51 no, my argument boils down to: you want new players 2011-02-19T13:19:52 there is nothing strange or complex about this stuff though 2011-02-19T13:20:04 McLeopold: I still expect battle option 1 2011-02-19T13:20:06 :p 2011-02-19T13:20:11 I still don't understand any of the options tbh 2011-02-19T13:20:15 so don't tell me it's not complex 2011-02-19T13:20:17 I've read it tons 2011-02-19T13:20:17 You bot is going to do poorly then. :) 2011-02-19T13:20:27 Wait, so the current play is not option 1? 2011-02-19T13:20:29 I don't think the amount of growth with the last contest seemed more of a continuation of the growth we saw during tron as well, so I'm not sure planetwar's specifics had a great deal to do with it 2011-02-19T13:20:30 plan* 2011-02-19T13:20:32 flag: no 2011-02-19T13:20:38 flag: no, it's currently 2 2011-02-19T13:20:42 antimatroid is just spreading FUD 2011-02-19T13:20:43 because it's easier for beginners 2011-02-19T13:20:48 i never said to anyone it's 1 2011-02-19T13:20:53 McLeopold: oh hahah 2011-02-19T13:20:59 err, s/don't// 2011-02-19T13:21:35 it's slightly inconvenient that 2 is the "current one", but that's the order they poppep up 2011-02-19T13:21:46 and it's only the current one because of jeff 2011-02-19T13:22:40 Prillicy: option 1: for each ant, count the number of ants they are fighting and assign them that number. the only ants that survive are the ones whose numbers are smaller than those of their opponents 2011-02-19T13:22:44 Prillicy: what if ants were big enough to occupy a 3x3 grid, then they only had to step on part of an ant to kill it? 2011-02-19T13:23:06 McLeopold: you aren't using 'f' for food and score information are you? 2011-02-19T13:23:20 Prillicy: option 2: iteratively remove pairs of fighting ants, starting with closest 2011-02-19T13:23:26 antimatroid: to the etherpad 2011-02-19T13:23:28 Prillicy: IMO, option 2 is more complicated in practice 2011-02-19T13:23:43 whereas option 1 takes a longer explanation, but is actually very simple 2011-02-19T13:24:23 jmcarthur: the explanation is very simple for option 1 with a bit of maths notation 2011-02-19T13:24:41 antimatroid: and i get the feeling that Prillicy is being a little anti-intellectual about stuff like that :\ 2011-02-19T13:24:43 *** Prillicy_ has joined #aichallenge 2011-02-19T13:24:52 damn internet 2011-02-19T13:25:00 i wouldn't call that anti-intellectual 2011-02-19T13:25:05 dang... how much did you miss, Prillicy_ ? 2011-02-19T13:25:08 i used to see stuff like that and be like wtf 2011-02-19T13:25:11 Prillicy_: the 3x3 question? 2011-02-19T13:25:14 it's a matter of familiarity 2011-02-19T13:25:30 it's only the current one because of jeff <---last I saw 2011-02-19T13:25:34 anyway 2011-02-19T13:25:35 *** Prillicy has quit IRC (Ping timeout: 250 seconds) 2011-02-19T13:25:38 *** Prillicy_ is now known as Prillicy 2011-02-19T13:25:41 Prillicy_: there are logs 2011-02-19T13:25:51 it's linked in the topic 2011-02-19T13:25:54 look, you said your goal is to make a simple-to-understand game with complex strategies, right? 2011-02-19T13:25:59 antimatroid: I don't have time for that 2011-02-19T13:26:06 right 2011-02-19T13:26:08 Prillicy: the 3x3 question? 2011-02-19T13:26:16 Prillicy: then you don't have time for an AI contest... 2011-02-19T13:26:19 the large ants idea? 2011-02-19T13:26:22 yeah 2011-02-19T13:26:28 jmcarthur: cute 2011-02-19T13:26:32 what about it? 2011-02-19T13:26:32 would that be simple enough? 2011-02-19T13:26:44 you want to make ants bigger than one square? all you're doing is making ants move slower 2011-02-19T13:26:53 squares represent movement 2011-02-19T13:26:55 nothing else 2011-02-19T13:27:00 relatively 2011-02-19T13:27:01 sure 2011-02-19T13:27:10 but, is the battle still simple enough? 2011-02-19T13:27:21 you step on an ant, you kill both 2011-02-19T13:27:25 yes 2011-02-19T13:27:26 it make sense 2011-02-19T13:27:32 because you collided, like in a war 2011-02-19T13:27:38 Then you understand option 2 2011-02-19T13:27:39 the two of you fight to the death when you collide 2011-02-19T13:27:40 okay then, you'd have the opportunity to stop on 2 2011-02-19T13:27:46 right? 2011-02-19T13:27:54 2 ants that is 2011-02-19T13:28:14 you're trying to explain option 2 incorrectly 2011-02-19T13:28:25 consider that you'd also kill your own ants if you collided with them 2011-02-19T13:28:37 option 2 is harder to explain 2011-02-19T13:28:40 and in collision there's an opportunity to run into 2 also 2011-02-19T13:28:43 that's what I said, 'you kill both' 2011-02-19T13:28:54 or 5 for that matter 2011-02-19T13:29:09 so yes, you'd kill your ant and the enemy if you stepped on both 2011-02-19T13:29:14 if there are 5 enemies close enough that you can step on all of them at once, then yes 2011-02-19T13:29:28 there can't be 2011-02-19T13:29:32 no 2011-02-19T13:29:33 3x3 ants wouldn't allow that 2011-02-19T13:29:38 they couldn't get that close to each other 2011-02-19T13:29:40 the ant's would have to be bigger 2011-02-19T13:29:42 why not? 2011-02-19T13:29:56 jmcarthur: assume you can't have your own ants overlapping 2011-02-19T13:29:58 you can only move 1 square at a time jmcarthur 2011-02-19T13:30:00 oh 2011-02-19T13:30:13 what McLeopold said helped 2011-02-19T13:30:14 now i see 2011-02-19T13:30:33 Okay, so if this is simple to understand, big ants, then so is ranged attack. 2011-02-19T13:30:47 I understand ranged attack 2011-02-19T13:30:48 Except you can have your "big ants" overlapping. 2011-02-19T13:31:01 So you are just proposing range 0 attack. 2011-02-19T13:31:02 I don't understand how ants gained ranged attack abilities, my ants are walking around with shotguns? 2011-02-19T13:31:11 option 2 is like the ants are bigger when comparing against enemies but smaller for self collision, think small ants cooperate to pack closer together 2011-02-19T13:31:28 Prillicy: food doesn't trasnform into ants in real life either 2011-02-19T13:31:34 flag: yes it does 2011-02-19T13:31:37 janzert: exactly 2011-02-19T13:31:38 err, s/small ants/friendly ants/ 2011-02-19T13:31:38 nor do planets grow battleships 2011-02-19T13:31:39 drop an apple and come back in a day 2011-02-19T13:31:50 *apple core 2011-02-19T13:32:10 Really? Food transforms instantaniously into ants on a 1:1 ratio? 2011-02-19T13:32:20 I never said instantaneous 2011-02-19T13:32:21 what is 1 food? :P 2011-02-19T13:32:23 it doesn't need to be 1:1 2011-02-19T13:32:24 you didn't either 2011-02-19T13:32:26 please be clear 2011-02-19T13:32:26 a:b 2011-02-19T13:32:39 I'm saying the game isn't supposed to be realistic, you know that 2011-02-19T13:32:41 it turns into 0.5 ants ^^ - sorry 2011-02-19T13:32:51 flag: then why call it ants at all 2011-02-19T13:32:55 this is block wars 2011-02-19T13:33:00 we make up rules as we go 2011-02-19T13:33:01 why indeed 2011-02-19T13:33:04 because it's ant colonies fighting for resources 2011-02-19T13:33:06 because we think it's "more fun" 2011-02-19T13:33:07 We couldn't think of a better name. We tried. 2011-02-19T13:33:14 i don't think it makes sense to call it ants at all 2011-02-19T13:33:16 fuck logic, or for that matter, new players 2011-02-19T13:33:28 Prillicy: this is not a nature simulator. 2011-02-19T13:33:33 Prillicy: http://mathbin.net/59065 <-- perfectly logical, actually 2011-02-19T13:33:50 jmcarthur: I can't read that crap. 2011-02-19T13:33:53 Prillicy: an ant dies if any of its enemies is less busy than it is 2011-02-19T13:33:57 who cares about weaker coders being able to come up with a neat strategy and not needing to write 5000 lines of code to implement it 2011-02-19T13:34:02 this isn't ai, this is best programmer wars 2011-02-19T13:34:10 Nope: this is ai 2011-02-19T13:34:15 McLeopold: really? or are you just saying it because it's a dense notation? 2011-02-19T13:34:16 *not* coding contest 2011-02-19T13:34:46 Prillicy, weaker programmers can still come up with bots 2011-02-19T13:34:49 Prillicy: oh come on, i haven't written an entry for these contests over 500 lines 2011-02-19T13:34:50 Explain the weird looking 'E's 2011-02-19T13:34:53 They just won't be as effective 2011-02-19T13:35:04 We don't want anyone to be able to "solve" the game 2011-02-19T13:35:05 jmcarthur: I have, my planet wars entry was extremely complex 2011-02-19T13:35:29 jmcarthur: you haven't written an entry for planet wars either. :) 2011-02-19T13:35:51 McLeopold: you like to bring up that i never finished that one. did i make some promise that i didn't deliver on or something? 2011-02-19T13:35:57 McLeopold: there exists == backwards E 2011-02-19T13:36:01 yes 2011-02-19T13:36:06 I cried over it 2011-02-19T13:36:06 what was that? 2011-02-19T13:36:10 flag: my game isn't solvable, but if you add complexity to the game, you remove complexity from strategies 2011-02-19T13:36:29 'A glorious flip of the switch, and my code will become multithreaded' 2011-02-19T13:36:31 the more complex the game, the less people have to be complex 2011-02-19T13:36:47 I don't understand this logic: "if you add complexity to the game, you remove complexity from strategies" 2011-02-19T13:36:49 that wouldn't have been legal anyway... 2011-02-19T13:37:10 would you like proof flag? 2011-02-19T13:37:14 Sure 2011-02-19T13:37:28 i didn't see that as any sort of promise that i would finish my code though 2011-02-19T13:37:38 I could list a number of games where this is self-evident, but instead I think examples are better 2011-02-19T13:38:10 2 ant collision allows opportunities to back-up ants, consider cost/benefit analysis of scouts having squads and squad sizes, etc. 2011-02-19T13:38:12 * jmcarthur is curious about what qualifies as proof for an already ambiguous claim 2011-02-19T13:38:29 RoboCom evolved a LOT of different strategies and it was complex 2011-02-19T13:38:33 if one ant can strategically fend off hoards of enemies, then you remove any need for squads for scouts 2011-02-19T13:38:41 * antimatroid thinks prillicies option is like 2 in that it doesn't provide balance to spreading out 2011-02-19T13:38:43 But it can't, Prillicy 2011-02-19T13:38:52 One ant can only kill 4 ants if the opponent is stupid 2011-02-19T13:39:19 antimatroid: it is option 2 with 0 range attacks 2011-02-19T13:39:39 then it comes with all my issues with option 2 :P 2011-02-19T13:39:40 Prillicy: option 1 doesn't allow that at all, and option 2 does only if the one losing all those ants is doing it pretty much intentionally 2011-02-19T13:40:08 not intentionally, option 1 rewards smart micro, option 2 punishes lack of smart micro 2011-02-19T13:40:09 Prillicy: and even then, only up to 4:1 2011-02-19T13:41:38 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-02-19T13:42:10 it actually would be quite easy for a stupid bot to screw that up 2011-02-19T13:42:27 if they just "move to the closest enemy", if multiple streams arrive at once, they're going to suicide badly 2011-02-19T13:42:34 *** Prillicy has quit IRC (Ping timeout: 240 seconds) 2011-02-19T13:42:49 whereas "throw yourself at the enemy" wouldn't be that bad with option 1 2011-02-19T13:43:21 *** Prillicy has joined #aichallenge 2011-02-19T13:43:26 damn internet, checking the logs... 2011-02-19T13:44:40 now, as I said 2011-02-19T13:44:50 jmcarthur: define "stupid" 2011-02-19T13:44:52 * Frontier jμsτ ωαητs α gαmε ωhεrε dιffεrεητ bαsις sτrατεgιεs hανε τσ bε ιη α bαlαηςε, jμsτ lικε ιη PlαηετΨαrs 2011-02-19T13:44:59 they'll only lose if their bot is "stupid" 2011-02-19T13:45:57 and the strategy is basically "spread out to claim food, sending enough ants to cover any number of enemies you see" 2011-02-19T13:46:24 wheras with 1 it is "spread out to claim food but pack up to fight if you see enemies" 2011-02-19T13:47:07 If their bot manages to surround an enemy without attacking it, and then attack the enemy in such a way that all 4 ants are equal distance from the one enemy ant, it is "stupid Prillicy 2011-02-19T13:47:14 or suicidal 2011-02-19T13:47:17 if you see 2 different enemy ants with option 2, you want to let them kill each other, if you see them with option 1, you might be able to cooperate with another ant to kill off the third etc. 2011-02-19T13:47:22 *** McLeopold has left #aichallenge 2011-02-19T13:47:27 *** Prillicy_ has joined #aichallenge 2011-02-19T13:47:35 fucking brighthouse 2011-02-19T13:48:04 so by stupid you mean, they didn't know to add 200+ lines of code and an extra half second of compute time to their bot to ensure that they don't suicide (i.e. a perfect strategy here, with no option for complexity after this code is added) 2011-02-19T13:48:30 more than that, there's also something else you're not accounting for 2011-02-19T13:48:44 And by 200 lines of code and half-a-second you mean numbers you're just making up? 2011-02-19T13:48:58 flag, as you said, "ensure they aren't stupid" 2011-02-19T13:49:08 quite simply, once you add the "not stupid" code, it's done 2011-02-19T13:49:16 there is no more strategy there 2011-02-19T13:49:20 it's just extra code 2011-02-19T13:49:28 it serves no purpose except to discourage beginners 2011-02-19T13:49:43 *** Prillicy has quit IRC (Ping timeout: 272 seconds) 2011-02-19T13:49:44 he's talking about your option 2011-02-19T13:49:50 *** Prillicy_ is now known as Prillicy 2011-02-19T13:49:59 yes, my idea does discourage spreading out 2011-02-19T13:50:03 that's what the food is for 2011-02-19T13:50:03 it is the same as option 2 with 0 range for the attack 2011-02-19T13:50:11 if we're going to find a way to encourage spreading in fighting 2011-02-19T13:50:21 purely for balance we need to find a way to encourage grouping with food 2011-02-19T13:50:25 I'm talking about how Prillicy thinks option 2 is overly complex, janzert 2011-02-19T13:50:28 which makes this a 4 part game, not a 2 part 2011-02-19T13:50:41 I saw my idea janzert 2011-02-19T13:50:44 I saw what you said 2011-02-19T13:50:47 I disagree 2011-02-19T13:50:55 but I understand why you said it 2011-02-19T13:50:57 and it makes SENSE 2011-02-19T13:51:05 which is more than I can say for ANYTHING flag has said 2011-02-19T13:51:24 How would you write an AI that surrounds an enemy without attacking it and then attacks the enemy with all 4 ants so that each any is an equal distance within the battle radius when it does attack without being suicidal? 2011-02-19T13:51:46 flag, simple, 4 ants equal distance attempt to charge at the same time 2011-02-19T13:52:00 you have to write a way to stop that 2011-02-19T13:52:01 How would that ant be in the centre between them though? 2011-02-19T13:52:08 How would it get there? 2011-02-19T13:52:46 Without being attacked in the first place? 2011-02-19T13:53:26 *** amriedle has joined #aichallenge 2011-02-19T13:53:57 Either A. The player would have to approach it from all 4 sides equally, or B. The player would have to ignore it for some time, thereby rendering this case really unlikely, or the result of a purposfully suicidal bot 2011-02-19T13:54:18 It's not a big deal 2011-02-19T13:54:29 *** Prillicy_ has joined #aichallenge 2011-02-19T13:55:05 Prillicy: with your option, single ants coming across each other will probably end up dancing back and forth till another ant comes along, if you come up against a wall of wants, you both want to just charge straight into each other and hope you harve the larger army to gain the ground after the battle 2011-02-19T13:55:10 it's rather boring if you ask me 2011-02-19T13:55:29 you're assuming that there's no growth 2011-02-19T13:55:32 which there is 2011-02-19T13:55:41 yes, so it's a game of fastest growth? 2011-02-19T13:55:44 so it may behoove you to lure them away until you can reinforce 2011-02-19T13:55:45 and not being stupid 2011-02-19T13:56:23 *** Prillicy has quit IRC (Ping timeout: 246 seconds) 2011-02-19T13:56:24 *** Prillicy_ is now known as Prillicy 2011-02-19T13:56:45 not necessary (really sorry about my connection btw) 2011-02-19T13:56:58 but all this game is, is a game of who has the most ants at the end 2011-02-19T13:57:06 no it's not 2011-02-19T13:57:09 so yes, it is a who grows fastest, allowing for you to fight if you wish 2011-02-19T13:57:36 it's a game of who kills the most ants along with the end of game bonus 2011-02-19T13:57:37 but if you fight, you weaken yourself and your opponent, potentially causing one of your other enemies to win 2011-02-19T13:57:51 but if you fight, you also can keep your oponent from stealing your food 2011-02-19T13:57:58 Prillicy: when did i say "stupid"? 2011-02-19T13:58:05 sorry, it was flag 2011-02-19T13:58:09 ah 2011-02-19T13:58:12 which makes it even more of an issue with n-players 2011-02-19T13:58:17 It's tough bouncing back and forth between logs with 2 second internet bursts 2011-02-19T13:58:22 it turns into a waiting game wanting others to fight first 2011-02-19T13:58:35 and stealth tactics become valid 2011-02-19T13:58:44 allowing you to move around in enemy territory trying to steal food 2011-02-19T13:58:52 *** chris__0076 has quit IRC (Remote host closed the connection) 2011-02-19T14:00:09 you can devise complex "territory" formulas etc 2011-02-19T14:00:30 this allows for a lot of ideas to be presented rather than "perfect your "not stupid" strategy, and then you win" 2011-02-19T14:01:06 *** Chris_0076 has joined #aichallenge 2011-02-19T14:02:51 *** delt0r___ has joined #aichallenge 2011-02-19T14:03:35 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-02-19T14:16:44 *** McLeopold has joined #aichallenge 2011-02-19T14:17:17 *** Accoun has quit IRC () 2011-02-19T14:17:44 Prillicy makes a very good point, that smaller attack radius will encourage grouping for fights. 2011-02-19T14:18:08 Be cause we do need something to counter the spreading out to get food. 2011-02-19T14:18:32 This is the same reason that option 1 is a good idea. 2011-02-19T14:18:55 it encourages grouping for fights as well 2011-02-19T14:19:38 So, we need to convince Jeff that chasing and dashing through lines are good for the game. 2011-02-19T14:20:43 Do you all kill each other while I was gone? Where is everyone? 2011-02-19T14:21:08 I think everyone gave up on arguing 2011-02-19T14:21:28 I agree that we need something to balence out the incentive to spread all your ants out 2011-02-19T14:22:12 Prillicy is right in his analysis there. I think he thinks the other options are more complex than they really are. 2011-02-19T14:22:42 Going with an attack a spawn radius of 1 or 2 would help 2011-02-19T14:22:54 attack and spawn 2011-02-19T14:23:19 with option 2 that is 2011-02-19T14:23:30 I originally thought it was colliding with food that caused ants to appear also btw, just so you know how little this game makes sense to the rest of the world 2011-02-19T14:23:45 Yeah, it doesn't make sense. 2011-02-19T14:23:57 It's just a math game now, but we do need a theme 2011-02-19T14:24:59 Prillicy: so I wasn't clear about one thing. Do you favor micro or not? Micro being tactics. 2011-02-19T14:25:34 Also meaning that you can put in a lot of effort to get a bot to kill way more ants than it will lose. 2011-02-19T14:25:36 I prefer not to favor either 2011-02-19T14:25:48 the more possibilities, the better 2011-02-19T14:25:49 That explains it. 2011-02-19T14:26:05 I think we agree on most of the goals for the game. 2011-02-19T14:26:13 just not the method 2011-02-19T14:26:17 I'll tell you this 2011-02-19T14:26:29 I do favor smaller starter bots 2011-02-19T14:26:42 Besides Hunter and Lefty? 2011-02-19T14:27:00 if you could build this game to require less than 20 lines of code for a starter bot, can you imagine the complexity that people would have time to build into their bots over the same amount of time? 2011-02-19T14:27:42 Have you looked at the java bots I made? 2011-02-19T14:27:46 Some of the starter bots can be logically expressed in less than 20 lines 2011-02-19T14:27:53 yes, tried to put it in c# and was struggling 2011-02-19T14:27:56 The bot logic itself is pretty tight 2011-02-19T14:28:36 I actually wanted to ask you some questions about what you did 2011-02-19T14:28:57 sure 2011-02-19T14:29:03 with the framework? 2011-02-19T14:29:54 i suppose it would be prudent for me to start a haskell bot, by now 2011-02-19T14:30:08 is the spec reasonably nailed down now, at least for I/O? 2011-02-19T14:30:14 no 2011-02-19T14:30:17 :( 2011-02-19T14:30:18 yes 2011-02-19T14:30:20 :) 2011-02-19T14:30:22 ? 2011-02-19T14:30:24 Wait, it is? 2011-02-19T14:30:41 yes, the engine doesn't follow it yet. end of today it will 2011-02-19T14:30:45 if you have time 2011-02-19T14:30:46 alright, I'll put my questions together and get back with you in a few minutes 2011-02-19T14:30:46 yes, specifically the ant class 2011-02-19T14:30:48 *** Accoun has joined #aichallenge 2011-02-19T14:30:48 I Oh, okay 2011-02-19T14:30:58 s/I //g 2011-02-19T14:31:08 well, i'm going to shut down, do a little necessary shopping, head to the local hackerspace, and start looking into making a haskell starter i guess 2011-02-19T14:31:25 jmcarthur: I'll post some sample bot input later 2011-02-19T14:31:32 McLeopold: awesome, thanks 2011-02-19T14:31:35 bbl 2011-02-19T14:31:56 can you explain how the output from the engine represents each ant? like a breakdown? 2011-02-19T14:32:26 A row col owner 2011-02-19T14:32:48 so, if the owner is '0', it is your ant, at the location specified 2011-02-19T14:32:55 so A is just a iteration? n r c u 2011-02-19T14:33:22 or A is the actual text? 2011-02-19T14:33:32 The engine gives updates to the bot, A stands for ant 2011-02-19T14:33:38 so how would I represent the ant that is at row 5 column 5 2011-02-19T14:33:43 when I send it back to the engine 2011-02-19T14:34:08 A is the actual character 2011-02-19T14:34:15 like 'F' in planetwars 2011-02-19T14:34:18 ^ *repeats 2011-02-19T14:34:33 A 5 5 0 2011-02-19T14:34:48 0 based indexing, so 6th row, 6th col 2011-02-19T14:34:50 when I send it back to the engine, wanting to move that ant to row 6, column 6 2011-02-19T14:34:59 or whatever 2011-02-19T14:35:05 that's diagonal 2011-02-19T14:35:06 row 5 column 6 2011-02-19T14:35:08 so no 2011-02-19T14:35:09 because of movement 2011-02-19T14:35:12 I know 2011-02-19T14:35:14 I know 2011-02-19T14:35:15 O 5 5 S 2011-02-19T14:35:17 geez 2011-02-19T14:35:24 O stands for order 2011-02-19T14:35:25 ??? 2011-02-19T14:35:30 S stand for south 2011-02-19T14:35:47 so 5 5 is the ant's representation 2011-02-19T14:35:50 yes 2011-02-19T14:35:51 and S is the direction to move 2011-02-19T14:35:53 yes 2011-02-19T14:35:58 so N S E W just cardinals 2011-02-19T14:36:01 yes 2011-02-19T14:36:07 cool, now I understand, thanks 2011-02-19T14:36:17 now, you just need to get the wrapping 2011-02-19T14:36:23 on a map of 10x10... 2011-02-19T14:36:40 o 9 9 s, the ant would end up at 9 0 2011-02-19T14:36:47 right, that I understand 2011-02-19T14:36:50 ok 2011-02-19T14:36:54 assuming no walls of course 2011-02-19T14:36:57 yeah 2011-02-19T14:37:49 Question: does an ant have vision of area on the other side of the map in the case of wrapping? 2011-02-19T14:37:55 yes 2011-02-19T14:38:14 that movie in the forum had a bug 2011-02-19T14:38:35 Okay, that movie is what confused me, thanks 2011-02-19T14:39:26 and how are walls displayed in the output? 2011-02-19T14:39:27 W 5 5? 2011-02-19T14:40:15 McLeopold: Is it correct that a 'D' for a dead ant is sent in the next turn? 2011-02-19T14:40:25 (visualizer wise) 2011-02-19T14:40:45 yes 2011-02-19T14:41:07 the orders that caused a battle are sent, then 'turn x', then you see the results of the battle 2011-02-19T14:42:58 that makes sense. internally i'll move that to the 'end' of the prevoius turn. 2011-02-19T14:44:03 all the 'D' lines? that makes sense, then you can display the outcomes of moves 2011-02-19T14:44:15 Are keywords lower-case and are # comments allowed? 2011-02-19T14:44:22 yes and yes 2011-02-19T14:44:41 still, do a toLowerCase on all lines 2011-02-19T14:44:44 Sure one turn for me includes the initial state, actions and the outcome 2011-02-19T14:45:03 the initial state is the same as last turns outcome 2011-02-19T14:45:12 unless you separate food spawning? 2011-02-19T14:45:17 McLeopold: Maybe we want to include player names in future versions, I'll lower case the first token though 2011-02-19T14:45:29 yes, I need to add player names 2011-02-19T14:46:24 hmm in v3 (visualiser version 3) I actually used to separate food spawning 2011-02-19T14:46:34 you still can 2011-02-19T14:46:35 somehow probably want player names and submission id eventually (whether or not that is in the actual replay data or separate probably doesn't matter) 2011-02-19T14:46:48 what's submission id? 2011-02-19T14:47:02 the bot code I guess 2011-02-19T14:47:03 the id of the actual submission that played the game 2011-02-19T14:47:17 basically which submission of the player it was 2011-02-19T14:48:13 That is an optional information. For local simulations the player names and submission id shouldn't need to be set :) 2011-02-19T14:48:52 I'll default the player names to "Player n". Damn I whish I could i18n them :p 2011-02-19T14:49:22 well, the info might be there, but default if it isn't 2011-02-19T14:56:51 can we download our old planetwars uploaded bots? my computer (2 of them actually) died 2011-02-19T14:59:00 apparently jeff was very busy last week 2011-02-19T14:59:04 I don't think they're generally accessible, but so far as I know they are still on the server 2011-02-19T14:59:18 Prillicy: i need your username and the submission date that you want 2011-02-19T14:59:25 Prillicy: i can get them 2011-02-19T14:59:35 thanks amstan 2011-02-19T15:00:21 that really ought to be a button on the user screen 2011-02-19T15:00:22 McLeopold: I tried to look at your python bot and it 404-ed, where's your java bot? 2011-02-19T15:00:40 it's all on git, but it is not stable 2011-02-19T15:01:01 I just need to parse the output 2011-02-19T15:01:37 engine output?: 2011-02-19T15:02:37 yeah 2011-02-19T15:16:18 so, I'm working on that now. It will be more stable when you see the next commit message 2011-02-19T15:16:35 *** Chris_0076 has quit IRC (Remote host closed the connection) 2011-02-19T15:18:07 *** Prillicy_ has joined #aichallenge 2011-02-19T15:18:39 Frontier: new food appears for turn x after you receive a 'turn x' line. So you should fade in the food before doing the movements. 2011-02-19T15:19:21 *** Prillicy has quit IRC (Ping timeout: 246 seconds) 2011-02-19T15:19:31 *** Prillicy_ is now known as Prillicy 2011-02-19T15:19:40 ok, thanks. that's like the spawns in v3 2011-02-19T15:30:03 *** Prillicy_ has joined #aichallenge 2011-02-19T15:31:41 *** Prillicy has quit IRC (Ping timeout: 272 seconds) 2011-02-19T15:31:42 *** Prillicy_ is now known as Prillicy 2011-02-19T15:35:30 McLeopold: Actually the player count is a required info for the visualizer. 2011-02-19T15:38:08 I have moved it above the comment line on ietherpad. 2011-02-19T15:40:20 *** Prillicy_ has joined #aichallenge 2011-02-19T15:41:07 *** Prillicy has quit IRC (Ping timeout: 240 seconds) 2011-02-19T15:41:14 *** Prillicy_ is now known as Prillicy 2011-02-19T15:48:35 Frontier: technically, you could get that from the char map 2011-02-19T15:51:40 I know that I could do that. But why set an optional player count then after all? 2011-02-19T15:52:31 If I cannot count on this variable then what should I use it for if it is included? 2011-02-19T15:53:10 Or was that a joke I didn't get ^^? 2011-02-19T15:56:37 it'll be there 2011-02-19T16:02:52 have you found a better solution than split() for the space separated tokens? It doesn't work so well for single argument commands that can take any string, like player name or game location 2011-02-19T16:12:03 *** Chris_0076 has joined #aichallenge 2011-02-19T16:14:37 Frontier: either line.subsrtr(0, line.indexOf(" ")) or possibly a regex? 2011-02-19T16:16:22 actually you'd want to do something more like sp = line.indexOf(" "); type = line.substr(0, sp); value = line.substr(sp+1); 2011-02-19T16:16:46 line.split(' ', maxsplit=1) ? 2011-02-19T16:17:02 Zannick: does that exist?! 2011-02-19T16:17:16 is this python or java? 2011-02-19T16:17:25 :( JavaScript 2011-02-19T16:17:54 it looks like it does exist for javascript though, it's just line.split(' ', 1) 2011-02-19T16:18:03 oh, er 2011-02-19T16:18:06 yeah, same as pythong 2011-02-19T16:18:12 python * 2011-02-19T16:18:25 yep, just can't use the keyword :) 2011-02-19T16:18:28 can't specify maxsplit named in python :( 2011-02-19T16:18:44 that caught me recently, too 2011-02-19T16:19:02 I didn't know JavaScript had that, thx 2011-02-19T16:19:12 no problem 2011-02-19T16:19:13 *** smellyhippy has quit IRC (Ping timeout: 250 seconds) 2011-02-19T16:20:15 hmm, I wonder what odd historical curiosity stops python from accepting the keyword argument 2011-02-19T16:22:16 hm, does javascript return the last argument in split? 2011-02-19T16:22:48 i'm getting "a b c d e".split(" ",3) gives ["a", "b", "c"] 2011-02-19T16:23:23 looks like it doesn't :( 2011-02-19T16:23:26 http://www.w3schools.com/jsref/jsref_split.asp 2011-02-19T16:24:06 *** mega1 has quit IRC (Remote host closed the connection) 2011-02-19T16:24:14 that it is certainly less useful 2011-02-19T16:25:22 yeah 2011-02-19T16:25:28 oh... why did they do that? :/ 2011-02-19T16:27:02 well at least i can cut off comments with it: split("#", 1)[0] 2011-02-19T16:27:15 'cause javascript was thrown together in a month with no time available for proper thought? 2011-02-19T16:28:07 Frontier: ahaha 2011-02-19T16:29:20 they probably implemented it as "as soon as i have this many in my array, return it" 2011-02-19T16:35:50 uh, what's wrong with 'a b c d e'.split(' ');? 2011-02-19T16:41:48 yay, time to start a starter 2011-02-19T16:42:55 McLeopold: If a player name is "I am legend" then split loses information 2011-02-19T16:52:42 tcp won't allow spaces 2011-02-19T16:52:46 does official? 2011-02-19T16:53:58 I was just wondering the same 2011-02-19T16:54:16 where is the tentative spec again? i keep losing that link. i'll bookmark it this time 2011-02-19T17:02:02 https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-02-19T17:02:23 although I don't know if it's up to date with the latest changes now 2011-02-19T17:03:14 oh 2011-02-19T17:03:24 oh it's the github wiki, okayu 2011-02-19T17:03:26 -u 2011-02-19T17:04:58 String.prototype.scott_split = function (sep, max) { 2011-02-19T17:04:58 var data = this.split(sep); 2011-02-19T17:04:58 data.push(data.splice(max-1, data.length).join(sep)); 2011-02-19T17:04:58 return data; 2011-02-19T17:04:59 } 2011-02-19T17:04:59 var test = 'a b c d e'.scott_split(' ', 3); 2011-02-19T17:05:07 Frontier: ^^ 2011-02-19T17:05:33 Performance could be bad... 2011-02-19T17:05:56 what does "a b c d e".scott_split(' ', 3); do? 2011-02-19T17:06:12 returns ["a", "b", "c d e"] 2011-02-19T17:10:35 Ok, I'm off for today :) 2011-02-19T17:11:08 *** Frontier has quit IRC (Quit: Ex-Chat) 2011-02-19T17:38:27 *** McLeopold has left #aichallenge 2011-02-19T17:40:02 *** sigh has joined #aichallenge 2011-02-19T17:49:54 *** flag has quit IRC (Quit: Lost terminal) 2011-02-19T18:02:25 *** Apophis_ has quit IRC (Ping timeout: 240 seconds) 2011-02-19T18:04:15 *** Apophis has joined #aichallenge 2011-02-19T18:11:00 *** Apophis has quit IRC (Ping timeout: 240 seconds) 2011-02-19T18:12:07 *** Apophis has joined #aichallenge 2011-02-19T18:19:32 *** Apophis_ has joined #aichallenge 2011-02-19T18:20:56 *** nann has joined #aichallenge 2011-02-19T18:22:13 *** Apophis has quit IRC (Ping timeout: 240 seconds) 2011-02-19T18:23:49 *** Apophis_ has quit IRC (Ping timeout: 240 seconds) 2011-02-19T18:23:57 *** Apophis_ has joined #aichallenge 2011-02-19T18:27:47 *** nann has quit IRC (Ping timeout: 272 seconds) 2011-02-19T18:33:28 *** flag has joined #aichallenge 2011-02-19T18:49:12 *** Palmik has quit IRC (Remote host closed the connection) 2011-02-19T18:59:49 *** Apophis_ has quit IRC (Ping timeout: 240 seconds) 2011-02-19T19:06:28 *** Apophis has joined #aichallenge 2011-02-19T19:14:09 *** choas has quit IRC (Quit: leaving) 2011-02-19T19:24:41 *** smellyhippy has joined #aichallenge 2011-02-19T19:24:42 *** smellyhippy has joined #aichallenge 2011-02-19T19:27:19 *** mceier has quit IRC (Quit: leaving) 2011-02-19T20:23:50 aichallenge: McLeopold epsilon * rd924ab4 / (18 files in 4 dirs): Switched engine output to (row, col). Switched bots to (row, col). Updated visualizer. - http://bit.ly/i3evP1 2011-02-19T20:27:12 *** McLeopold has joined #aichallenge 2011-02-19T20:28:26 to whom it may concern: (jmcarthur, Frontier, antimatroid, flag, amstan, janzert, Zannick) 2011-02-19T20:28:28 http://tcp.zeroviz.us/viewer.html 2011-02-19T20:28:44 http://tcp.zeroviz.us/0.replay 2011-02-19T20:28:52 http://tcp.zeroviz.us/bot0.input 2011-02-19T20:29:39 I suggest that we digest this, look for problems (no bike shedding), and then freeze the communication spec tomorrow night if nothing is found. 2011-02-19T20:29:46 *** McLeopold has left #aichallenge 2011-02-19T20:37:43 *** amriedle has quit IRC (Quit: Lost terminal) 2011-02-19T20:40:13 aichallenge: Benjamin S Wolf epsilon * r1cd99d5 / (ants/.gitignore ants/playback/.gitignore): Merge branch 'epsilon' of https://github.com/phillc/aichallenge into epsilon - http://bit.ly/hUdKa3 2011-02-19T21:01:08 *** Mathnerd314 has joined #aichallenge 2011-02-19T21:23:42 *** Apophis has quit IRC (Read error: Connection reset by peer) 2011-02-19T21:24:19 *** Apophis has joined #aichallenge 2011-02-19T21:35:28 contestbot: later tell McLeopold Is "start" supposed to do anything? it doesn't work for me, running chromium 11.0.672 and firefox 3.6.13 2011-02-19T21:35:28 amstan: Ready to serve. 2011-02-19T21:43:23 amstan: doesn't work for me either 2011-02-19T21:44:19 *** Mathnerd314 has quit IRC (Ping timeout: 276 seconds) 2011-02-19T21:46:34 amstan use the arrow keys to advance the viewer 2011-02-19T21:46:50 it doesn't actually play on it's own right now 2011-02-19T21:47:26 and the "start" is the move indicator but it is showing the starting position before turn 1 when you first load it 2011-02-19T21:50:17 oh god! they learned to follow walls! 2011-02-19T21:57:41 *** Zepp has quit IRC (Remote host closed the connection) 2011-02-19T21:57:41 *** pgpaskar_ has quit IRC (Remote host closed the connection) 2011-02-19T21:57:41 *** ssalbiz has quit IRC (Remote host closed the connection) 2011-02-19T21:57:43 *** jbroman has quit IRC (Quit: Scotty, beam me up!) 2011-02-19T22:05:04 *** delt0r_ has joined #aichallenge 2011-02-19T22:06:20 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-02-19T22:24:35 *** Apophis has quit IRC (Read error: Connection reset by peer) 2011-02-19T22:25:25 *** Apophis has joined #aichallenge 2011-02-19T22:29:08 woah, the starting placement of food isn't even symmetric? 2011-02-19T22:29:11 i don't know about that 2011-02-19T22:30:52 just noticed that, good point 2011-02-19T22:31:05 submit an issue? 2011-02-19T22:31:59 i'm not sure it's an issue 2011-02-19T22:32:19 i think mcleopold did it that way 2011-02-19T22:32:51 well, yeah, if you have identical bots, and symmetrical maps, the fights will be rather boring 2011-02-19T22:33:09 a game with identical bots should be boring 2011-02-19T22:33:25 with the "symmetric maps", if you come across an enemy, it's not on symmetric terms 2011-02-19T22:33:27 yes, for the final thing, this is for demoing stuff 2011-02-19T22:33:32 Also, the food should probably spawn symmetrically as well 2011-02-19T22:33:34 it just ensures you all start with exactly the same opportunity 2011-02-19T22:33:47 Is this not for the final thing? 2011-02-19T22:33:52 flag: i want it to spawn symmetrically to starting positions, but nobody else (except now you) is with me on that 2011-02-19T22:34:05 idk, i'm just stating possible reasons 2011-02-19T22:34:12 everyone else is like meh, symmetry isn't important 2011-02-19T22:34:25 Really? People are against spawning food symmetrically? 2011-02-19T22:34:27 Why? 2011-02-19T22:34:38 too boring apparently 2011-02-19T22:34:52 (i think that was the reasoning against symmetry in general) 2011-02-19T22:34:59 for the record, i am completely uninvolved with this decision 2011-02-19T22:35:06 Why not make maps not symmetrical then? 2011-02-19T22:35:19 i don't know 2011-02-19T22:35:25 but i'll fight for as much symmetry as i can get 2011-02-19T22:35:41 i don't think it's less boring, in fact i rather know the players won from an equally fair starting position 2011-02-19T22:36:15 It's also easier to see the differences between two bots with slightly different versions 2011-02-19T22:36:26 yes, and for debugging etc. etc. 2011-02-19T22:36:36 it doesn't really make sense to me 2011-02-19T22:37:55 i think the way everything is being done for input now is silly, but with the exception of a little mess to get what I want with my bot, I don't need to deal with it, so I should really stop trying to get what i think would work best there 2011-02-19T22:38:12 i'll finally fix up the specs page to waht mcleopold currently has in a little bit 2011-02-19T22:38:46 I don't mind the updates input if it really is more efficiant 2011-02-19T22:43:54 i don't see what's so efficient about this way of doing it 2011-02-19T22:44:16 less bytes 2011-02-19T22:44:31 For tcp, because maps are quite large 2011-02-19T22:44:47 compression is awesome though 2011-02-19T22:44:48 Although I suppose that could be built into the tcp client itself instead of the engine 2011-02-19T22:45:10 yeah, but i don't see why we're sending land squares ever 2011-02-19T22:45:26 true 2011-02-19T22:45:28 i'd be happy receiving lines of info for any currently visible ants, food or water 2011-02-19T22:45:30 is that what l is? 2011-02-19T22:45:50 looks like. yuck 2011-02-19T22:45:59 but now it's any currently visible ant or food, you get water the first time you see it, and land the first time you see it, or after food disappeared (still don't really understand that) 2011-02-19T22:46:43 that just makes it even more complicated to deal with, and i just don't really see why 2011-02-19T22:47:14 i still think the visualiser should receive command info rather than state info each turn too, because otherwise it's just using hte state info to work out command info to show them 2011-02-19T22:47:27 whereas if it just implemented commands thrown at it, the state would just resolve itself 2011-02-19T22:49:08 i already need to take the info, create my own char map (including painting out what i can/cannot see myself) and then process that to look after all the information i want, it's then just making the process of determining what the current char map is harder 2011-02-19T22:49:24 totally 2011-02-19T22:49:46 it would be so much easier to just read in the data verbatim into an array 2011-02-19T22:50:00 i agree but we're not getting that 2011-02-19T22:50:12 short of that, it'd be easiest to receive info for any currently seeable ants, food or water 2011-02-19T22:50:25 water could even only ever be sent once, but the extra land squares, silly 2011-02-19T22:50:56 i'm not entirely sure i understand when land and water are sent 2011-02-19T22:51:04 Maybe it's so the bots don't assume that unexplored area is land? 2011-02-19T22:51:10 As they would if it wasn't sent. 2011-02-19T22:51:14 water is sent the first turn for which you can see it, never again 2011-02-19T22:51:35 similarly with land, but if it was food that disappeared while out of your vision, it will show land information again once you're in view 2011-02-19T22:52:01 does it always show food if it's in range, or just the first time you see it? 2011-02-19T22:52:28 if you get current water,ant,food info, the starter bots can just assume the map is all land at the start of each turn, read that info into place then go 2011-02-19T22:52:32 and i assume it always sends visible ants 2011-02-19T22:52:33 first time you see it 2011-02-19T22:52:46 always sends visible ants 2011-02-19T22:53:08 okay, so the only thing you can really wipe from memory reliably is ants. everything else must be retained? 2011-02-19T22:53:25 you can't even wipe ants from your memory 2011-02-19T22:53:46 well, i mean if you were only going to save what's visible anyway 2011-02-19T22:53:49 only those that are now in vision, and you also need to work out which of your ants you "didn't" get info for, meaning they died and weren't in view of a now live ant to see it 2011-02-19T22:54:02 it's really really messy as it is 2011-02-19T22:54:05 i really don't like it 2011-02-19T22:54:09 i just mean that if you were only going to save things you were *certain* about 2011-02-19T22:55:20 To be fair, if an ant was moved to a square somewhere and the next turn it isn't there, you can just assume it's dead 2011-02-19T22:55:20 also, what's the point of d? 2011-02-19T22:55:20 flag: not necessarily 2011-02-19T22:55:34 i suppose d is to tell the difference between moving out of view and dying 2011-02-19T22:55:37 the ant might have been able to walk out of visibility, or you might have just walked out of view of where they were, you don't want to just forget that there was an ant there 2011-02-19T22:55:52 D is so you can get an idea of scoring 2011-02-19T22:56:02 You were talking about ants that you control 2011-02-19T22:56:05 Not enemy ants 2011-02-19T22:56:14 i'm talking about any ant info 2011-02-19T22:56:39 is D given for all ants that die or just your own or just your opponents'? 2011-02-19T22:56:54 but you can't just read now live ants into your 1 map and then go through and find the friend ants you didn't get new info for, you then need to separate what is new/old information, which makes it harder again 2011-02-19T22:57:40 D is for all ants that die (probably needs to give a player), but you only see it for squares one of your live ants can currently see 2011-02-19T22:58:29 Wait, when an ant dies is the area of the map where the ant was updated with land (where the ant cannot see anymore)? 2011-02-19T22:58:41 i'm not sure 2011-02-19T22:58:52 my point is it's not intuitive, easy, etc. :P 2011-02-19T22:59:15 Perhaps, but it's supposed to be intuitive for the people using the starter packs, not writing them 2011-02-19T22:59:33 it's making it unecessarily hard for everyone if you ask me 2011-02-19T22:59:45 it's harder for people to expand the starter package to look after more information 2011-02-19T23:00:04 it's harder for the engine to work out what information needs to be sent, it's harder for people writing the starter packages, etc. etc. 2011-02-19T23:00:08 well... i'm just gonna write this starter pack and hope i have to do some extra work later to change it to simpler I/O 2011-02-19T23:00:16 i don't see where it makes anything any easier, i'm not even sure it'd make the input amount any different 2011-02-19T23:01:00 McLeopold claims the input amount is 10x less I think 2011-02-19T23:01:02 the only reason to do it this way seems to be efficiency, and i don't think it helps or matters 2011-02-19T23:01:09 But don't quote me on that 2011-02-19T23:01:09 that's compared to a complete char map 2011-02-19T23:01:15 Yes 2011-02-19T23:01:18 who even cares? zlib is easy to use 2011-02-19T23:01:28 for tcp 2011-02-19T23:01:30 i'm asking for current food,ant and water square info 2011-02-19T23:01:46 as opposed to current ants, first time seen food,water,lan, newly returned land squares 2011-02-19T23:02:16 the water square info could even be a first time thing, but i really don't see the point of that 2011-02-19T23:02:26 oh well. this is a battle i don't really care too much to fight. it makes programming harder, but at least it's not as pivotal to the game as combat resolution 2011-02-19T23:02:38 How do bots know the difference between unexplored area and land in your proposal? 2011-02-19T23:02:53 i'll just let it be known right now that i would prefer a complete char map, efficiency be damned 2011-02-19T23:03:14 the starter bots would literally wipe the map each turn, then it'd be up to you to mark out what you have haven't seen 2011-02-19T23:03:20 but you're already going to want to do that anyway 2011-02-19T23:03:32 because you want to know when you last saw a square, which isn't given information 2011-02-19T23:03:59 i think that since this is going to be wanted by pretty much everybody i'll just go ahead and add the functionality to the starter 2011-02-19T23:04:09 jmcarthur: i'm with you and fought for that, but i lost 2011-02-19T23:04:18 i'll just tag each square with the turn that it was last seen 2011-02-19T23:04:36 no no, the starter package should be bare minimal easy strategy 2011-02-19T23:04:40 so people can improve it easily 2011-02-19T23:04:45 don't do their work for them 2011-02-19T23:04:52 but this is like... library level stuff 2011-02-19T23:05:05 yes, which is all part of writing a bot imo 2011-02-19T23:05:08 So is battle resolution 2011-02-19T23:05:16 the only way to add this functionality is to write yet another implementation of the same data structures as the starter has already 2011-02-19T23:05:34 well, i guess you mean you can just change an arbitrary part of the starter 2011-02-19T23:05:39 it's just adding more code where you process the input :\ 2011-02-19T23:05:41 i was trying to be more modular in my approach 2011-02-19T23:05:53 where the starter is basically a library that doesn't need to be messed with 2011-02-19T23:06:01 and you just edit the main, basically 2011-02-19T23:06:12 i'm not touching my bot again until io is settled 2011-02-19T23:06:15 *** nullkuhl_ is now known as nullkuhl 2011-02-19T23:06:17 i've already changed it like 3 times 2011-02-19T23:06:32 well i haven't even started one. i just have like... a directory 2011-02-19T23:08:04 I've rewritten mine twice :P 2011-02-19T23:08:30 First to use a char map and then to use something that I later found out was the visualizer input 2011-02-19T23:08:41 Because I was linked to the wrong file 2011-02-19T23:08:46 haha :P 2011-02-19T23:08:55 D: 2011-02-19T23:09:01 everything is a mess 2011-02-19T23:09:54 *** jbroman has joined #aichallenge 2011-02-19T23:10:26 sending those 'L' squares is quite expensive 2011-02-19T23:10:46 and i can only imagine how painful it is working out in the engine who to send what to 2011-02-19T23:11:29 probably not too painful, but probably expensive 2011-02-19T23:11:35 which i don't really care about 2011-02-19T23:12:32 Well if it is the difference between a few hundred games in a final contest tourney you might 2011-02-19T23:12:43 Although the PlanetWars engine was really slow when first released 2011-02-19T23:13:41 *** amriedle has joined #aichallenge 2011-02-19T23:28:17 *** Zepp has joined #aichallenge 2011-02-19T23:28:39 *** iFire has quit IRC (Ping timeout: 272 seconds) 2011-02-19T23:28:46 *** Zepp has quit IRC (Client Quit) 2011-02-19T23:29:44 *** Zepp has joined #aichallenge 2011-02-19T23:30:50 *** Zepp has joined #aichallenge 2011-02-19T23:35:29 *** chris__0076 has joined #aichallenge 2011-02-19T23:36:26 *** iFire has joined #aichallenge 2011-02-19T23:39:23 *** Chris_0076 has quit IRC (Ping timeout: 276 seconds) 2011-02-19T23:46:14 *** Zepp has quit IRC (Quit: Changing server) 2011-02-19T23:49:01 *** Zepp has joined #aichallenge 2011-02-19T23:57:50 *** amriedle has quit IRC (Quit: Lost terminal) 2011-02-19T23:58:50 Does anyone know what move output looks like under the new spec? 2011-02-19T23:59:22 same as always? 2011-02-19T23:59:31 hebbie made a good point in the forums 2011-02-19T23:59:35 http://www.ai-contest.com/forum/viewtopic.php?f=21&t=1323 2011-02-19T23:59:57 Yeah I saw that