Bomberman

From Esolang
Jump to navigation Jump to search

Bomberman is an esolang made by User:↑. It was made to be Hammy-complete. It has a stack and variable system. If a command is not using the variable parameter, the value is used from and to the stack.

Commands

Command What it does
drop(a) Asks for input.
boom(a) Prints an output.
bomb(a)(b) Defines a variable.
chain(a)(params): Defines a function.
powerup(a)(b) Increments a variable by the amount of times specified.
powerdown(a)(b) Same as powerup, but decrements instead.
kick(a): Loop command.
hand(a)(b) Multiplies a variable by the amount specified.
trap(a)(b) Divides a variable by the amount specified.
escape(case): If command.

Hammy-completeness proof

  • it outputs with boom and inputs with drop.
  • it can interpret deadfish (space is a keyword for space and it does not go to a newline because it needs a nl keyword for it to do so):
bomb(accumulator)(0)
chain(inc):
    powerup(accumulator)(1)
chain(dec):
    powerdown(accumulator)(1)
chain(squ):
    hand(accumulator)(accumulator)
chain(out):
    boom((accumulator)+space)
escape((accumulator)=(-1)):
    bomb(accumulator)(0)
escape((accumulator)=(256)):
    bomb(accumulator)(0)

example:

commands: inc;inc;squ;out
result: 4

if you want newline instead of space, you can change space by nl.

  • the cat program is drop;boom (9 chars) (and ; is used as separator)
  • it is plushie complete
  • also there is a ! command in the level 2 expansion pack that prints a specified amount of digits of a specified constant.