Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search

This page allows you to examine the variables generated by the Abuse Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
0
Name of the user account (user_name)
'Jdonszelmann'
Age of the user account (user_age)
64
Page ID (page_id)
4182
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Half-Broken Car in Heavy Traffic'
Full page title (page_prefixedtitle)
'Half-Broken Car in Heavy Traffic'
Action (action)
'edit'
Edit summary/reason (summary)
'Add clarification for slash command. Source: the original compiler as found on github, made by the author. '
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''Half-Broken Car in Heavy Traffic''' is a 2D-grid language with operators also acting as direction signs, making programming very difficult. It was created by Niels Serup ([[User:Nqpz]]). ==Language overview== ([https://github.com/nqpz/hbcht Source]) HBCHT is a 2D grid-based programming language. You are a car fighting to get to the exit of a very chaotic highway. You have to follow the signs, but whenever you do that, you also change your memory. The value of your current memory cell can be incremented or decremented and your memory cell index can change. You can also find signs that tell you to turn either right or not turn at all, depending on your memory. The car can drive in four directions: up, right, down, and left. Because of the chaos, you never know which direction the car is headed when the program starts. This makes it easy to randomize the output. To make things worse (actually, it's to make programming in HBCHT possible), you cannot turn left (relative to your current direction) because your car is half-broken. You can drive straight ahead, you can turn right, and you can reverse. {| class="wikitable" !Command/marker !Description |- |<code>&gt;</code> |go right, next memory cell |- |<code>&lt;</code> |go left, previous memory cell |- |<code><nowiki>^</nowiki></code> |go up, increment memory cell value |- |<code>v</code> |go down, decrement memory cell value |- |<code>/</code> |go right if the current memory cell has the same value as the previous cell, else continue |- |<code>o</code> |the car |- |<code>#</code> |the exit |} * There can be only one car and only one exit * The car cannot turn left; any relative left turns will be ignored along with their memory effects * The program always starts at memory cell #0 * All memory cells have the value 0 by default * Input values cannot be negative, but values returned by a program can * The car cannot go out of bound; if it exits to the right, it reenters to the left, etc. * Values cannot be input to memory cells below memory cell #0, but the program can set values in these * Values can be arbitrarily large. An interpreter or compiler without this feature is valid, but not perfect (note that hbcht's C translator uses 32-bit ints and is thereby not perfect). A semicolon denotes a comment. Anything from the semicolon to the end of the line is ignored. If a program file contains a line that starts with <code>@intext</code>, it will see input as text and convert the text to ordinals before running the core function. If a program file contains a line that starts with <code>@outtext</code>, it will show output as a text string instead of a list of numbers. ==Examples== ===Increment=== ; Increment the first memory cell once without changing the other cells. > ^ < > v < # ^< > ^ ^ ^<> ^ > ^< ^ > v < o v v v < > v v v v v v v v v > ^ < ===Decrement=== ; Decrement the first memory cell once without changing the other cells. v v v < <> ^ ^ >>^< >v<o>^< v v v > v< # > ^< ^ ===[[Hello, World!]]=== <pre> ; Prints "Hello, world!\n". @outtext v >v ^ > v < v >>^< v ^ v v ^ ^ < v ^ ^ v ^ > />^<v v ^ ^ >v< < v ^ ^ v ^ ^ > />^<v v ^ # ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < >v v ^ >>^< ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v >>^<^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<^v v ^ ^ ^ >> ^ ^ < v ^ ^ ^ >v<<<<<<<<<<<< v v ^ ^ ^ v >^< v v >>^< ^ ^ v > >v v v ^ ^ > ^ v v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ >>^< ^ ^ v ^^ < v v ^ ^ ^ ^ v>>^< v v ^ ^ ^ ^ v v ^ ^ ^ ^ v^ v v ^ ^ ^ ^ v^ v v ^ ^ ^ ^ v^ v v ^ v ^ ^ v^ v v ^>v < ^ ^ v^ v v ^ >>^<^ ^ ^ >v <^ v v ^ ^ ^ ^ ^ >>^^< v v ^ ^ ^ ^ ^ v v ^ ^ ^ ^ v >>^< ^ ^ ^ v ^ ^ ^ ^ v ^ ^ ^ v ^ ^ ^ v v ^ ^ ^ < v ^ ^ >^< v ^ ^ ^ v ^ ^ v > ^< ^ ^ < ^ >>^< > ^<v ^ >v<< v >v< ^ >^< o>v v > ^< v ^ </pre> ===Move cell value=== <pre> ; Move the value of memory cell #0 to memory cell #1. ; Making sure the car ends up going in the same direction with the same ; variables. >v < ^ ^<> v < >v ^ ^<> ^ > ^< >v<o>^ < v > ^< ^ v > v < ^ v ; The actual moving. >v << #/ v ^ > >^< ^ </pre> ===Random=== ; Returns either 1 in #0 or -1 in #1 > # ^ o>v ==External resources== *[https://github.com/nqpz/hbcht hbcht] is a combined compiler/interpreter written in Python 3. *[https://github.com/Eckankar/bf2hbcht bf2hbcht] is a transpiler from Brainfuck to HBCHT (disregarding input and output instructions), showing that HBCHT is Turing complete. [[Category:Low-level]] [[Category:Cell-based]] [[Category:Implemented]] [[Category:Languages]] [[Category:2011]] [[Category:Two-dimensional languages]] [[Category:Turing complete]]'
New page wikitext, after the edit (new_wikitext)
''''Half-Broken Car in Heavy Traffic''' is a 2D-grid language with operators also acting as direction signs, making programming very difficult. It was created by Niels Serup ([[User:Nqpz]]). ==Language overview== ([https://github.com/nqpz/hbcht Source]) HBCHT is a 2D grid-based programming language. You are a car fighting to get to the exit of a very chaotic highway. You have to follow the signs, but whenever you do that, you also change your memory. The value of your current memory cell can be incremented or decremented and your memory cell index can change. You can also find signs that tell you to turn either right or not turn at all, depending on your memory. The car can drive in four directions: up, right, down, and left. Because of the chaos, you never know which direction the car is headed when the program starts. This makes it easy to randomize the output. To make things worse (actually, it's to make programming in HBCHT possible), you cannot turn left (relative to your current direction) because your car is half-broken. You can drive straight ahead, you can turn right, and you can reverse. {| class="wikitable" !Command/marker !Description |- |<code>&gt;</code> |go right, next memory cell |- |<code>&lt;</code> |go left, previous memory cell |- |<code><nowiki>^</nowiki></code> |go up, increment memory cell value |- |<code>v</code> |go down, decrement memory cell value |- |<code>/</code> |go right (relative to the direction you are currently traveling in) if the current memory cell has the same value as the previous cell, else continue |- |<code>o</code> |the car |- |<code>#</code> |the exit |} * There can be only one car and only one exit * The car cannot turn left; any relative left turns will be ignored along with their memory effects * The program always starts at memory cell #0 * All memory cells have the value 0 by default * Input values cannot be negative, but values returned by a program can * The car cannot go out of bound; if it exits to the right, it reenters to the left, etc. * Values cannot be input to memory cells below memory cell #0, but the program can set values in these * Values can be arbitrarily large. An interpreter or compiler without this feature is valid, but not perfect (note that hbcht's C translator uses 32-bit ints and is thereby not perfect). A semicolon denotes a comment. Anything from the semicolon to the end of the line is ignored. If a program file contains a line that starts with <code>@intext</code>, it will see input as text and convert the text to ordinals before running the core function. If a program file contains a line that starts with <code>@outtext</code>, it will show output as a text string instead of a list of numbers. ==Examples== ===Increment=== ; Increment the first memory cell once without changing the other cells. > ^ < > v < # ^< > ^ ^ ^<> ^ > ^< ^ > v < o v v v < > v v v v v v v v v > ^ < ===Decrement=== ; Decrement the first memory cell once without changing the other cells. v v v < <> ^ ^ >>^< >v<o>^< v v v > v< # > ^< ^ ===[[Hello, World!]]=== <pre> ; Prints "Hello, world!\n". @outtext v >v ^ > v < v >>^< v ^ v v ^ ^ < v ^ ^ v ^ > />^<v v ^ ^ >v< < v ^ ^ v ^ ^ > />^<v v ^ # ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < v ^ ^ ^ ^ v ^ ^ ^ > />^<v v ^ ^ ^ ^>v< < >v v ^ >>^< ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v >>^<^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<v ^v v ^ ^ ^ ^>v< < ^v v ^ ^ ^ ^ ^v v ^ ^ ^ > />^<^v v ^ ^ ^ >> ^ ^ < v ^ ^ ^ >v<<<<<<<<<<<< v v ^ ^ ^ v >^< v v >>^< ^ ^ v > >v v v ^ ^ > ^ v v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ ^ ^ ^ v ^^ v v ^ >>^< ^ ^ v ^^ < v v ^ ^ ^ ^ v>>^< v v ^ ^ ^ ^ v v ^ ^ ^ ^ v^ v v ^ ^ ^ ^ v^ v v ^ ^ ^ ^ v^ v v ^ v ^ ^ v^ v v ^>v < ^ ^ v^ v v ^ >>^<^ ^ ^ >v <^ v v ^ ^ ^ ^ ^ >>^^< v v ^ ^ ^ ^ ^ v v ^ ^ ^ ^ v >>^< ^ ^ ^ v ^ ^ ^ ^ v ^ ^ ^ v ^ ^ ^ v v ^ ^ ^ < v ^ ^ >^< v ^ ^ ^ v ^ ^ v > ^< ^ ^ < ^ >>^< > ^<v ^ >v<< v >v< ^ >^< o>v v > ^< v ^ </pre> ===Move cell value=== <pre> ; Move the value of memory cell #0 to memory cell #1. ; Making sure the car ends up going in the same direction with the same ; variables. >v < ^ ^<> v < >v ^ ^<> ^ > ^< >v<o>^ < v > ^< ^ v > v < ^ v ; The actual moving. >v << #/ v ^ > >^< ^ </pre> ===Random=== ; Returns either 1 in #0 or -1 in #1 > # ^ o>v ==External resources== *[https://github.com/nqpz/hbcht hbcht] is a combined compiler/interpreter written in Python 3. *[https://github.com/Eckankar/bf2hbcht bf2hbcht] is a transpiler from Brainfuck to HBCHT (disregarding input and output instructions), showing that HBCHT is Turing complete. [[Category:Low-level]] [[Category:Cell-based]] [[Category:Implemented]] [[Category:Languages]] [[Category:2011]] [[Category:Two-dimensional languages]] [[Category:Turing complete]]'
Unified diff of changes made by edit (edit_diff)
'@@ -39,5 +39,5 @@ |- |<code>/</code> -|go right if the current memory cell has the same value as the previous cell, else continue +|go right (relative to the direction you are currently traveling in) if the current memory cell has the same value as the previous cell, else continue |- |<code>o</code> '
New page size (new_size)
7549
Old page size (old_size)
7490
Lines added in edit (added_lines)
[ 0 => '|go right (relative to the direction you are currently traveling in) if the current memory cell has the same value as the previous cell, else continue' ]
Unix timestamp of change (timestamp)
1621901837