[00:04] anyone here? [00:24] helooooooooo [01:40] hi? [01:43] Join: Haubitze joined #corewars [01:52] HI [01:52] HI [01:52] HI [01:52] HI [01:52] HI [01:52] HI [01:52] HI [01:53] HI Haubitze [01:53] Hi [01:53] HI [01:53] HI [01:53] are you there? [01:53] Haubitze [01:54] that sucks [02:03] MSG: Quit: Leaving [02:53] MSG: Quit: machts gud [08:49] Join: fiveop joined #corewars [10:09] MSG: Quit: Lost terminal [11:38] Join: elkauka joined #corewars [11:42] [01:54] that sucks <- maybe we should get someone who can answer beginner questiones at 2am [11:49] MSG: Ping timeout: 255 seconds [16:10] Join: Nenad joined #corewars [16:10] hi [16:27] MSG: [16:39] Join: willvarfa joined #corewars [16:41] Join: elkauka joined #corewars [16:50] Join: fiveop joined #corewars [16:51] MSG: Ping timeout: 255 seconds [16:55] Join: John joined #corewars [16:55] Hi :-) [16:56] evening all [16:56] Hi Will [16:56] hi [16:56] Hi Mizcu [16:57] Join: Core_old joined #corewars [16:58] Hi Core_old [16:58] http://www.best4web.ch/fun/family.html [16:58] Sorry wrong window [16:59] hi [17:01] I've just been updating some of my website, but it's not online yet [17:30] MSG: Quit: Quick! Kill your client! Bersirc 2.2 is here! [ http://www.bersirc.org/ - Open Source IRC ] [17:45] * willvarfa stretches [18:21] Join: Core_old_ joined #corewars [18:24] MSG: Ping timeout: 255 seconds [18:27] MSG: Quit: Konversation terminated! [20:24] Join: elkauka joined #corewars [20:31] MSG: Ping timeout: 255 seconds [20:48] Join: brad joined #corewars [20:48] hello [20:49] anyone here? [20:59] asw? [20:59] Mizcu [20:59] multimode? [20:59] log_guy [20:59] johnkw? [20:59] fiveop? [20:59] Core_old_? [21:08] MSG: Quit: Lost terminal [21:09] MSG: Quit: Trillian (http://www.ceruleanstudios.com [21:11] Join: inversed joined #corewars [21:19] hey [21:19] hi inversed [21:19] Hi [21:20] hows it goin? [21:20] ive been trying to get someone to talk to me for an hour lol [21:21] hey inversed? [21:21] I was afk for a minute [21:22] can you look at my warrior and show me the syntax error pls? [21:22] i cant spot it [21:22] ok [21:22] im still kinda new [21:23] red [21:23] ;name imp_devastator [21:23] org s [21:23] s: [21:23] spl 8 [21:23] mov 2,-2 [21:23] jmp -1 [21:23] dat 0,0 [21:23] nop [21:23] nop [21:23] nop [21:23] nop [21:23] spl 5 [21:23] mov 2, -2 [21:23] jmp -1 [21:23] dat 0,0 [21:24] nop [21:24] cpy.i 0,0 [21:24] end [21:24] there is a semi colon befor red i just missed it [21:24] like in the copy and paste [21:24] I think i may be using spl wrong. [21:25] First, it must be ;redcode, ;redcode-94, ;redcode-94nop, but not ;red [21:25] ive had others work with ;red [21:25] thats not the problem, ive written two others that worked like that [21:25] second, nop must have both a and b fields, like: nop 0, 0 [21:25] maybe it's just my mars [21:26] ok [21:26] third, WTF is cpy ??? [21:26] oops [21:26] that would be my real assembler expereince coming through lol [21:26] cpy==mov [21:28] ok [21:28] move more thing [21:28] substitute mov for cpy [21:29] and it should create an imp that runs away from the end of my program, why is it not? [21:29] ok [21:29] nvm [21:29] 0,1 [21:33] if you want to have some separate components, you should use dat 0, 0 instead of nops [21:33] why? [21:34] because dats 0, 0 are invisible to cmp-scanners, and nops are not [21:34] what is a cmp-scanner? [21:35] oh cmp [21:35] compare? [21:35] so they compare empty space(dats) and if they arent equal they start bombing? [21:35] cmp-scanner is a program that finds its opponent by scanning with seq or sne [21:35] yes [21:35] ok [21:36] im just honing my skill right now, you seem pretty good, how long have you been playing? [21:37] ~ 1.5 years [21:37] sweet [21:38] ~ 6 months before I wrote a really good warrior [21:38] this is a complete history of my playing in the past week: first a built an imp, then i built something that could kill the imp by just comtinualy dat-ing the four spaces behind it and now this one should beat both of them. [21:39] Imp gate can be much simplier. This kills imp: jmp 0, <-10 [21:40] how? [21:41] it constantly decrements location at -10, so imp will be decremented and become mov 0, 0 [21:42] then it will execute (and will move itself to itself), and at the next step it will execute dat 0, 0 [21:43] wow [21:43] so you can add <-10 to any command that has an empty b-field? [21:44] yes, but it must be executed frequently enough [21:44] jmp 0, <-10 is a 100% gate, while nop 0, 0 / jmp -1, <-10 is a 50% gate [21:45] depending on whether or not the enemy imp is splitting IT's process [21:45] 50% gate will kill imp only in 50% of battles [21:45] yup i get it. [21:46] so is there any way for 100% protection from an imp while still making a program that can do something other then sit there and get taken out by a bomber? [21:48] Yes, but actually you don't need to warry about that [21:48] why? [21:48] because in modern CoreWars imps are used in form of imp-spirals that have many processes and crawl very slowly [21:48] right [21:49] In _real_ hills (lik 94nop), typical mov 0, 1 imps are quite useless [21:49] whys that? too many bombers? [21:50] No, they just have no use [21:50] right but couldnt some idiot throw one on there anyways? [21:51] No [21:51] Well you can, but your score will decrease [21:51] why not do they controle entry? [21:51] oh [21:51] im not quite sure how hills work so. [21:52] so you just submit ur warriors via email and they play them and post everyones scores online? [21:52] You write something -> send it -> it fights all warriors on the hill [21:53] if it scores better than lowermost warrior, then your warrior gets on the hill and lowermost is pushed off [21:53] right [21:54] and you can send as many as u want? [21:54] Yes [21:55] (usually, but it may depend on the hill) [21:55] what if it scores the same as the lowest one? [21:55] Almost impossible situation [21:56] does it only fight every warrior or does a tournament occour? [21:57] because if it fights every warrior and the lowest one killed ten when it fought everyone and it killed ten then they tie right? [21:59] Scoring system is different: warrior A fights warrior B n times. Score(A versus B)=100*(3*wins+ties)/N [22:00] so if A fights B and wins 40% and ties 10$ then score(A vs B) = 130 [22:00] Just look at any hill [22:00] right [22:00] gotcha [22:00] so does every warrior fight every warrior or just the newcomer? [22:01] No difference [22:01] how so? [22:01] Because old warriors are the same after new challenge and there is no need to fight them again [22:02] right [22:02] so what if the top warrior got 100% win and the new challenger also got 100% win [22:02] Overall score is composed of scores against all warriors on the hill [22:04] right [22:04] so say that number one beat all the warriors all the time and so did the newcomer [22:04] If there are max. of 5 warriors on the hill, your warrior fights each one, and your final score is an average of individual scores [22:04] just hypotheticly [22:05] You'll become N1 (or N2), and last warrior will be pushed off [22:05] how do they decide whether to make you N1 or N2? the newcomer gets N1? [22:07] This situation is impossible, because in reality you can't have score exactly equal to score of some other warrior [22:08] why not? [22:08] ok nvm [22:08] im nitpicking [22:08] on other question, what do most hills use for params for their core? [22:09] because score=100*(3*wins+ties)/N and N=20*250. Now if you want, calculate probability of such event [22:11] Most popular hill (94nop) : CORESIZE=8000 MAXPROCESSES=8000 MAXCYCLES=80000 MAXLENGTH=100 MINDISTANCE=100 [22:11] what does the nop mean? [22:12] no PSpace - disallows using PSpace [22:12] ya p space seems kinda....weird and hard and dumb to me\ [22:12] there is no p space in a real computer [22:13] CW is very interesting even without pspace [22:13] I advice you to write without pspace while you learn [22:14] yes i am. [22:15] and all battles on koth are 1v1? [22:15] oneVone incase that looked like lvl [22:16] There is a multi-warrior hill on koth.org, where all warriors fight in one core [22:17] right. [22:17] is there by any chance a newbie hill? :) ;p [22:18] Yes :) at http://sal.math.ualberta.ca/ [22:20] how do they make sure only noobies get in? [22:21] They don't, but non-newbies play at serious hills, because -b hill is too easy for them [22:21] oh ok. [22:22] i have an idea for a warrior wanna hear about it and tell me if it's foolish? [22:23] go on [22:23] ok [22:24] so at the start it creates two processes which both start bombing the core making sure not to hit themself or their friend [22:24] but [22:25] both programs check each others a/b fields (dosnt matter which) to make sure they are still intact, in the case that one is killed, it is re-written. [22:26] (by the other) [22:27] sound plausible or stupid? [22:27] Self-repair is _very_ hard to write [22:28] this is how it would work. [22:28] As far as I know there are no sucessfull self-repair programs [22:29] if program a sees that program b is not intact then program a jumps execution to a segment of code which contains instructions for rebuilding program b and then returning to normal execution of program a [22:29] Join: codgeriff joined #corewars [22:30] now, your next thought is what if the repair instructions get overwritten, right? [22:30] yes, this too [22:30] well, [22:30] I advice you to start with something more simple [22:31] both program a and be will have their own copy so if instruction set b gets destroyed then program a fixes it. [22:31] HI Paul! [22:31] ok i wont write it because it is quite complicated, but is it plausible? [22:31] brad, this is a great idea. it has been tried but not successfully, maybe you can make it work. [22:32] lol im a newbie [22:32] the basic problem is that core is small and your opponent is really really fast [22:32] he will shred both copies before you can repair [22:32] right [22:32] the original self-repair was called The Five Musketeers with five copies [22:32] PK, your bunker is one of the best self-repairs [22:33] monitoring one another like you proposed, each one watching one other in a circle [22:33] (But I wrote a better one :) [22:33] It kills some scanners [22:33] but if two got overwrote then it was dead right? [22:33] then it IS better than bunker! [22:34] brad, no. as long as there was one good copy it could get them all going again. [22:34] I can send you a copy if you want [22:34] Sorry, but I'm going to bed [22:34] the problem with TFM is spl-bombs. if one of the copies got bombed with a spl those instructions [22:35] would keep running somewhere and slow everything down. [22:35] inversed hey! I want a copy :-) [22:35] codegriff so how did it get beat? really fast programs bombed all of them at once? [22:36] I've partially solved problem with spl bombs [22:36] pk bye [22:36] *ok [22:36] also, if a copy was dat-bombed but not killed, it might replicate itself with the [22:36] MSG: [22:36] buried dat bomb [22:36] right [22:37] while as i said im quite new [22:37] and it would die later [22:37] there's a lot to learn, but the best thing is to develop a list of ideas to work on [22:37] in the future as you get experience [22:37] ya. [22:37] that way, when you turn to a problem you will have tools to work with. [22:37] i cant think of a simple warrior that would do any good. [22:38] my first goal is to put a warrior on "the newbie hill" [22:39] that's a good start, you have a lot of basics to learn [22:40] but most will come fast, and there is a huge library of warriors at http://www.ociw.edu/~birk/COREWAR/ [22:41] right [22:41] im thinking maybe some kind of bomber/imp [22:41] ive heard that most successful wariors concentrate on two things and no more or less so. [22:42] well, there are three main warrior types called paper, stone, and scissors [22:42] each one usually beats one and loses to the other [22:42] there are also "anti-" types that are written specifically to beat one of the above [22:43] so against stones (dat-bombers) there are bomb-dodgers [22:43] and against papers (replicators) there are paper-dodgers [22:44] another approach to the monitoring idea came out in Airbag, which had two bombers [22:44] running in parallel which kept an eye on one flag. If one of them died the other [22:44] one switched out of bombing and into some other strategy. pretty cool. [22:45] there has been a lot of development to make each form faster and smaller, and less [22:45] development to make them more versatile. [22:45] cool [22:45] so there is still room for creativity. [22:45] im registering for newbie hill now [22:46] not that i have anything to put on it [22:46] i don't know too much about the newbie hill, it came along after i was [22:46] deep into cw [22:47] ya it has more or less the same specs as 94nop except it has p space [22:48] well, forget pspace until you have some working programs :-) [22:48] yes [22:48] i dont think its THAT neccessary is it? [22:48] i haven't done anything with pspace for a while, it is just too unpredictable [22:48] (ive written two) [22:49] hmm [22:49] gmail has invalid security certificates [22:49] pspace allows you to retain some memory between fights, so if you lose [22:49] a couple in a row you can change strategies [22:49] can't help you with that :-( [22:50] oh its no prob [22:50] i can just go on anyways [22:53] hmm [22:53] i have an idea for a basic program [22:55] it'll send out and imp and then start dropping dats directly behind the imp and also it will keep droping dats directly behind the bomber. [22:56] or [22:56] maybe it would be better to use the same strategy but have it start scanning in the opisite direction of the imp(for non-dat) squares to bomb, so that it better protects itself and covers more core quicker [22:57] plus put its eggs in multiple baskets [22:57] a stone-imp combination is a solid idea and is represented by some of the strongest [22:57] programs out there. [22:58] well dont i feel special [22:58] do you have a graphical mars so you can watch individual battles? [22:58] yes [22:58] but its very basic [22:59] it has a bunch of squares(the core) and some color coding [22:59] i use corewin [22:59] and a plus sign to show where execution is [22:59] im a linux guy [23:02] gah im trying to register on the newbie hill but its not co-operating [23:05] does it send a confirmation email? [23:08] dunno [23:16] hey [23:17] is there a jump is not equal function that can compare just the functions and not the a and b fields? [23:17] codegriff? [23:17] jump if not equal* [23:18] not really... [23:18] so i have to compare the a and b aswell? [23:18] sne, sne.a sne.b sne.x sne.i [23:19] you can compare just the a, just the b, both, both swapped, all without the instruction [23:19] but not just the instruction. [23:19] right [23:20] then it would be a safe bet if im scanning for programs to use the b field of a dat to store the current scan location and compare just the a? [23:21] so that my program is as compact as possible [23:21] therefor attracting less bombs itself [23:22] when you have your logic worked out, see if there is a b-field you aren't using and put it there [23:22] if you have it in a separate dat instruction, that's one more place an opposing scanner [23:22] can find you. [23:22] right but i need a dat anyways so that i can scan for enemies [23:23] wait [23:23] right [23:23] i got ya [23:24] i dont need to scan for a dat all i need to do is scan for anything other then 0 as an a or b field [23:24] right? [23:24] you can throw a nearby dat-zero, core is initialized with them [23:24] oh ok [23:24] yup [23:24] thats what ill do then [23:25] sorry, gotta go. good luck! [23:25] MSG: [23:25] ill use a dat-zero to compare and an empty instruction to hold the position