Guess

From Esolang
Jump to navigation Jump to search

Intro

Guess is the second esolang experiment by User:Helpeesl starting on June 1st 2025 and this time you’re going to be trying to figure out the commands

How this’ll work

This experiment will start with the truth machine and you can

*ask for programs that are either well known or explained in detail.
*create a theorized command list that I’ll grade on how accurate it is.

What gets your edit reverted

You change other people’s command lists
You change the naming scheme of this experiment 
You try to credit someone for something another person did

If you do any of these things, your edit will be reverted.

Programs

Program 1: truth-machine

?1=$
_+?1
1@?1

Program 2: Hello, world! (asked for by User:Hotcrystal0)

_+«Hello, world!»

Program 3: FizzBuzz (asked for by User:Gapples2)

#1=0 #2=-2 #3=-4
#1+1 #2+1 #3+1 ?2=#2 ?3=#3
3@?2 5@?3 _+#1 4@1
#2-3 _+«Fizz» 5@?3
#4=10 #4>"4 _+"4 1@1
#3-5 _+«Buzz» 4@1

Program 4: Fibonacci Sequence (asked for by User:Hotcrystal0)

#1=1 #2=1 #3=10 #3>"3
#3=#2 #3+#1 _+#1 _+"3 #2=#3 #1=#2 1@1

Program 5: deadfish interpreter (asked for by User:Hotcrystal0)

"2=$
#2="2 #2-1 "3="2 !"3 "3-#2 "2-1 !`1 `1+"3 !`1 1@"2 \1=1 
`2=`1 `1-1 "2=`2 "3="2 "3-«i» ?1="3 !?1 "3="2 "3-«d» ?2="3 !?2 "3="2 "3-«s» ?3="3 !?3
"3="2 "3-«o» ?4="3 !?4 "3="2 "3-«h» ?5="3 !?5 5@?1 6@?2 7@?3 8@?4 9@?5
`2-1 2@1
\1+1 4@1
\1-1 4@1
/\1 \1+\1 *\1 4@1
#2=\1 #2>"2 _+"2 4@1

Program 6: Disan count (asked for by User:TheCatFromGithub)

#1=0 #2=$ #3=-1 #4=10 #4>"1 2@1
_+#1 _+« is even!» _+"1 #3=-1 3@1
#1+1 #3+1 #2-1 1@#3
2@#2

Program 7: bf interpreter (asked for by User:I am islptng)

"2=$ #0=30000 \11=0
#2="2 #2-1 "3="2 !"3 "3-#2 "2-1 !`1 `1+"3 !`1 1@"2 !`2 `2+«» !`2
`4+0 #0-1 ?0=#0 2@?0
18@?11
`2=`1 `2=`3 `2-1 !`2 `2+`3 !`2 19@?11
"2=`1 "3="2 "3-«+» ?1="3 !?1 "3="2 "3-«-» ?2="3 !?2
"3="2 "3-«<» ?3="3 !?3 "3="2 "3-«>» ?4="3 !?4 "3="2 "3-«,» ?5="3 !?5 "3="2 "3-«.» ?6="3 !?6
"3="2 "3-«[» ?7="3 !?7 "3="2 "3-«]» ?8="3 !?8 "3="2 "3-«» ?10="3 !?10
9@?9 10@?1 11@?2 12@?3 13@?4 14@?5 15@?6
16@?7 17@?8 25@?10 3@1
#10=`4 `4-1 #10+1 `4+#10 3@1
#10=`4 `4-1 #10-1 `4+#10 3@1
#10=`4 `4-1 !`4 `4+#10 !`4 3@1
!`4 #10=`4 `4-1 !`4 `4+#10 3@1
#10=`4 `4-1 "10=$ "10>#10 `4+#10 3@1
#10=`4 #10>"10 _+"10 3@1
\10=`4 \11+1 /\10 /\11 \10+\11 *\11 *\10 \10>?9 \10>?11 3@1 
\10=`4 \11-1 /\10 /\11 \10+\11 *\11 *\10 \10>?9 \10>?11 3@1
!`2 4@1
!`2 5@1

Program 8: Quine (asked for by User:Hotcrystal0)

Program 9: Cat (asked for by user:TheCatFromGithub)

"1=$ _+"1 0@1

Command lists

Command list 1 (by User:Hotcrystal0)

« starts a string
» ends a string
$ get user input
?x Boolean variable x
#x integer variable x
"x string variable x
\x some other type of variable x
`x stack variable x
a+b adds b to a
a-b subtracts b from a
x@y jump to somewhere if y is true
_ reference for the output
! NOT operator
x>y set y to the ASCII value of x

Grades for each

« Correct
» Correct
$ Correct
?x Correct
#x Correct
"x Correct
\x Mostly correct
`x Correct
a+b Correct
a-b Correct
x@y Correct
_ Correct
! Correct but too specific 
x>y Correct but too specific 

Command list 2 (by User:PkmnQ) (Partial)

?1 Some sort of variable

Grades for each

?1 Mostly correct

Command list 3 (by User:Gapples2)

