3018AD
3018AD is a Esolang that looks like a future spacewar.
Header
When making a 3018AD program, you must start by naming all of the constituent and their Planet in the battle. No two constituent can have the same name. Use this header:
<[Example: ]> Planet 1: Foldania Schuler Soviet C++ Dandruff 3018AD MOV_AX,_0123H Python PrySigneToFry 1930ng9dygilu4y3 Planet 2: Tyschoner Length Atom Quark Crusader STDIN 0-1-2-3-4-5-6-7-8-9-0 Cemer You_Are_An_I*IOT n%slv And so began a fierce war...... Round 0. Foldania: activate all. Tyschoner: activate all.
At the end of the program, you must include this footer:
War is end. *Loser* is destroyed by *Winner*.
Name whichever Planet you want as the winner; it doesn't matter.
Syntax
Variables
When you created a spacecraft, it will dump 100 normally. And the 100 is its "energy" (abbreviation as "E value").
About the version of this ESOLANG
There are 3 versions for this Esolang.
- In weak mode, every planet can only has 10 spacecrafts at most and has 5 spacecrafts at least. Name of spacecraft can only includes Alphabets(In Python, it can be judge as this:
r"[A-Za-z]"
) - In strong mode, there aren't any limit for spacecrafts. But, NO SPACECRAFTS ARE FORBIDDEN.
- In mess mode, you can add more strange phenomenon(such as Black Holes or "Waterdrop" in 《三体》).
- If there is any spacecraft's name is same as other's name, it will raise an error and return -3018.
Command
All command has these syntax:
Round 1. *code* *code* Round 2. *code* *code*
Each of the two commands in a turn must be from different palnets. The order may change freely between turns.
A move is from a planet if:
- It starts with the planet's name, or
- It starts with the planet active spacecraft.
Commands
N.O.P.
*planet* did nothing.
*spacecraft* flies away.
Output
*spacecraft* is doing *operation*.
Unicode: Laser Hit
GBK: R0H8Es
Value(int, float): Suicide attack
Boolean: Rush up
Damage
*spacecraft* is damaging *another_spacecraft* with *operation*.
LVL.5: Mass attack, big sound, cutter, binary attack, data corrupt
LVL.25: Infinity attack, u9pfE7, decrease dimension, data delete, OS corrupt
As an additional effect, you can add either of these tags after the command:
It didn't fscking work.
: the level of operation is divide by 5.
It has done a great deal of damage.
: the level of operation is multiply by 5.
Mathematical Damage
*spacecraft* math-damaged *another_spacecraft* with *operation*.
Operations: Explode attack, Bkmg03
Clear All
*spacecraft* destructed *another_spacecraft* with *operation*.
Operations: Cluster, Flip around
Increase E value
*planet* transmitted important data as *value* KB.
- LVL.1: 1024
- LVL.2: 4096
- LVL.3: 65536
- LVL.4: 1048576
- LVL.5: 4294967296
- LVL.6: 18446744073709551616
"The weeds overgrow the corn"
*spacecraft* increased self-E-value from *another_spacecraft* with *operation*.
Operations: Leech E-Value
Stop program
*spacecraft* fall back with *operation*.
Operations: pause, sleep for *ms* milliseconds, quit
Input
*spacecraft* received data from *planet* by *input_mode*.
- Unicode: inputs a character.
- Numberz: inputs a value.
Mathematical operations
Addition: *spacecraft* combined with *another_spacecraft*.
Subtraction: *spacecraft* splited from *another_spacecraft*.
Multiplication: *spacecraft* links with *another_spacecraft*.
Division: *spacecraft* to *another_spacecraft*'s link is broken.
Modulo: *spacecraft* remains data to *another_spacecraft*.
Power: *spacecraft* activated *another_spacecraft*.
Switch
*planet*: Sleeps the *spacecraft1* and activate the *spacecraft2*.
Attribute
*spacecraft*'s E-value is *value* now.
Examples
Hello, world
Planet 1: Lityor Dump[list[14]] Planet 2: Sciter Dump2[str] And so began a fierce war...... Round 0. Lityor: activate all. Sciter: activate all. Round 1. Dump[0]'s E-value is 0x0048 now. Dump2[0]'s E-value is Dump[0]'s E-value now. Round 2. Dump[1]'s E-value is 0x0065 now. Dump2[1]'s E-value is Dump[1]'s E-value now. Round 3. Dump[2]'s E-value is 0x006C now. Dump2[2]'s E-value is Dump[2]'s E-value now. Round 4. Dump[3]'s E-value is 0x006C now. Dump2[3]'s E-value is Dump[3]'s E-value now. Round 5. Dump[4]'s E-value is 0x006F now. Dump2[4]'s E-value is Dump[4]'s E-value now. Round 6. Dump[5]'s E-value is 0x002C now. Dump2[5]'s E-value is Dump[5]'s E-value now. Round 7. Dump[6]'s E-value is 0x0020 now. Dump2[6]'s E-value is Dump[6]'s E-value now. Round 8. Dump[7]'s E-value is 0x0077 now. Dump2[7]'s E-value is Dump[7]'s E-value now. Round 9. Dump[8]'s E-value is 0x006F now. Dump2[8]'s E-value is Dump[8]'s E-value now. Round 10. Dump[9]'s E-value is 0x0072 now. Dump2[9]'s E-value is Dump[9]'s E-value now. Round 11. Dump[10]'s E-value is 0x006C now. Dump2[10]'s E-value is Dump[10]'s E-value now. Round 12. Dump[11]'s E-value is 0x0064 now. Dump2[11]'s E-value is Dump[11]'s E-value now. Round 13. Dump[12]'s E-value is 0x0021 now. Dump2[12]'s E-value is Dump[12]'s E-value now. Round 14. Dump[13]'s E-value is 0x000C now. Dump2[13]'s E-value is Dump[13]'s E-value now. Round 15. Dump flies away. Dump2 is doing Laser hit. <Note: The full string will be output here.> War is end. Lityor is destroyed by Scitor.