[00:00] yes [00:04] Mizcu: I just realised that my update of dat one step behind isen't working so well. Because it dosent update that peticular space because of to "many" instructions. Got any explation to me on how to make it update the dat more often? [00:04] no i have add, move, jmp [00:04] why do you need the add? [00:05] Hmm good question. [00:05] i dont i guess since I'm not moving anything that need any incrementing [00:07] bvowk: http://bash.org/?851971 [00:09] not a bad idea [00:16] Mizcu: http://pastebin.com/d179e4ba1 do you approve? [00:17] actually, i dont [00:18] you need only one instruction to kill 90% of imp-variants [00:18] Mizcu: That sounds intresting. [00:18] is it a mov? [00:19] no [00:19] in another words. Care to elaborate? [00:19] jmp 0, <-10 [00:19] aka imp-gate [00:20] comes also with variant jmp 0, >-10 with pretty much the same kill-ratio [00:22] Any peticular reason why one jump -10? [00:22] jmp jumps to the location in a-field, b-field doesnt make any change to that [00:23] however, you can 'cheat' and put a number in the b-field for a storage [00:24] And then give the number an special addressing-mode to do two things with one instruction ( {}<> ) [00:29] Mizcu: Erm. But the b-field decides how far back it should jump? [00:29] no, the a-field decides [00:29] but the a-filed is a zero [00:29] field* [00:29] when you feed jmp 0 into pmars (or corewin or..) , it becomes jmp 0,0 [00:30] an imp has zero in it too, and removing that zero makes it not an imp anymore [00:32] I still don't understand how then chaning the value in the b-field makes it jump further or less further away :/ [00:33] THE VALUE IN B-FIELD HAS _NOTHING_ TO DO WITH THE JUMP DISTANCE [00:37] Im sorry I'm just trying to understand. I don't doubt what you're saying is right. When I look in corewin I see that the b-field decides where the dat is "occupies" the space. [00:37] -is [00:37] yes [00:38] actually, an 'empty' address is an dat 0,0 [00:38] its just easier to read core when theres no 7800 dat's messing things up [00:39] so the imp-gate doesnt place an dat there, it just changes it, which causes the editor not to hide it anymore [00:41] Do you have any problems reading my english? I am already trying to use simple terms, but i can try to write in even simpler way. But using simple language will not change redcode any more simpler to explain. [00:41] Your english is fine! [00:42] I was just worried, because you write a little bit easy english. [00:45] Mizcu: Just trying to make myself understood. But it's hard when you don't have any substansial knowledge. [00:48] Trifler: I understand, lets continue with redcode. I have nothing to add to my last explanation, but please, ask more. [00:51] http://vyznev.net/corewar/guide.html I'm reading this page. And trying to learn the basics. And I guess next in-line would be to pluck a dwarf. [00:53] So how do i dat the core without it dat-bombing me [00:54] that is a bit too simple question [00:54] are you putting an imp-gate against an dwarf? [00:54] or is that just a general question [00:55] It's a general question. Im not putting anything against it yet. [00:56] when two warriors fight, and unless there is a design-problem, there will always be battles where you simply cannot fight, only lose [00:56] I do know that a spiral is a good choice. But not really why and what a sprial is. (apart from the shape the name incites) [00:57] what that means is that you will always lose some matches against a dwarf (it does have a design problem though in it) [00:57] an imp-spiral is too complicated at this moment [00:58] back to the original question, how to dat the core without getting bombed by dwarf [00:58] a) dodge b) hit him before he hits you (be faster) c) be tougher so you can still continue to fight [00:59] ..after being hit by a bomb.. [01:00] Those are really the principles; general question gets a general answer. [01:01] To split your "counter"-warrior sounds like a plan. [01:03] that is a good plan, combination of a and c [01:04] best would be to somehow 'see' that you are fighting a dwarf, and change warrior's tactics [01:04] some kind of scan/search. And somehow limit the spl. So that you dont get to many active proccosses thus limiting the speed. [01:04] but that doesnt really work, unless you are fighting very small number of opponents [01:05] well, the problem is that a scan means at least one more instruction in a warrior [01:06] and that means that it is both slower, and easier to damage, which is not very good exchange, when you only get resistance against a dwarf [01:07] so the big question is: do you want to defeat only an dwarf? do you have dwarf and couple more opponents? or does it have to be good against everything? [01:09] Start with just to counter a dwarf.. [01:09] maybe we should start with you trying to understand what every line in dwarf does [01:10] Mizcu: I'm looking at the dwarf in the example in the beginners guide. [01:10] the tutorial page does pretty good explanation, but there is a difference between reading an explanation, and understanding it. [01:10] add, mov, jmp, dat [01:11] that peticular one. adds 4 to the instruction 3 steps under it. the dat. [01:14] Then it moves the dat instruction 2 steps below it 4 steps infront of the last instruction the dat. [01:18] jumps back to the original instruction add and starts over. [01:20] what will it do differently in the second run, and ?why? [01:20] That's what corewin tells me. I'm not on the clear with #, @ [01:20] http://www.koth.org/info/pmars-redcode-94.txt [01:20] now, that text-file is not written like a tutorial, but it might be helpful [01:20] The value is stored and incremented in the dats b-field and moves it another 4 steps forward. [01:21] lets ignore that "why" question for now [01:22] lecture: what is the meaning of # ? [01:23] technically, when you write, say, mov 0, 1 , and try to run it, the code undergoes a change before going into the simulation [01:23] It's says immediate. So I guess that it would mean that it's actually the number four that is added not the value of the posistion atm. which would be a 1. [01:23] position* [01:24] when you dont mention an addressing mode, like i havent in that imp, it is actually replaced with $ [01:24] so the imp is mov $0, $1 [01:24] the addressing mode of $ means that the number means some other instruction [01:25] like in this case, "move instruction 0 to instruction 1" [01:25] # means that the number is, an number [01:26] mov #0, $1 means "move number 0 to instruction 1" [01:26] add #3, #4 means "add number 3 to number 4" ; running it will result in add #3, #7 [01:27] but add 3, 4 means "add (the numbers in) instruction 3 to (the numbers in) instruction 4" [01:28] do you understand? [01:28] I do belive so. [01:29] have you studied any programming before redcode? do you know what a pointer is? [01:30] I do but im not especially good at it. c++ that is (pointers) [01:31] (sheesh, wikipedias article on pointers is horrible) [01:34] ugh, i cant figure out how to make a simple explanation right now [01:34] Do I need to understand more than that it points to the adress which holds the value not the value itself? [01:34] Mizcu is it 4.34 ur time? [01:34] trifler: that is all you need to know [01:34] zyph: yes [01:34] *yawn* [01:35] trifler: when you use @, you use some number as a pointer [01:37] damnit, that pages version of dwarf is not the one with labels [01:37] well, that wont stop me [01:37] i hereby name the (dat #0, #0) -line to be "bomb" [01:38] so what the Ždwarf does, is add #4, bomb | mov bomb, @bomb [01:39] im with you [01:40] now, the add adds #4 in the b-field of 'bomb' [01:41] the @bomb in mov bomb, @bomb will take b-field of 'bomb', and use the number in it as a pointer [01:42] so every time the loop runs, the add will change the value in pointer, making the bomb drop in different place [01:43] understand? [01:44] just to make it sure this is what we're working with [01:44] http://pastebin.com/m63a630c5 [01:45] exactly [01:47] the dwarf doesnt actually need using those pointers to work [01:47] but it gives a good excuse to teach a beginner what @ means [01:49] add #4, 1 [01:49] mov bomb, bomb [01:49] jmp -2 [01:49] bomb: dat #0, #0 [01:51] dat just as jmp dosen't use it's b-field but you can use it to "cheat"? [01:51] i could "cheat" with it, if i wanted to, yes [01:52] but now it is more important to understand simple things, not tricks [01:53] do you understand that "simple dwarf" ? [01:54] Not fully. Where does it "know" to move 4 steps ahead. [01:54] even though there is text in it, in the bottom there are only numbers [01:55] mov bomb, bomb is actually mov 2, 2 [01:55] and 2 is a number, that you can add 4 into [01:56] That I understand. but that only specifies that you should move the dat instruction not where the that it self will be moved? [01:57] i dont understand what you mean by "where that itself will be moved" [02:00] Hmm I think I understand now. I'll try to understand. add, adds four to the instruction below. Thus making it hold the values 2 and 4. The 2 points to the instuction dat. Which should be moved four steps ahead. [02:00] understad = explain [02:01] i think 2 + 4 = 6, not 4 [02:01] Sorry mixed up with the numbers [02:01] But hmm [02:03] so the 4 steps ahead of the whole code (is 2 steps stepping through the code and an additional 4 = 6) [02:03] yes [02:05] MSG: Quit: humhum [02:07] Mizcu: Ty [02:07] it so damn late that i need to go get some sleep [02:08] Mizcu: Yes thank you for the help. Ill be back tomorrow.. Or later today depending on how you wanna look at it :) [02:08] Mizcu: God night [04:31] MSG: Ping timeout: 245 seconds [04:38] Join: trifler joined #corewars [13:14] pew pew [14:21] Join: Neogryzor joined #corewars [14:22] hum... [14:23] hi [14:29] hi zyph [14:33] what's up? [14:33] not much right now [14:33] I just noticed the weather is awesome today [14:33] So i might go out and run [14:33] what about you? [14:35] here it is raining, that why i entered here :) [14:35] i'm looking at some tips in the newsgroup [15:21] MSG: [18:09] Evnin' [18:48] http://users.evtek.fi/~mikaos/p01.jpg http://users.evtek.fi/~mikaos/p02.jpg [18:50] Mizcu: That's allot of nasty energy drinks [18:51] thanks [18:51] Mizcu: Which ons is the favourit then? [18:52] Piranha, but its not available anymore [18:52] Im a litte jealous of the cherry coke though. We don't have that in Sweden.. Which is sad because I like it. [18:53] I can still get some Jolt, thankfully, which gets it place #2 [18:53] trifler: actually, that can of Cherry Coke was microimported from Netherlands [18:54] trifler: and that can of Vanilla is a m-import from Sweden [18:54] Join: fiveop joined #corewars [18:54] hi fop [18:55] Always wanted to try that since I saw pulp fiction. But It wasen't anything special orginal coke is better. [18:55] the vanilla coke that is [18:56] hi [18:57] well back to my redcode and see if a can solve this :) [19:12] ferm. [19:32] hmm [21:20] MSG: Quit: humhum