$ Reference to input
_ Reference to output
?x Reference to boolean x
#x Reference to integer x
"x Reference to string x
`x Reference to stack x
\x Reference to loop counter x
«x» Create string with contents x
!x Invert x (boolean, integer) / reverse x (string, stack)
/x Repeat code between this and *x variable x times (number of loops don't change, even if variable x is modified within the loop)
*x End marker for /x
x=y Set x to y (boolean, integer, string) / set x to length of y (integer = string) / set x to top of y (stack)
x+y Add y to x (integer, string) / push y to x (stack)
x-y Subtract y from x (integer - integer, string - string) / slice y characters off the end of x (string - integer) / pop y values from x (stack)
x>y Explicit cast from x to y
x@y Jump to line x (0-indexed) if y is truthy

Grades

$ Correct
_ Correct
?x Correct 
#x Correct
"x Correct 
`x Correct
\x Incorrect
x=y Correct
x+y Correct
x-y Correct
x@y Correct for half
«x» Correct
!x Correct
x>y Correct
/x Absolutely Incorrect 
*x Absolutely Incorrect 

Command list 4 (by User:I am islptng)

Take the deadfish interpreter:

0 "2=$ Get user input and store in "2
1 #2="2 #2-1 "3="2 !"3 "3-#2 "2-1 !`1 `1+"3 !`1 1@"2 \1=1 
2 `2=`1 `1-1 "2=`2 "3="2 "3-«i» ?1="3 !?1 "3="2 "3-«d» ?2="3 !?2 "3="2 "3-«s» ?3="3 !?3
3 "3="2 "3-«o» ?4="3 !?4 "3="2 "3-«h» ?5="3 !?5 5@?1 6@?2 7@?3 8@?4 9@?5
4 `2-1 2@1 
5 \1+1 4@1 for command "i"
6 \1-1 4@1 for command "d"
7 /\1 \1+\1 *\1 4@1 for command "s"
8 #2=\1 #2>"2 _+"2 4@1 for command "o"

Therefore, I guess:

There exists implicit type conversion.
Convert a string/list to a number results into the length of the string.
========
«x» Creates the string x
#x  Reference for number variable x
?x  Reference for bool variable x
"x  Reference for string variable x
\x  Reference for list variable x
_   Reference for output
$   Reference for input
x=y Set y to t
x+y Add y to x
x-y Subtract y from x
x@y Jumps to line x(0-indexed) if y
x>y Convert number x to ASCII and set it to y
!x  Invert boolean x
*x  Multiply the items in a list
========Due to lack of information, I can't guess those:
`x  Reference to ?????(type) variable x
/x

Grades

«x» Correct
#x Mostly correct
?x Correct
"x Correct
\x Mostly incorrect
_ Correct
$ Correct
x=y Somewhat incorrect
x+y Correct
x-y Correct
x@y Correct
x>y Correct but too specific
!x Correct but too specific
*x Incorrect 
`x Mostly correct and right type length
/x Incorrect

Command list 5 (by User:MihaiEso)

I guess:

_ Begins the program
+ Begins a string
« Opening quote
» Closing quote
x@x Does a modulo on a number
? If statement
x=y Sets x to value of y
! Boolean NOT
` Boolean XOR
$ Asks for user input
x+x Adds x with the value of x
x-x Subtracts x with the value of x

(A second time):

x@x Jumps to the line specified if the condition has been done at the line specified

Grades:

_ Absolutely incorrect 
+ Absolutely incorrect 
« Mostly correct
» Mostly correct
x@x Absolutely incorrect 
? Somewhat correct 
x=y Mostly correct 
! Correct but too specific 
` Absolutely incorrect 
$ Correct
x@x (2nd time) Almost correct
x+x Correct*
x-x Correct*

Command list 6 by PSTF

There are 5 data types, #number, "string, ?boolean, \array(?), and `stack(??).
«Fick dich!»: A string literal.
_ is output, $ is input.
x@y jumps to xth line(0-index) if y returns True, otherwise it does nothing.
x+y and x-y is same as arithmetic.
x=y does same thing in Python. But if y is a stack, stack top will be the value of x, and if y is a string then return length to x.
*x is a multiplication.
!x inverts x, such as 3 <-> -3, true <-> false, and a string literal or an array/stack will be reversed.
x>y is a forced and temporary type conversion.
/x have no detail currently.

Second time:

\x means a random type of variable, but I'm sure that it is not an array.
/x may be a looping script or a conditional script.
x>y is an explicitly casting.
?1 is boolean TRUE, and ?0 is FALSE.
We use numbers as variable name(?).

Third time:

/x may be something about arithmetic.
\x currently have no enough detail so I can't guess it.
*x returns x²(?).

Fourth time:

\x is not an array and it have no enough detail to guess.
*x is a calculation about multiplication/AND/exponent/intersection.
1 and 0 can be used as TRUE and FALSE.
We use decimal system and there currently have NO floating numbers(we operate everything on integer).

Fifth time:

There are float numbers(represented by fractions) but currently no program used them.
*x is a calculation about AND(boolean)/exponent(number).
$ can be used as a value, which represents information from STDIN(or anywhere to input).

Grades

# Mostly correct
" Correct
? Correct
\ Incorrect
` Correct
«Fick dich» Correct
_ Correct
$ Correct 
x@y Correct
x+y Mostly correct
x-y Mostly correct
x=y Correct
*x Almost Incorrect
!x Correct
x>y Somewhat correct
/x Only if x=1
.. Second time ..
\x Somewhat correct
/x Absolutely incorrect 
x>y Correct
?1 Somewhat incorrect
?0 Somewhat incorrect
(Numbers as var names) Correct
.. Third time ..
/x Not basic but correct but too specific 
\x Absolutely incorrect 
*x Incorrect
.. Fourth time ..
\x Somewhat correct
*x Only the second third is true
1=T 0=F: Correct
Decimal: Correct
No fractions: Incorrect
.. Fifth time ..
No-fractions-used-currently Incorrect
*x Second half only(Ones you provided)
$ Already stated right under _(Correct)

See also