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)
'Otesunki'
Age of the user account (user_age)
46
Page ID (page_id)
13778
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'NDBall'
Full page title (page_prefixedtitle)
'NDBall'
Action (action)
'edit'
Edit summary/reason (summary)
'The demonstration for vector lists is actually kinda wonk and incorrect'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''NDBall''', "N-Dimensional Ball" or NDB is an esolang made by [[User:Aspwil|User:Aspwil]] ([[User talk:Aspwil|talk]]) in 2020. This esolang came from the idea of a truly infinite-dimensional esolang. The problem is if one has infinite dimensions, users will still just use maybe two or three, because using higher dimensions is unnecessary. As such, the creator had to come up with a way to force those who want to make programs to use more dimensions. They did this by limiting the length of all the dimensions. Each dimension only has space for 5 instructions, if one wants to use more than that they will need more dimensions. ==Language Overview== NDBall is a language where a ball rolls around through multi-dimensional space to execute a program. The ball itself holds a value, a single-byte integer (0-255), and starts at 0. The ball can move in any dimension, but it can only move in one of them at a time, and each dimension is only 5 cells in length. The ball starts at position 0 in all dimensions. ===Position=== There are 2 ways to define a position. ====First Method: Point==== This defines a single point in space by putting all of its coordinates in a list. It is specified as: (a,b,c...) Example: (0,1,2) This is 0 in the zeroth dimension, 1 in the first dimension, and 2 in the second dimension. This method has a problem, however. If one wants to represent something that is in the 0th position for dimensions 0 to 15, but at a position of 3 for the 16th dimension, it must be written like this: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3) Now that is a lot of wasted zeros! As such, the second method should be used. ====Second Method: Vector List==== A list of coordinates, specified with dimension number and length in that dimension. It is specified as: {dimension,length|dimension,length...} The code from earlier is 3 in the 16th dimension so it can be written as: {16,3} This is the same position as before, but much easier to write and understand. ===Instructions=== {| class="wikitable" style="text-align:center" !Instruction !Effect |- ||>n||Move the ball forward in dimension n. |- ||<n||Move the ball backward in dimension n. |- ||+||Increment the value of the ball by one. |- ||-||Decrement the value of the ball by one. |- ||p||Print out the ASCII value associated with the value of the ball. |- ||P||Print out the value of the ball as a number. |- ||$||Take in input as a single character and set the value of the ball to its ASCII code. |- ||%||Take in input as number and set the value of the ball to it |- ||E||End the program. |- ||#mov||"mov" is a movement instruction (ex. >3). If the ball`s movement is the same as the direction specified by the movement instruction, then the instruction remembers the current value of the ball. If the ball's movement is different, then the balls value is set to what it is remembering. By default, this instruction remembers 0. |- ||<nowiki>|</nowiki>||Reverse the direction of the ball. |- ||Kmov||If the movement of the ball matches the movement instruction mov, then the ball passes through the instruction unchanged. Otherwise, the direction is reversed |- ||a||An "apioform" joins the hive. Increment the hive value by 1. |- ||f||An apioform leaves the hive to pollinate flowers. Decrement the hive value by 1. |- ||q||The queen leaves the hive, taking all apioforms with her. Set the hive value to 0. |- ||n||Nectar attract apioforms to or away from the hive. Set the hive value to the ball's value. |- ||H||The hive itself. Set the balls value to the hives value. |- ||Y[X,movA,movB]|| Run a simple if statement. If the value of the ball is below X then the ball moves according to movA. If not, then it moves according to movB. Both movA and movB are movement instructions. |- ||/|| Make the current line a comment, which is ignored. |- ||s|| Swap the balls value and the instructions value. By default, the instructions value is 0. |- ||L|| Read in a full line of text. Each time the ball goes over it, it spits out the next one. Terminated with a 0 value. If it is empty, it will read in a new line. |- ||R|| Set the ball's value to a random number between 0 and 255. |- ||S[num]|| When the ball first encounters this instruction, start a timer for "num" milliseconds. When the ball encounters the cell again, hold the ball until the timer is done, then releases it in the same direction it was going. |- ||St[num]|| When hit by the ball, opens string memory num, and send all future output there instead of printing to the terminal. |- ||ESt|| When hit by the ball, stop redirecting output to the currently open string memory and switches back to the regular terminal output. |- ||PSt[num]|| Print what is currently stored in string memory num. |} ===Writing Code=== Each line of code consists of 1 position and 1 instruction. For example: (0) >0 is at position 0 and the instruction is "Move forward in the 0th dimension". ==Code examples== ===Truth machine=== (0) >0 (1) % (2) Y[1,>0,>1] (2,1) P (2,2) <1 (3) P (4) E (thank you for code provided by truttle) ===Hello World=== Using only 83 instructions and 20 dimensions. (0) >0 {0,1} >0 {0,2} + {0,3} Y[72,>1,>0] {0,3|1,1} <0 {0,1|1,1} <1 {0,4} >2 {0,4|2,1} <0 {0,3|2,1} p {2,1} >2 {2,2} + {2,3} Y[101,>3,>2] {2,3|3,1} <2 {2,1|3,1} <3 {2,4} >4 {2,4|4,1} <2 {2,3|4,1} p {4,1} >4 {4,2} + {4,3} Y[108,>5,>4] {4,3|5,1} <4 {4,1|5,1} <5 {4,4} >6 {4,4|6,1} <4 {4,3|6,1} p {4,2|6,1} p {6,1} >6 {6,2} + {6,3} Y[111,>7,>6] {6,3|7,1} <6 {6,1|7,1} <7 {6,4} >8 {6,4|8,1} <6 {6,3|8,1} p {8,1} >8 {8,2} - {8,3} Y[33,>8,>9] {8,3|9,1} <8 {8,1|9,1} <9 {8,4} >10 {8,4|10,1} <8 {8,3|10,1} p {10,1} >10 {10,2} + {10,3} Y[119,>11,>10] {10,3|11,1} <10 {10,1|11,1} <11 {10,4} >12 {10,4|12,1} <10 {10,3|12,1} p {12,1} >12 {12,2} - {12,3} Y[112,>12,>13] {12,3|13,1} <12 {12,1|13,1} <13 {12,4} >14 {12,4|14,1} <12 {12,3|14,1} p {14,1} >14 {14,2} + {14,3} Y[114,>15,>14] {14,3|15,1} <14 {14,1|15,1} <15 {14,4} >16 {14,4|16,1} <14 {14,3|16,1} p {16,1} >16 {16,2} - {16,3} Y[109,>16,>17] {16,3|17,1} <16 {16,1|17,1} <17 {16,4} >18 {16,4|18,1} <16 {16,3|18,1} p {18,1} >18 {18,2} - {18,3} Y[101,>18,>19] {18,3|19,1} <18 {18,1|19,1} <19 {18,4} >20 {18,4|20,1} <18 {18,3|20,1} p {18,2|20,1} E ===Add 2 numbers=== Using a swap cell with 9 dimensions and 36 instructions. (this was... difficult to make) (0) >0 (1) % (2) >5 {0,2|5,1} >1 {0,2|1,1|5,1} >2 {0,2|1,1|2,1|5,1} >3 {0,2|1,1|2,1|3,1|5,1} <0 {1,1|2,1|3,1|5,1} <5 {0,1|1,1|2,1|3,1} s {1,1|2,1|3,1} >0 {0,2|1,1|2,1|3,1} % {0,3|1,1|2,1|3,1} Y[1,>0,>4] {0,4|1,1|2,1|3,1} >6 {0,4|1,1|2,1|3,1|6,1} <0 {0,1|1,1|2,1|3,1|6,1} <3 {0,1|1,1|2,1|6,1} <6 {0,3|1,1|2,1|3,1|4,1} - {0,3|1,1|2,1|3,1|4,2} >7 {0,3|1,1|2,1|3,1|4,2|7,1} <4 {0,3|1,1|2,1|3,1|7,1} <2 {0,3|1,1|3,1|7,1} <0 {0,1|1,1|3,1|7,1} <7 {0,1|2,1|3,1} >1 {0,1|1,2|2,1|3,1} >8 {0,1|1,2|2,1|3,1|8,1} <1 {0,1|1,1|2,1|3,1|8,1} >0 {0,3|1,1|2,1|3,1|8,1} <8 {0,1|1,1|3,1} >2 {0,1|1,1|2,2|3,1} + {0,1|1,1|2,3|3,1} >9 {0,1|1,1|2,3|3,1|9,1} <2 {0,1|1,1|2,1|3,1|9,1} <1 {0,1|2,1|3,1|9,1} <9 {0,1|1,1|2,1} >3 {0,1|1,1|2,1|3,2} P {0,1|1,1|2,1|3,3} E Planning image used to make this program: [[File:NDBALL.jpg]] ==Interpreters== [https://github.com/aspwil/NDBallSim/ NDBallSim on GitHub] [[Category:Languages]] [[Category:Implemented]] [[Category:Multi-dimensional languages]] [[Category:2020]]'
New page wikitext, after the edit (new_wikitext)
''''NDBall''', "N-Dimensional Ball" or NDB is an esolang made by [[User:Aspwil|User:Aspwil]] ([[User talk:Aspwil|talk]]) in 2020. This esolang came from the idea of a truly infinite-dimensional esolang. The problem is if one has infinite dimensions, users will still just use maybe two or three, because using higher dimensions is unnecessary. As such, the creator had to come up with a way to force those who want to make programs to use more dimensions. They did this by limiting the length of all the dimensions. Each dimension only has space for 5 instructions, if one wants to use more than that they will need more dimensions. ==Language Overview== NDBall is a language where a ball rolls around through multi-dimensional space to execute a program. The ball itself holds a value, a single-byte integer (0-255), and starts at 0. The ball can move in any dimension, but it can only move in one of them at a time, and each dimension is only 5 cells in length. The ball starts at position 0 in all dimensions. ===Position=== There are 2 ways to define a position. ====First Method: Point==== This defines a single point in space by putting all of its coordinates in a list. It is specified as: (a,b,c...) Example: (0,1,2) This is 0 in the zeroth dimension, 1 in the first dimension, and 2 in the second dimension. This method has a problem, however. If one wants to represent something that is in the 0th position for dimensions 0 to 15, but at a position of 3 for the 16th dimension, it must be written like this: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3) Now that is a lot of wasted zeros! As such, the second method should be used. ====Second Method: Vector List==== A list of coordinates, specified with dimension number and length in that dimension. It is specified as: {dimension,length|dimension,length...} The code from earlier is 3 in the 16th dimension so it can be written as: {16,3} This is the same position as before, but much easier to write and understand. ===Instructions=== {| class="wikitable" style="text-align:center" !Instruction !Effect |- ||>n||Move the ball forward in dimension n. |- ||<n||Move the ball backward in dimension n. |- ||+||Increment the value of the ball by one. |- ||-||Decrement the value of the ball by one. |- ||p||Print out the ASCII value associated with the value of the ball. |- ||P||Print out the value of the ball as a number. |- ||$||Take in input as a single character and set the value of the ball to its ASCII code. |- ||%||Take in input as number and set the value of the ball to it |- ||E||End the program. |- ||#mov||"mov" is a movement instruction (ex. >3). If the ball`s movement is the same as the direction specified by the movement instruction, then the instruction remembers the current value of the ball. If the ball's movement is different, then the balls value is set to what it is remembering. By default, this instruction remembers 0. |- ||<nowiki>|</nowiki>||Reverse the direction of the ball. |- ||Kmov||If the movement of the ball matches the movement instruction mov, then the ball passes through the instruction unchanged. Otherwise, the direction is reversed |- ||a||An "apioform" joins the hive. Increment the hive value by 1. |- ||f||An apioform leaves the hive to pollinate flowers. Decrement the hive value by 1. |- ||q||The queen leaves the hive, taking all apioforms with her. Set the hive value to 0. |- ||n||Nectar attract apioforms to or away from the hive. Set the hive value to the ball's value. |- ||H||The hive itself. Set the balls value to the hives value. |- ||Y[X,movA,movB]|| Run a simple if statement. If the value of the ball is below X then the ball moves according to movA. If not, then it moves according to movB. Both movA and movB are movement instructions. |- ||/|| Make the current line a comment, which is ignored. |- ||s|| Swap the balls value and the instructions value. By default, the instructions value is 0. |- ||L|| Read in a full line of text. Each time the ball goes over it, it spits out the next one. Terminated with a 0 value. If it is empty, it will read in a new line. |- ||R|| Set the ball's value to a random number between 0 and 255. |- ||S[num]|| When the ball first encounters this instruction, start a timer for "num" milliseconds. When the ball encounters the cell again, hold the ball until the timer is done, then releases it in the same direction it was going. |- ||St[num]|| When hit by the ball, opens string memory num, and send all future output there instead of printing to the terminal. |- ||ESt|| When hit by the ball, stop redirecting output to the currently open string memory and switches back to the regular terminal output. |- ||PSt[num]|| Print what is currently stored in string memory num. |} ===Writing Code=== Each line of code consists of 1 position and 1 instruction. For example: (0) >0 is at position 0 and the instruction is "Move forward in the 0th dimension". ==Code examples== ===Truth machine=== (0) >0 (1) % (2) Y[1,>0,>1] (2,1) P (2,2) <1 (3) P (4) E (thank you for code provided by truttle) ===Hello World=== Using only 83 instructions and 20 dimensions. (0) >0 {0,1} >0 {0,2} + {0,3} Y[72,>1,>0] {0,3|1,1} <0 {0,1|1,1} <1 {0,4} >2 {0,4|2,1} <0 {0,3|2,1} p {2,1} >2 {2,2} + {2,3} Y[101,>3,>2] {2,3|3,1} <2 {2,1|3,1} <3 {2,4} >4 {2,4|4,1} <2 {2,3|4,1} p {4,1} >4 {4,2} + {4,3} Y[108,>5,>4] {4,3|5,1} <4 {4,1|5,1} <5 {4,4} >6 {4,4|6,1} <4 {4,3|6,1} p {4,2|6,1} p {6,1} >6 {6,2} + {6,3} Y[111,>7,>6] {6,3|7,1} <6 {6,1|7,1} <7 {6,4} >8 {6,4|8,1} <6 {6,3|8,1} p {8,1} >8 {8,2} - {8,3} Y[33,>8,>9] {8,3|9,1} <8 {8,1|9,1} <9 {8,4} >10 {8,4|10,1} <8 {8,3|10,1} p {10,1} >10 {10,2} + {10,3} Y[119,>11,>10] {10,3|11,1} <10 {10,1|11,1} <11 {10,4} >12 {10,4|12,1} <10 {10,3|12,1} p {12,1} >12 {12,2} - {12,3} Y[112,>12,>13] {12,3|13,1} <12 {12,1|13,1} <13 {12,4} >14 {12,4|14,1} <12 {12,3|14,1} p {14,1} >14 {14,2} + {14,3} Y[114,>15,>14] {14,3|15,1} <14 {14,1|15,1} <15 {14,4} >16 {14,4|16,1} <14 {14,3|16,1} p {16,1} >16 {16,2} - {16,3} Y[109,>16,>17] {16,3|17,1} <16 {16,1|17,1} <17 {16,4} >18 {16,4|18,1} <16 {16,3|18,1} p {18,1} >18 {18,2} - {18,3} Y[101,>18,>19] {18,3|19,1} <18 {18,1|19,1} <19 {18,4} >20 {18,4|20,1} <18 {18,3|20,1} p {18,2|20,1} E ===Add 2 numbers=== Using a swap cell with 9 dimensions and 36 instructions. (this was... difficult to make) (0) >0 (1) % (2) >5 {0,2|5,1} >1 {0,2|1,1|5,1} >2 {0,2|1,1|2,1|5,1} >3 {0,2|1,1|2,1|3,1|5,1} <0 {1,1|2,1|3,1|5,1} <5 {0,1|1,1|2,1|3,1} s {1,1|2,1|3,1} >0 {0,2|1,1|2,1|3,1} % {0,3|1,1|2,1|3,1} Y[1,>0,>4] {0,4|1,1|2,1|3,1} >6 {0,4|1,1|2,1|3,1|6,1} <0 {0,1|1,1|2,1|3,1|6,1} <3 {0,1|1,1|2,1|6,1} <6 {0,3|1,1|2,1|3,1|4,1} - {0,3|1,1|2,1|3,1|4,2} >7 {0,3|1,1|2,1|3,1|4,2|7,1} <4 {0,3|1,1|2,1|3,1|7,1} <2 {0,3|1,1|3,1|7,1} <0 {0,1|1,1|3,1|7,1} <7 {0,1|2,1|3,1} >1 {0,1|1,2|2,1|3,1} >8 {0,1|1,2|2,1|3,1|8,1} <1 {0,1|1,1|2,1|3,1|8,1} >0 {0,3|1,1|2,1|3,1|8,1} <8 {0,1|1,1|3,1} >2 {0,1|1,1|2,2|3,1} + {0,1|1,1|2,3|3,1} >9 {0,1|1,1|2,3|3,1|9,1} <2 {0,1|1,1|2,1|3,1|9,1} <1 {0,1|2,1|3,1|9,1} <9 {0,1|1,1|2,1} >3 {0,1|1,1|2,1|3,2} P {0,1|1,1|2,1|3,3} E Planning image used to make this program: [[File:NDBALL.jpg]] ==Interpreters== [https://github.com/aspwil/NDBallSim/ NDBallSim on GitHub] [[Category:Languages]] [[Category:Implemented]] [[Category:Multi-dimensional languages]] [[Category:2020]]'
Unified diff of changes made by edit (edit_diff)
'@@ -20,5 +20,5 @@ This method has a problem, however. If one wants to represent something that is in the 0th position for dimensions 0 to 15, but at a position of 3 for the 16th dimension, it must be written like this: - (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3) + (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3) Now that is a lot of wasted zeros! '
New page size (new_size)
7451
Old page size (old_size)
7449
Lines added in edit (added_lines)
[ 0 => ' (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3)' ]
Unix timestamp of change (timestamp)
1622637805