Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Gobo

Pages: [1]
1
Suggestions / .refslime, .trefslime
« on: December 06, 2007, 05:12:07 AM »
There are gaps for these sysvars in the bot's memory AFAIK. Is it done intentionally? What's the reason then?

2
Suggestions / .myoffspring, .refoffspring, .trefoffspring
« on: December 05, 2007, 02:25:38 PM »
I would like to have .refoffspring in order to let shepherd veggies encourage zerobots which developed reproduction. .myoffspring and .trefoffspring are suggested by induction.

3
DNA - General / Cycle execution order
« on: December 05, 2007, 10:49:46 AM »
I remember there was description of execution order somewhere, but I can't find it unfortunately. When movement goes, when shots are shot and so on. Please help me!

4
Quote
The origin of the eukaryotic cell was a milestone in the evolution of life, since they include all complex cells and almost all multi-cellular organisms.
I think it would be a real break-through in Darwinbots design if possibility of endosymbiotic bots were added. Eukaryotic cell became possible when prehistoric cells evolved phagocytosis. Those cells became eukaryotes when they stopped lyse phagocytosed organisms (protokaryotes noticeably cannot do phagocytosis). I suggest to implement phagocytosis in Darwinbots.
  • A bot can phagocytose another bot if it has greater size than the latter and has enough inside space (limited by already present phagocytosed bots).
  • I consider phagocytosis should work much like ties. Each phagocytosed bot gets its ordinal number and then may be addressed with it. Perhaps phagocytosed and tied bots could even share the same interface when addressed.
  • Phagocytosed bots can move only within its host's body.
  • Phagocytosed bots cannot be shot by their host or from outside, though they can be drained energy from using the same interface as ties (including sharing). Though while phagocytosed bots shoot, they may hit other bots phagocytosed by the same host or either their host (if a shot met no phagocytosed bots before the host's outer membrane).
  • When a host reproduces, its phagocytosed bots do as well, so a child gets the same endofauna (or endoflora) as its parent.
  • Endosymbionts may play role of chloroplasts, chromosomes etc. as well as endoparasites.
  • A bot design idea: bots can force a bot to phagocytose themselves with venom in order to become endoparasites.

5
Suggestions / dupbool
« on: December 03, 2007, 11:30:37 AM »
It would be extraordinary useful to have dupbool operator. For now, Sanger's nested if's do not work right, since only the deepest's if condition is checked. The right thing would be dupbool the top value and and it with a new condition.

6
DNA Tools / Sanger is good for your 1S bots
« on: December 01, 2007, 01:57:40 PM »
Inspired with Maca's Nano, I decided to write my own 1S bot with innovative (as I thought) idea. But then it appeared, that Maca implemented this idea ealier in Animal Archaea
Nevertheless, there is a proof of concept.

Nanobacter independens
Code: [Select]
always {
    *.eye5 > 0 && *.myeye == *.refeye && .aimdx
            || *.eye5 > 30 && .shoot
            || *.refeye != *.myeye && *.eye6 != *.eye4 && .aimdx
            || *.nrg > 20000 && .repro
            || *.vel < 30 && .up
        = *.eye5 > 0 && *.myeye == *.refeye && 31
                || *.eye5 > 30 && -1
                || *.refeye != *.myeye && *.eye6 - *.eye4
                || *.nrg > 20000 && 30
                || 30 - *.vel;
}
There is compiled DNA.
Code: [Select]
start

*.eye5 sgn sqr *.myeye *.refeye sub sgn abs -- abs mult 31 mult
dup sgn abs -- abs *.eye5 30 sub sgn sqr -1 mult mult add
dup sgn abs -- abs *.refeye *.myeye sub sgn abs *.eye6 *.eye4 sub mult mult add
dup sgn abs -- abs *.nrg 20000 sub sgn sqr 30 mult mult add
dup sgn abs -- abs 30 *.vel sub mult add

*.eye5 sgn sqr *.myeye *.refeye sub sgn abs -- abs mult .aimdx mult
dup sgn abs -- abs *.eye5 30 sub sgn sqr .shoot mult mult add
dup sgn abs -- abs *.refeye *.myeye sub sgn abs *.eye6 *.eye4 sub sgn abs mult .aimdx mult mult add
dup sgn abs -- abs *.nrg 20000 sub sgn sqr .repro mult mult add
dup sgn abs -- abs 30 *.vel sub sgn sqr .up mult mult add

store

stop

7
Bugs and fixes / Is it an intra-DNA conditions bug RESOLVED (BY DESIGN)
« on: November 28, 2007, 07:03:51 PM »
Here is a severely mutilated Animal Minimalis:
Code: [Select]
cond
start
*.eye5 0 == *.refeye *.myeye == or 314 rnd .aimdx store
stop
I think I didn't do any mistakes. But this doesn't work as expected. If you placed this cripple near Alga Minimalis, for instance, it should stop rotating, in theory. But it doesn't, as for 2.43t. Is it a bug in DB or in my head?

8
DNA Tools / How DNA works
« on: November 27, 2007, 05:38:42 AM »
I'm going to write evolved DNA deobfuscator, and it is essential to understand perfectly how DNA works. Please check, if my explanation is precise.
http://www.darwinbots.com/WikiManual/index...her_Explanation

9
Tips and Tricks / More compact way for conditionless greater-than-zero
« on: November 27, 2007, 04:31:16 AM »
One may say
Code: [Select]
sgn sqrinstead of generally adopted
Code: [Select]
0 floor sgnIronically, there is a comment inside DB source code:
Code: [Select]
'Returns square root of a positive number. Can't think of a specific use but it is valid.It seems, a specific use is finally found

10
DNA Tools / Sanger
« on: November 16, 2007, 05:15:38 PM »
Please check it out.

http://ersatz.org/sanger-1.0.zip

Feedback and bug reports are equally welcome. If you notice a bad turn of speech in documentation, please report me as well, since English is not my native language and I can hardly check myself.

Code: [Select]
NAME
    sanger.pl - Darwinbots DNA macro language interpreter

SYNOPSIS
        sanger.pl [file]
        sanger.pl -e [code]
        sanger.pl --help

DESCRIPTION
    Sanger is a macro language designed to make conditionless DNA
    construction easier. Sanger is named after Frederick Sanger, inventor
    of DNA sequencing.

    "sanger.pl" is Sanger interpreter which gives classic low-level DNA code
    on output. Sanger code may contain macro definitions and file
    inclusions. Everything else is interpreted as instructions, I. e. macro
    calls and plain DNA code.

MACROS
    Macro definition starts with DEFINE and lasts till a semicolon. Macro
    names are case-insensitive.

        DEFINE NEZ     $1 sgn abs;
        DEFINE NE      NEZ( $1 $2 sub );

    Definition of a macro may contain argument references: $1, $2 and so on.
    When macro is called, argument references are replaced with arguments.
    For instance,

        NE( *.myeye, *.refeye )

    is interpreted as

        *.myeye *.refeye sub sgn abs
    
FILE INCLUSIONS
    File inclusions start with INCLUDE and last till a semicolon, similar to
    macros.

        INCLUDE filename;

STANDARD LIBRARY
    These macros are found within 'stdlib.dna' file going in distribution.

    NOT( boolean )
    AND( boolean, boolean )
    OR( boolean, boolean )
    XOR( boolean, boolean )
        Boolean operators.

    EQZ( integer )
    NEZ( integer )
    GTZ( integer )
    LTZ( integer )
    GEZ( integer )
    LEZ( integer )
        Compare the top value on the stack with zero.

    EQ( integer, integer )
    NE( integer, integer )
    GT( integer, integer )
    LT( integer, integer )
    GE( integer, integer )
    LE( integer, integer )
        Compare two integers on the top of the stack.

    TEST( boolean, integer )
        If the first argument is true, pushes the second argument on the
        stack, otherwise pushes zero.

    IF( boolean, integer, integer )
        If the first argument is true, pushes the second argument on the
        stack, otherwise pushes the third.

EXAMPLES
        Lionfish's genes are taken for demonstration.

            INCLUDE stdlib.dna;

            ' Venom blinding and strvenom killer exploit
            IF( 1 rnd, IF( 1 rnd, .eye5width, .eye5dir ), .strvenom ) .vloc store

            ' Selective shooting
            DEFINE ENEMY NE( *.in1, *.refage );
            IF( GT( *.eye5, 60 ),
                IF( NEZ( *.refeye ),
                    TEST( ENEMY(), -3 ),
                    -6 ),
                TEST( GT( *.nrg, 1000 ), -3 ) ) .shoot store

SEE ALSO
    Frederick Sanger
        <http://en.wikipedia.org/wiki/Frederick_Sanger>

    Lionfish's genes explained
        <http://www.darwinbots.com/Forum/index.php?showtopic=2169>

AUTHOR
    Ivan Fomichev <ifomichev@gmail.com>

COPYRIGHT
        Copyright (C) 2007  Ivan Fomichev

        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with this program.  If not, see <http://www.gnu.org/licenses/>.

11
Bugs and fixes / Keeping eye on tied bot RESOLVED 2.43r
« on: November 12, 2007, 01:59:51 PM »
I'm trying to make a bot keep an eye on whom it tied to. In most cases, it misses. Does anyone have an idea, what's the matter?

Code: [Select]
cond
*.eye5 50 >
*.numties 0 =
start
1 .tie store
1 .tienum store
stop

cond
*.tienum 1 =
start
*.tieang .aimsx store
stop

Pages: [1]