We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

JamogusLamogusAmogus

From Esolang
Jump to navigation Jump to search

JamogusLamogusAmogus (refer to it as "Jlamogus" in formal situations) is a very "sussy" esoteric interpreted programming language made in python. JamogusLamogusAmogus uses the incredibly unique file extension of "ඞ".

List of JamogusLamogusAmogus' functions:

Functions
Function Parameters Usage
JoinGame Var Sets a variable to 0 (initializes variable if it doesn't exist already).
guysTheImposterIs Var Takes a variable, converts its value to Unicode, and prints it to the console.
addNewVent VentName Creates a new vent.
vent VentName Sets program counter to position of vent.
completeTask Var increments a variable by one.
sabotage Var decrements a variable by one.
slice Var halves a variable.
twoAmogus Var doubles a variable.
where? Var sets variable to user input read as a float.
{arg0} hasCompleted {arg1} tasks Var, Float sets a variable to a float value.
ventIf {arg0} {arg1} {arg2} {arg3} Var, equallySus/moreSus/lessSus, Float, VentName vents to a vent if a variable is > or = or < than a float.

Hello World (x10)

joinGame letter;

joinGame i;

addNewVent hello;

completeTask i;

letter hasCompleted 72 tasks;

guysTheImposterIs letter;

letter hasCompleted 101 tasks;

guysTheImposterIs letter;

letter hasCompleted 108 tasks;

guysTheImposterIs letter;

letter hasCompleted 108 tasks;

guysTheImposterIs letter;

letter hasCompleted 111 tasks;

guysTheImposterIs letter;

letter hasCompleted 32 tasks;

guysTheImposterIs letter;

letter hasCompleted 87 tasks;

guysTheImposterIs letter;

letter hasCompleted 111 tasks;

guysTheImposterIs letter;

letter hasCompleted 114 tasks;

guysTheImposterIs letter;

letter hasCompleted 108 tasks;

guysTheImposterIs letter;

letter hasCompleted 100 tasks;

guysTheImposterIs letter;

letter hasCompleted 33 tasks;

guysTheImposterIs letter;

letter hasCompleted 10 tasks;

guysTheImposterIs letter;

ventIf i moreSus 10 done;

ventIf i equallySus 10 done;

vent hello;

addNewVent done;

Running ".ඞ" files:

Run "python Jlamogus.py main.ඞ" in the terminal.

Jlamogus.py:

import os
import sys


def represents_int(s):
    try:
        float(s)
    except ValueError:
        return False
    else:
        return True

def execCode(code:str):
    variables = {}
    tasks = {}
    codeList = code.replace("\n","").split(";")
    counter = 0

    for i in codeList:
        c = i.split(" ")
        if c[0] == "addNewVent":
            tasks[c[1]] = counter
        counter += 1

    counter = 0

    while True:
        try:
            line = codeList[counter]
        except IndexError:
            return
        sections = line.split(" ")
        if len(sections) == 2:
            if sections[0] == "joinGame":
                variables[sections[1]] = 0
            elif sections[0] == "guysTheImposterIs":
                print(chr(int(float(variables[sections[1]]))), end="")
            elif sections[0] == "vent":
                counter = tasks[sections[1]]
            elif sections[0] == "completeTask":
                variables[sections[1]] += 1
            elif sections[0] == "sabotage":
                variables[sections[1]] -= 1
            elif sections[0] == "slice":
                variables[sections[1]] /= 2
            elif sections[0] == "twoAmogus":
                variables[sections[1]] *= 2
            elif sections[0] == "where?":
                variables[sections[1]] = float(input("> "))

        elif len(sections) == 4:
            if sections[1] == "hasCompleted" and sections[3] == "tasks":
                variables[sections[0]] = float(sections[2])
        elif len(sections) == 5:
            if sections[0] == "ventIf":
                if sections[2] == "equallySus":
                    if represents_int(sections[3]):
                        if variables[sections[1]] == float(sections[3]):
                            counter = tasks[sections[4]]
                    else:
                        if variables[sections[1]] == variables[sections[3]]:
                            counter = tasks[sections[4]]
                elif sections[2] == "moreSus":
                    if represents_int(sections[3]):
                        if variables[sections[1]] > float(sections[3]):
                            counter = tasks[sections[4]]
                    else:
                        if variables[sections[1]] > variables[sections[3]]:
                            counter = tasks[sections[4]]
                elif sections[2] == "lessSus":
                    if represents_int(sections[3]):
                        if variables[sections[1]] < float(sections[3]):
                            counter = tasks[sections[4]]
                    else:
                        if variables[sections[1]] < variables[sections[3]]:
                            counter = tasks[sections[4]]

        counter+=1



os.system('cls' if os.name == 'nt' else 'clear')

execCode(open(sys.argv[1],"r").read())