Re: Skybuck's Warrior: CleanTheHouseV2



On 2 feb, 09:52, "Skybuck Flying" <BloodySh...@xxxxxxxxxxx> wrote:
Actually this was my first version but now I shall call it version 2.

It's much much much better... this one scores 66% against divide and
conquer... while the other one only scores 15% or so ;)

So I guess my first gut feeling was better after all... just trying out
different things ! ;)

So testing has proven it's value once again ! ;)

;redcode
;name CleanTheHouseV2
;author Skybuck Flying
;version 2
;date 2 february 2009
djn 0, <-5
mov -2, <-6
jmp -2, <-7

Bye,
  Skybuck.

Didn't you try a d-clear? It is very effective against most imps and
it a is very common complement.
Something like this:

gate equ head-2 ;<- where the pointer for clearing is
org head

head: spl #0
mov.i bmb,>gate
djn.f -1,>gate
bmb: dat <2667,(1-gate)
end

Advantages:
- The a-field of the bomb helps a bit against 3-pint imps, its B-field
contains the pointer for clearing so when it overwrites the pointer
located in 'gate' it starts another pass without killing itself.
- The spl # in the head makes a self-splitting loop. It creates a
trail of processes that makes your warrior stronger. It does not die
when hit by a single bomb.
- Location 'gate' is incremented continuously, it is very effective
against imp spirals.
- After a very few passes all the core is covered by DATs. It makes
infinite passes.

Weakpoints:
- When the pointer at 'gate' is overwritten by a '1' value the clear
attacks its own code. Simple imps could do it in theory but they are
killed meanwhile.
- It takes some time to clear all the core so it is not useful alone
as a warrior. It is used as part of a warrior.

You'll find a lot of interesting code in the Corewarrior collection.
http://labarga.atspace.com/tutorials.html

Enjoy
.



Relevant Pages

  • Re: Still more linked list magic :-)
    ... if pointer deallocation succeeded ... TYPE(my_pointer), POINTER:: current! ... Check if the head of the list is allocated, ... print *, 'before calling dealloc_list:' ...
    (comp.lang.fortran)
  • Still more linked list magic :-)
    ... if pointer deallocation succeeded ... TYPE(my_pointer), POINTER:: current! ... Check if the head of the list is allocated, ... print *, 'before calling dealloc_list:' ...
    (comp.lang.fortran)
  • [RFC][PATCH] Improve readability by hiding read_barrier_depends() calls
    ... it is sometimes difficult to figure out which pointer is ... extern void rcu_check_callbacks(int cpu, int user); ... #define list_for_each_safe_rcu(pos, n, head) \ ... * Double linked lists with a single pointer list head. ...
    (Linux-Kernel)
  • Re: Cannot deallocate a linked list
    ... || argument to the subroutine to indicate the list. ... I make use of module variables to indicate the head ... with few minor tweaks (Head will remain ... a "dangling" pointer, thus falsely associated, because it's never ...
    (comp.lang.fortran)
  • Re: LinkedList Pointer (REPOST - diff version)
    ... > Here's the original problem. ... > struct node * next; ... > No problem until you are dealing with a pointer variable. ... > node** pointer to the head pointer), add a new node at the head of the ...
    (comp.lang.c)

Quantcast