PUBERTY, 369 bytes
It is May 1, 2018, 3:01:04 PM.Y is in his bed, bored.His secret kink is J.Soon the following sounds become audible.oh yeah yeah yeah hrg fap yeah yeah yeah fap yeah fap yeah yeah mmf yeah yeah yeah hrg yeah hrg fap yeah yeah yeah yeah fap yeah fap yeah mmf yeah yeah yeah yeah yeah yes yeah yeah yeah yeah yeah hrg fap yeah fap yeah fap yeah yeah yeah yeah mmf yeah mmf
Ungolfed
It is May 1, 2018, 3:01:04 PM.
Yhprum is in his bed, bored.
His secret kink is humaninteraction.
Soon the following sounds become audible.
oh yeah yeah yeah
hrg
fap yeah yeah yeah fap yeah fap yeah yeah
mmf
yeah yeah yeah
hrg
yeah
hrg
fap yeah yeah yeah yeah fap yeah fap yeah
mmf
yeah yeah yeah yeah yeah
yes
yeah yeah yeah yeah yeah
hrg
fap yeah fap yeah fap yeah yeah yeah yeah
mmf
yeah
mmf
This was very much harder than I expected it to be using this language.
Explanation
PUBERTY is a wonderful language. It has 6 registers (A, B, C, D, E, F) and one register pointer, all initialized to 0. At the end of each instruction, REGPTR %= 6 and REG[REGPTR] %= 256.
These are the commands used in this program:
- oh reads an ASCII character and stores its value into the current register
- yeah increments REGPTR by 1
- hrg...mmf loops until the current register has a value of zero
- fap increments the current register by 1
- yes prints the ASCII char corresponding to the value of the current register
The program starts with the header - the first four lines
It is May 1, 2018, 3:01:04 PM.
This sets register D to the Unix timestamp of the date % 256. In this case, we set it to 48. This statement is required
Yhprum is in his bed, bored.
This initializes register C to 6, the number of chars in the name, but we don't use this at all. This statement is required.
His secret kink is humaninteraction.
This line is where you declare all your kinks, if you want to learn about what they do, check out the esolang page since we don't use them here. This statement is supposed to be optional, but the interpreter wouldn't let me run without it (would've been 348 bytes), so here it is.
Soon the following sounds become audible.
Required line, does nothing.
oh yeah yeah yeah
hrg
fap yeah yeah yeah fap yeah fap yeah yeah
mmf
yeah yeah yeah
read in a 0 or 1, then loop until $D is zero while incrementing $A and $B. This leaves us with $A containing ASCII value 0 or 1, depending on what was inputted and $B containing 208. Then move REGPTR back to A
hrg
yeah
hrg
fap yeah yeah yeah yeah fap yeah fap yeah
mmf
yeah yeah yeah yeah yeah
yes
In the inner loop, move REGPTR to $B (which has the value 208) and loop until it is zero while incrementing $A and $F. This leaves us with $A containing 48 or 49 (the ASCII codes for 0 or 1) and F containing 48. Then print $A, which will output a 0 or 1 depending on which one was inputted.
yeah yeah yeah yeah yeah
hrg
fap yeah fap yeah fap yeah yeah yeah yeah
mmf
yeah
mmf
Now we move REGPTR to $F and loop until that is zero while incrementing $A and $B. This leaves us with $A containing the ASCII value 0 or 1 and $B containing 208, just like it had at the start of the loop. The loop then exits if $A == 0 or loops infinitely if $A == 1.
This is my first codegolf answer so excuse any mistakes I made pls.