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.
Doki!
- Not to be confused with Doki!+.
| Designed by | User:A random guy |
|---|---|
| Appeared in | 2026 |
| Memory system | variable-based |
| Computational class | Turing-complete |
| Reference implementation | Unimplemented |
| Influenced by | DDLC |
Doki! is a High-Level Turing Complete Esolang with Graphical and Auditory Output in the Tenebrian-Vocaloidian Transitionary Period and the Dokicene Epoch made by User: A random guy that's based off of the game Doki Doki Literature Club!/DDLC. It has a Hypercomputational and Quantum Computational extension named Doki!+. This DOES contain Spoilers, so beware.
Classes of Doki!
Doki! Has 5 classes, being Sayori, Yuri, Natsuki, Monika, and MC. Which all 5 classes fulfill different roles.
| Character/Class | Description |
|---|---|
| MC | I/O Operators and Type Conversion. |
| Sayori | Handles Text/String Operations, Error Handling, Ending the Program, and String Randomization! |
| Yuri | She handles Conditional Statements, Conditional Operators, Logical Operators, Modifying Variables or Lists, Clearing Variables, Defining Functions, ending the program prematurely, and locking or unlocking variables. She also can split pointers. |
| Natsuki | She handles List operations, and messing with Canvases! Plus breaking out of loops, locking and unlocking lists, and clearing lists. Did I also forget she can also make sets? |
| Monika | She handles Math, Variables, Images, Videos, TTS, Singing, Music... and also messes up Natsuki's Manga Collection. |
Acts of Doki!
There are 4 MAIN Acts in Doki!, with 1 special Act for Monika that can affect all characters except MC. Being Act 1, Act 2, Act 3, Act 4, and Act Post. These Act's Commands will be shown below with their respective classes:
Commands
There are 139 commands so far in Doki!, MC having 7 commands, Sayori having 14 commands, Yuri having 25 commands, Natsuki having 38 commands, and Monika having 54 commands. Below are all of the commands so far:
MC
| Command | Description |
|---|---|
| MC[ChooseOption]"Description Text" | Lets the User input something, String by Default. |
| MC[GivePoem]Variable/Type | Prints something. |
| MC[ConvertTo(Text/Number/Complex/Boolean/Unicode Value/ASCII Value)]Stuff | Converts whatever is in the parenthesis to a type. If a list is inserted into this command, it converts every element into that type. |
| MC[StringtoList]StringVariable | Turns a string with spaces between groups of characters into a list, treating each group as a element. If this is not in a [Var] command, it makes a new string variable named “List_String/Variablename”, else, it is named what [Var] names it as. |
| MC[ListtoString]List | Turns a list into a string with spaces between elements (turned into groups of text). If this is not in a [Var] command, it makes a new list named “String_Listname”, else, it is named what [Var] names it as. |
| MC[ListtoSet]List | Turns a list into a set. (Which effectively makes it no longer care about order) |
| MC[SettoList]Set | Turns a set into a list. (Effectively makes it now care about order) |
Sayori
| Act # | Command | Description |
|---|---|---|
| Act 1 | Act 1:Sayori[Hug!]String 1, String 2, String 3... | Concatenation. |
| Act 1 | Act 1:Sayori[LookforMyBestFriend!]"Substring", "String"/String Variable | Returns True if the substring is present in the selected string or variable, else it's False, with a frown. |
| Act 1 | Act 1:Sayori[EatCookie!]"Substring", "String"/Variable | Removes all instances of the substring from the selected string or variable. |
| Act 1 | Act 1:Sayori[Cheer!]“String"/Variable | Makes the value of a String/Variable be in ALL CAPS. |
| Act 1 | Act 1:Sayori[Tease!]"String"/Variable | Makes the value of a String/Variable be in Uppercase. |
| Act 1 | Act 1:Sayori[Rainclouds]"String"/Variable | Makes the value of a String/Variable be in lowercase. |
| Act 1 | Act 1:Sayori[HowLoooongIsWordAgain?]"String”/Variable | Checks the length of a string value. |
| Act 1 | Act 1:Sayori[Twirl! :D]”String” | Flips a String. |
| Act 1 | Act 1:Sayori[IOversleptAgain!]Variable | Makes the variable when printed, be printed on the same line as the last thing that was printed. |
| Act 4 | Act 4:Sayori[Corrupt]"String"/Variable | Randomizes every character in the value of the String/Variable to a random Unicode character. |
| Act 4 | Act 4:Sayori[HappyPlace] | If a error is detected in any line before this line, skip to the line after this one. |
| Act 4 | Act 4:Sayori[OpenEye]Value1, Value2, Value3... | Just like concatenation but it works for other types. |
| Act 4 | Act 4:Sayori[Debug]”String1”/Variable1, “String2”/Variable2, “String3”/Variable3… | Splits the value of a Variable or String’s characters to have spaces between them. |
| Act 4 | Act 4:Sayori[ThankYou] | Always needs to be at the end of every program to end it. |
Yuri
| Act # | Command | Description |
|---|---|---|
| Act 1 | Act 1:Yuri[If](Condition (Yuri))<(Stuff (Indented, Separate Line))> | A If Statement. |
| Act 1 | Act 1:Yuri[Else]<(Stuff (Indented, Separate Line))> | A Else Statement, always comes after the If Statement. |
| Act 1 | Act 1:Yuri[Equals]Value1, Value2 | Checks to see if 2 values/variables are equal to each other. |
| Act 1 | Act 1:Yuri[Greater]Value1, Value2 | Checks to see if 1 value/variable is greater than another. |
| Act 1 | Act 1:Yuri[Less]Value1, Value2 | Checks to see if 1 value/variable is less than another. |
| Act 1 | Act 1:Yuri[GreaterEquals]Value1, Value2 | Checks to see if 1 value/variable is greater than or equal to another. |
| Act 1 | Act 1:Yuri[LessEquals]Value1, Value2 | Checks to see if 1 value/variable is less than or equal to another. |
| Act 1 | Act 1:Yuri[SameSign]Value1, Value2 | Checks to see if 2 values/variables have the same sign. |
| Act 1 | Act 1:Yuri[And…]Value1, Value2 | A AND Gate. |
| Act 1 | Act 1:Yuri[Or…]Value1, Value2 | A OR gate. |
| Act 1 | Act 1:Yuri[N-Not!]Value1 | A NOT gate. |
| Act 2 | Act 2:Yuri[For]Amount<(Stuff (Indented, Separate Line))> | A For Loop, that loops Amount times. |
| Act 2 | Act 2:Yuri[For]Amount, Cut<(Stuff (Indented, Separate Line))> | A For Loop, that splits the pointer into one inside the for loop that stops when it completes, and the one that's after the for loop. (Does the printing in top down line order) |
| Act 2 | Act 2:Yuri[While](Condition)<(Stuff (Indented, Separate Line))> | A While Loop. |
| Act 2 | Act 2:Yuri[While](Condition), Cut<(Stuff (Indented, Separate Line))> | A While Loop, that splits the pointer into one inside the for loop that stops when it completes, and the one that's after the for loop. (Does the printing in top down line order). |
| Act 2 | Act 2:Yuri[Stab]Variable | Sets the Value of a Variable to Null/0. |
| Act 2 | Act 2:Yuri[Obsess]Variable | Makes the selected Variable unchangable, or also known as becoming Yuri's Obsession. |
| Act 2 | Act 2:Yuri[CalmDown]Variable | Makes the selected Variable if it was already Yuri's Obsession, no longer unchangable. |
| Act 2 | Act 2:Yuri[HeartPound]Variable/List, Value/List Elements | Changes the Variable's Value to a New Value, or makes the list have entirely new elements. |
| Act 2 | Act 2:Yuri[HeartPound]Variable, Input | Changes the Variable's Value to whatever the input is. |
| Act 2 | Act 2:Yuri[HeartPound]Variable, List, Index(n) | Changes the Variable's Value to the value of a selected index of a list. |
| Act 2 | Act 2:Yuri[StabSelf] | Ends Program Prematurely. |
| Act 4 | Act 4:Yuri[Define]"Name", ParaName1, ParaName2, ParaName3... ParaNamen, <Stuff> | Defines a function. Functions are in this format: Act 4:Yuri[Function Name]Stuff. |
| Act 4 | Act 4:Yuri[CompareASCII](Stuff) | Allows Yuri to use the Comparison Operator on ASCII characters. |
| Act 4 | Act 4:Yuri[CompareUni](Stuff) | Allows Yuri to use the Comparison Operator on Unicode characters. |
Natsuki
| Act # | Command | Description |
|---|---|---|
| Act 1 | Act 1:Natsuki[BakingIngredients]"Name", {Index0, Index1, Index2...} | Makes a list. If you want indexes from another list, use Listname_Index(n). |
| Act 1 | Act 1:Natsuki[AddIngredients]List1, List2, List3... Value1, Value2, Value3... | Appends Values1 and above from left to right to the selected lists. |
| Act 1 | Act 1:Natsuki[Smack!]List1, List2, List3... Value1, Value2, Value3... | Removes all instances of every value mentioned in the selected lists. |
| Act 1 | Act 1:Natsuki[Whack!]List1, List2, List3... Index1, Index2, Index3... | Removes the indexes mentioned in the selected lists. |
| Act 1 | Act 1:Natsuki[Outburst!]<Operation (Mark a space that the Indexes are taking up with Index for applying this operation too.)>, List1, List2, List3... | Applies the Operation to every index in the selected lists and makes a new list called NatsukiMerge_1stListname_(n) unless it is in a [Var] statement, then the name is whatever name [Var] gives it. |
| Act 1 | Act 1:Natsuki[Outburst!]<Command (Has AllIndex in the Command)>, List1, List2, List3... | Applies the Command in a way that combines every index on all referenced lists into one, and makes a new list called NatsukiMerge_1stListname_(n), unless it is in a [Var] statement, then the name is whatever name [Var] gives it. Any operations that can have any amount of values in it can have one AllIndex in it, unless if there is only 1 element in AllIndex. For operations requiring 1 input only, it will just apply the operation to every element in AllIndex. |
| Act 1 | Act 1:Natsuki[OrganizeManga]List1, List2, List3... | Sorts elements in all mentioned lists in order of UNICODE characters, from U+0000 to U+10FFFF, any Numbers and Booleans temporarily becomes strings and gets sorted before being converted back to normal. And nested Lists always are sorted by their first element's value. |
| Act 1 | Act 1:Natsuki[ParfaitGirls!]List | Gives the Maximum value of a list. |
| Act 1 | Act 1:Natsuki[W-Weirdo!!!]List | Gives the Minimum value of a list. |
| Act 1 | Act 1:Natsuki[CutCake]List1, List2, List3… | Splits all lists into their individual values and makes multiple variables representing each split list named (List Names)_CakeSlices which is a string showing every element in the list it’s represented in order, separated by a space between each element. |
| Act 1 | Act 1:Natsuki[MakeBakingSteps]List1, List2, List3... | Sorts elements in all mentioned lists in numerical order, only works for Numbers. |
| Act 1 | Act 1:Natsuki[CountIngredientsAmount]List | Gives the length of a list. |
| Act 1 | Act 1:Natsuki[MakeMangaCollection]"SetName", {{Element1, Element2, Element3... ElementN}} | Makes a mathematical multiset with elements defined by the user. (Order does not matter as {{1, 2, 3}} is basically the same as {{3, 2, 1}}. But they will print differently though.) |
| Act 1 | Act 1:Natsuki[ImInterestedInThisManga!]SetName, Element1, Element2, Element3... ElementN, Index(n)(Optional, really not exactly needed mathematically) | Makes a new element be in the Multiset. |
| Act 1 | Act 1:Natsuki[IDontLikeThisManga!]SetName, Element1, Element2, Element3... ElementN | Removes all instances of all the named elements. |
| Act 1 | Act 1:Natsuki[IDontLikeThisVolume!]SetName, Index(n (R/Z)) | Removes a "index" of a multiset. The index's n can actually have a real value. |
| Act 1 | Act 1:Natsuki[CountVolumesInManga]Set, Element | Counts how many of a specified element is in a set. If there are variables, then if the variable has a value that's the same as other elements in the set, then that will also be counted. |
| Act 1 | Act 1:Natsuki[LengthofMangaCollection]Set | Gives the length of a set, if the set is a real (R) set, then it gives the range instead. |
| Act 1 | Act 1:Natsuki[Argument!]Yuri[FunctionName], {{Z|Min, Max}} | Makes a integer (Z) set from a Min to a Max. |
| Act 1 | Act 1:Natsuki[Argument!]Yuri[FunctionName], {{R|Min, Max}} | Makes a real (R) set from a Min to a Max. |
| Act 1 | Act 1:Natsuki[Argument!]Yuri[FunctionName], {{Z}} | Makes a integer (Z) set going from negative infinity to positive infinity, CAN be converted into a list that's infinitely big. |
| Act 1 | Act 1:Natsuki[Argument!]Yuri[FunctionName], {{R}} | Makes a real (R) set going from negative infinity to positive infinity, CANNOT be converted into a list, as lists can only store a countably finite amount of things, and the Real Numbers are NOT countably finite. |
| Act 1 | Act 1:Natsuki[BringOutBakingDish]"Name", Width, Height | Makes a canvas with a Width and Height in Pixels. |
| Act 1 | Act 1:Natsuki[RemoveBakingDish]Name | Removes a named canvas. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Circle", Radius, x, y | Makes a Circle. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Ellipse", MinorRadius, MajorRadius, x, y | Makes a Ellipse. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Rect", Width, Height, x, y | Makes a Rectangle. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Polygon", Sides, x, y, StretchX, StretchY | Makes a Polygon. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Polygram", SidesNum, SidesDenom, x, y, StretchX, StretchY | Makes a Polygram. |
| Act 1 | Act 1:Natsuki[SprinkleDecoration]"Line", "LineName" x1, y1, x2, y2, StretchX, StretchY | Makes a line. |
| Act 1 | Act 1:Natsuki[ChangeMindAboutSprinkle]GraphicalVariable | Removes a Graphical Variable. |
| Act 1 | Act 1:Natsuki[FillWithIcing]"Color", "Line1", "Line2", "Line3"... | Fills a closed set of lines (Lines that form a closed shape) |
| Act 1 | Act 1:Natsuki[HelpMonikaWithPianoPractice...]"Name", {Sing/PlayInstrument 1, Sing/PlayInstrument 2, Sing/PlayInstrument 3... Sing/PlayInstrument n} | Allows multiple instruments/voices to play at the same time. |
| Act 2 | Act 2:Natsuki[Father]Layer | Exits out of a While or For Loop, and if nested, Layer determines how high up this exit operation will be performed. |
| Act 2 | Act 2:Natsuki[Cower]List | Sets all values in a list to Null/0. |
| Act 2 | Act 2:Natsuki[Neckbreak]List | Cuts a List in half and puts them in a new list that will define the the original List itself, and if the list has a odd amount of indexes, the first half will take the middle value. |
| Act 4 | Act 4:Natsuki[Clingy]List1, List2, List3… | Makes all the referenced lists into this command be unable to be modified, basically just like Python’s Tuple. |
| Act 4 | Act 4:Natsuki[MoveOn]List1, List2, List3… | Makes all referenced lists (tuples) be able to be modified again. |
| Act 4 | Act 4:Natsuki[BringTogether]List1, List2, List3… | Concatenation but for lists. Basically makes a new list with every element from each list in the order of the lists. |
Monika
| Act # | Command | Description |
|---|---|---|
| Act 1 | Act 1:Monika[Add]#1, #2, #3… | Adds all listed numbers together. |
| Act 1 | Act 1:Monika[Sub]#1, #2, #3… | Subtracts all listed numbers in sequential order. |
| Act 1 | Act 1:Monika[Mult]#1, #2, #3… | Multiplies all listed numbers together. |
| Act 1 | Act 1:Monika[Div]#1, #2 | Divides Number 1 by Number 2. |
| Act 1 | Act 1:Monika[Mod]#1, #2 | Does Number 1 Mod Number 2. |
| Act 1 | Act 1:Monika[Exp]Base, Exp | Does Base to the power of Exp. |
| Act 1 | Act 1:Monika[Log]Base, Num | Does the Logarithm in a chosen base of a number. |
| Act 1 | Act1:Monika[Par](Stuff) | Acts just like Parenthesis. |
| Act 1 | Act 1:Monika[MessUpMangaCollection]List 1, List2, List 3... | Randomly swaps all indexes with another index until all indexes are out of order, from 1st to last |
| Act 2 | Act 2:Monika[ZRand]Min, Max | Gives a random integer number in between Min and Max inclusive. |
| Act 2 | Act 2:Monika[RRand]Min, Max | Gives a random real number in between Min and Max inclusive. |
| Act 2 | Act 2:Monika[Bump+]Num | Bumps Num up by 1. |
| Act 2 | Act 2:Monika[Bump-]Num | Bumps Num down by 1. |
| Act 2 | Act 2:Monika[SetNumberstoBase(Real or Complex)]Num | Sets the Current Base to a New Base |
| Act 2 | Act 2:Monika[PlaceShift+]Num, Amount | Multiplies the Number by Base^Amount. |
| Act 2 | Act 2:Monika[PlaceShift-]Num, Amount | Multiplies the Number by Base^-Amount. |
| Act 2 | Act 2:Monika[Round+]Place, #1, #2, #3… | Rounds up all listed numbers to the nearest place value (Base^Place). |
| Act 2 | Act 2:Monika[Round-]Place, #1, #2, #3… | Rounds down all listed numbers to the nearest place value (Base^Place). |
| Act 2 | Act 2:Monika[Complex]a + bi | Makes a complex number with real a, and imaginary coefficient b. |
| Act 2 | Act 2:Monika[CompAdd]Comp1, Comp2, Comp3… | Adds all listed Complex Numbers together. |
| Act 2 | Act 2:Monika[CompSub]Comp1, Comp2, Comp3… | Subtracts all listed Complex Numbers sequentially. |
| Act 2 | Act 2:Monika[CompMult]Comp1, Comp2, Comp3… | Multiplies all listed Complex Numbers together. |
| Act 2 | Act 2:Monika[CompDiv]Comp1, Comp2 | Divides Complex Number 1 by Complex Number 2. |
| Act 2 | Act 2:Monika[CompMod]Comp1, Comp2 | Does Complex Number 1 Mod Complex Number 2. |
| Act 2 | Act 2:Monika[CompExp]CompBase, CompExp | Does a Complex Base to the power of a Complex Exp. |
| Act 2 | Act 2:Monika[CompLog]CompBase, CompNum | Does the Complex Logarithm in a chosen base of a complex number. |
| Act 2 | Act 2:Monika[CompRound+]Place, #1, #2, #3… | Rounds up all listed Complex Numbers to the nearest place value (Base^Place). |
| Act 2 | Act 2:Monika[CompRound-]Place, #1, #2, #3… | Rounds down all listed Complex Numbers to the nearest place value (Base^Place). |
| Act 3 | Act 3:Monika[Var]"Name", Value | Makes a variable named "Name" with a value. |
| Act 3 | Act 3:Monika[Var]"Name", Input(Line n) | Makes a variable named "Name" with it's value being whatever Input is in Line n. |
| Act 3 | Act 3:Monika[Var]”Name”, List, Index(n) | Sets a variable to the value of Index n in a specificed List. |
| Act 3 | Act 3:Monika[LCM]#1, #2, #3… | Does the LCM of every number/complex number listed. |
| Act 3 | Act 3:Monika[GCF]#1, #2, #3… | Does the GCF of every number/complex number listed. |
| Act 3 | Act 3:Monika[Sign]#1, #2, #3… | Does the sign of every number/complex number listed (-1, 0, or 1). |
| Act 3 | Act 3:Monika[Sin]Num | Does the Sine of a number/complex number. |
| Act 3 | Act 3:Monika[Cos]Num | Does the Cosine of a number/complex number. |
| Act 3 | Act 3:Monika[Tan]Num | Does the Tangent of a number/complex number. |
| Act 3 | Act 3:Monika[Cot]Num | Does the Cotangent of a number/complex number. |
| Act 3 | Act 3:Monika[Sec]Num | Does the Secant of a number/complex number. |
| Act 3 | Act 3:Monika[Csc]Num | Does the Cosecant of a number/complex number. |
| Act 3 | Act 3:Monika[Der]Yuri[Function] | Does the Derivative of a mathematically defined function, making a new one called Yuri[Der_Function]. |
| Act 3 | Act 3:Monika[Integral]Min, Max, Yuri[Function](Parameter1, Parameter2, Parameter 3... ParameterN) | Gives the value of the n-dimensional integral of a function with a minimum and a maximum. Minimum can be -infinity (-Inf) and the Maximum can be infinity (Inf). |
| Act 3 | Act 3:Monika[Integral]Yuri[Function](Parameter1, Parameter2, Parameter 3... ParameterN), "ConstantName", ContantValue | Does a n-dimensional indefinite integral with a constant that can be chosen and is treated as a new variable. |
| Act 3 | Act 3:Monika[Sum]Min, Max, Yuri[Function](Parameter1, Parameter2, Parameter 3... ParameterN) | Does the n-dimensional Sum of a function from a minimum to a maximum, the Maximum can be infinity (type Inf for it to even do that), and the minimum can be negative infinity (type -Inf). |
| Act 3 | Act 3:Monika[Product]Min, Max, Yuri[Function](Parameter1, Parameter2, Parameter 3... ParameterN) | Does the n-dimensional product of a function from a minimum to a maximum, the Maximum can be infinity (type Inf for it to even do that), and the minimum can be negative infinity (type -Inf). |
| Act 3 | Act 3:Monika[Limit]TargetValue1, TargetValue2, TargetValue3... TargetValueN, Yuri[Function](Parameter1, Parameter2, Parameter3... ParameterN) | A normal n-dimensional limit, all Target Values can be set to infinity or minus infinity. |
| Act 3 | Act 3:Monika[Limit+]TargetValue1, TargetValue2, TargetValue3... TargetValueN, Yuri[Function](Parameter1, Parameter2, Parameter3... ParameterN) | A normal n-dimensional right-handed limit, all Target Values cannot be set to infinity or negative infinity, infinity can already by done with the normal Limit and you cannot approach -infinity from the right. |
| Act 3 | Act 3:Monika[Limit-]TargetValue1, TargetValue2, TargetValue3... TargetValueN, Yuri[Function](Parameter1, Parameter2, Parameter3... ParameterN) | A normal n-dimensional left-handed limit, all Target Values cannot be set to infinity or negative infinity, -infinity can already by done with the normal Limit and you cannot approach +infinity from the left. |
| Act Post | Act Post:Monika[Speak]"IPA", "TTS" | Outputs IPA speech in a selected TTS. |
| Act Post | Act Post:Monika[PlayInstrument]Pitch (Hz) Can use Math), "Waveform"(.wav/Preset(Sine, Square, Saw, Triangle, Noise)), Length (In Milliseconds or Note type), Glissando to Next Note (0 is off, 1 is on), Volume, Decrescendo/Crescendo (Transitions from this notes volume to the next, 0 is on, 1 is off) | Plays a Note in a chosen Waveform, length, and volume, plus if the length/volume should transition to the next one's length/volume or not. |
| Act Post | Act Post:Monika[Sing]Pitch (Hz) (Lists of numbers makes it play multiple frequencies, Can use Math), Length (In Milliseconds or Note type), Glissando to Next Note (0 is off, 1 is on), Volume, Decrescendo/Crescendo (Transitions from this notes volume to the next, 0 is on, 1 is off), "IPA", TTS/Voice Program | Sings IPA symbols with a Pitch, Note Length, Volume, and if the Volume and Pitch should transition smoothly from one volume/pitch to another. |
| Act Post | Act Post:Monika[Tempo]BPM | Sets the Tempo for Notes and Speech to a BPM. |
| Act Post | Act Post:Monika[YourReality]"Audio File" (.mp3, .wav, or any audio format or directory.) | Plays an Audio File. |
| Act Post | Act Post:Monika[PlayVideo]"Video File"(Any Video Format or directory.), Scale Factor | Plays a Video File, which can be scaled from it’s original size. |
| Act Post | Act Post:Monika[Scene]"Image File"(Any Image Formator directory.), Width, Height | Displays an Image File with a defined Width and Height, if Width or Height is the only thing defined, the undefined parameter scales with the defined one, and if none are defined, it will set the image to it’s normal size. |
Other Things to Note about Doki!
Monika’s Math Operations and Sayori’s String Operations can be put as Values as long as such operations has a result.
For Conditions, Yuri's Conditional and Logical Operators can be used.
For Natsuki’s Outburst! Command, if it uses Index(n-m) or Index(n+m) inside the chosen operation or nested operations, then she will apply it in a range from Index m, to Index Length-m. If Index m is greater than Index Length-m, then Natsuki gives a error.
For Natsuki's SprinkleDecoration command, it automatically makes a variable linked to the shape it is associated with that can be modified by Yuri.
Errors in Doki!
MC
| Error | Reason |
|---|---|
| MC cannot write all of that for his poem! | When you try to print a infinitely long list/set. |
| MC doesn't know how to convert (Type1) to (Type2)! | When you try giving MC 2 types that cannot be converted. |
| MC doesn't think that those are numbers! | When you give a string that has anything but a number in it and try to convert it into a number. |
| MC doesn't think that is a Set/List/String! | Self-explanatory. |
Sayori
| Error | Reason |
|---|---|
| There's no one for me to Hug... :( | You didn't 2 values for Sayori's [Hug!] command. |
| Where is MC?! | You didn't put 2 values for Sayori's [LookforMyBestFriend!] command. |
| No cookies? | You didn't put 2 values for Sayori's [EatCookie!] |
| I forgot what I was supposed to do! | You left Sayori's [Cheer!], [Tease!], or [Rainclouds] command empty. |
| What was I supposed to measuring again? | You left Sayori's [HowLoooongIsWordAgain?] command empty. |
| Ow! I triiiiipped! | You left Sayori's [Twirl! :D] command empty. |
| I wanna sleep… 5 more minutes… | You left Sayori's [IOverSleptAgain!] command empty. |
| 938uruhf ndjk093-2?! | You left Sayori's [Corrupt] command empty. |
| hwbeoeop3934293023hef! | You left Sayori's [OpenEye] command empty. |
| 290012penedkndsn/sjhdjwbd? | You left Sayori's [Debug] command empty. |
| I… I fell… owie… | You left Sayori's [Twirl! :D] command empty. |
| My hug got rejected… :( | You gave Sayori's [Hug!] command a non-string type or variable. |
| I got lost… Where’s MC?! | You gave Sayori's [LookforMyBestFriend!!] command a non-string type or variable. |
| I dunno how to cheer/tease that person, MC… | You gave Sayori's [Cheer!] or [Tease!] command a non-string type or variable. |
| I… don’t know how to get these thoughts out of my head… | You gave Sayori's [Rainclouds!] command a non-string type or variable. |
| I don’t know how to find the length of that, Silly! | You gave Sayori's [HowLoooongIsWordAgain?] command a non-string type or variable. |
| Sayori spun out of control! | You gave Sayori's [Twirl! :D]command a non-string type or variable. |
| Sayori... somehow got insomnia???? She oversleeps! What have you done?! | You gave Sayori's [IOversleptAgain!] command a non-string type or variable. |
| [Error: Cannot Corrupt] | You gave Sayori's [Corrupt] command a non-string type or variable. |
| [Error: Project Libitina] | You gave Sayori's [OpenEye] command a non-string type or variable. |
| [Error: Cannot Debug] | You gave Sayori's [Debug] command a non-string type or variable. |
| I’m… I’m too overwhelmed! | You gave Sayori too many parameters for a command. |
Yuri
| Error | Reason |
|---|---|
| I… don’t know how to think about this, MC… | You make a If/Else command is left blank. |
| That was… unprofessional of me… s-sorry… | You make a Logical Operator’s inputs is either empty, partially empty, or is not comparing 2 Booleans. |
| It’s unsightly… isn’t it? | You make one or more of a Comparison Operator’s inputs empty, or it is comparing 2 different types. |
| I… I can’t do that! T-There’s nothing! | You gave literally nothing as the conditional for a While loop, or nothing for a For Loop. |
| I… want to show how much I love you… but… But I CAN’T! | You gave literally nothing for Yuri’s [Stab] command. |
| That… THAT IS MINE! | You tried modifying a unchangable variable. |
| My heart… keeps pounding… I can’t stop having feelings for you… | You either gave literally nothing for Yuri’s [HeartPound] command, or gave invalid types in the command for the Index. |
| What is your name… MC? | You didn’t give the function a name for Yuri’s [Define] command. |
| I… cannot compare that… | You gave an invalid input for Yuri’s [CompareASCII] or [CompareUni] command. |
| It’s… It’s too much! | You gave too much parameters for one of Yuri’s commands. |
Natsuki
| Error | Reason |
|---|---|
| Where’s my list of ingredients, dummy! | You left any of the parameters for Natsuki’s [BakingIngredients] command empty or an invalid type. |
| GIVE MY MANGA COLLECTION BACK! | You left any of the parameters for Natsuki’s [MakeMangaCollection] command empty or an invalid type. |
| Are you trying to RUIN my cupcakes, Baka?! | You did not have a list to append, don’t list anything to append to a list, nothing to get out of a list/set, don’t use a index to remove or add to a list, or don’t list a value to remove all instances of for a list. |
| You- YOU DUMMY! I WANT TO SMACK YOU FOR THAT! | You didn't give a valid name for a list/valid value OR you just leave the list/value part of Natsuki's [Smack!] command empty. |
| I- I would whack you right now… if you weren’t so… Nevermind! Ignore that! | You didn't give a valid name for a list/valid index OR you just leave the list/index part of Natsuki's [Whack!] command empty. |
| I AM… Forget it! | You either, don't use a valid operation, don't give a valid list, or don't even name a operation or list. |
| What am I supposed to organize, Dummy?! | You either, don't use a valid operation, don't give a valid list, or don't even name a operation or list. |
| HEY! WHAT DID YOU DO WITH MY FAVORITE MANGA, YOU JERK! | You put either nothing or a invalid/nonexistent list as a input to Natsuki's [ParfaitGirls!] command. |
| Maybe... maybe you are not a weirdo after all... Not like I like you or anything! Don't get any ideas! | You put either nothing or a invalid/nonexistent list as a input to Natsuki's [W-Weirdo!] command. |
| Where... WHERE IS THE CAKE?! I WAS GOING TO CUT THAT! | You put either nothing or a invalid/nonexistent list as a input to Natsuki's [CutCake] command. |
| Where's the manual?! | You put either nothing or a invalid/nonexistent list as a input to Natsuki's [MakeBakingSteps] command. |
| Where’s my new Manga Volume?! | You put either nothing or a invalid/nonexistent list as a input to Natsuki's [CountIngredientsAmount] command. |
| Where’s my Manga?! | You put either nothing or a invalid/nonexistent set or element as a input to Natsuki's [ImInterestedInThisManga!] command. |
| Thank god my Manga Collection doesn't have that Manga in it! That was horrible! | You put either nothing or a invalid/nonexistent set or element as a input to Natsuki's [IDontLikeThisManga!] command. |
| Thank god my Manga Collection doesn't have that Volume in it! | You put either nothing or a invalid/nonexistent set as a input to Natsuki's [IDontLikeThisVolume!] command. |
| What Collection am I counting again? Seriously! | You put either nothing or a invalid/nonexistent set or element as a input to Natsuki's [CountVolumesInManga] command. |
| Seriously? You brought nothing when I needed to see how long my collection was?! | You put either nothing or a invalid/nonexistent set as a input to Natsuki's [LengthofMangaCollection] command. |
| You- ... Fine! You win, Yuri! | You put either nothing or a invalid/nonexistent function, set, minimum, or maximum as a input to Natsuki's [Argument!] command. |
| Hey! Give me my Baking Dish back! I am making brownies, Dummy! | You didn’t put a name for Natsuki’s [BringOutBakingDish] command. |
| How big do you want the baking dish to be dummy?! I swear if it is going to be huge I am going to make sure you regret it! Baka! | You didn’t specify a width or height for Natsuki’s [BringOutBakingDish] Command, or you put something invalid for the width and height. |
| MC, what Baking Dish am I supposed to put away?! Tell me or else I might mess up on my baking! | When you do not specify a name for Natsuki’s [RemoveBakingDish] command. |
| WHAT AM I SUPPOSED TO SPRINKLE?! THAT ISN’T EVEN A THING! Maybe letting you choose the sprinkles was a bad idea! I want to just make it have a cat face, since you do NOT know how to put sprinkles on a Brownie! | If you put anything invalid for any variation of Natsuki’s [SprinkleDecoration] command. |
| I- I don’t know what’s wrong with these Brownies… the decoration doesn’t seem quite right! What did you do?! | You didn’t specify a graphical variable to remove OR you put a name that doesn’t exist. |
| Monika, I am not helping! | You put anything invalid for Natsuki’s [HelpMonikaWithPianoPractice] command. |
| F-Father… please… | You did not specify a layer for Natsuki’s [Father] command or use an invalid input. |
| I… I don’t know what to do! I— am scared… | You didn’t put a valid list name or just put nothing as the list for Natsuki’s [Cower] command. |
| [Natsuki.chr not found] | You didn’t put a valid list name or just out nothing as the list for Natsuki’s [Neckbreak] command. |
| No! Please! I… feel lonely… | When you give no input for Natsuki’s [Clingy] command. |
| That… is not what I want… | When you give a name for a list that does not exist for Natsuki’s [Clingy] command. |
| No! I cannot let that go! | When you put either nothing or a name for a list that doesn’t exist for Natsuki’s [MoveOn] Command. |
| Where’s everybody? | When you put a name for a list that doesn’t exist or nothing at all for Natsuki’s [BringTogether] command. |
Monika
| Error | Reason |
|---|---|
| Why did you put nothing for a mathematical operation? It’s like writing nothing as a poem. Not really a good way to introduce yourself to a literature club isn’t it? | When you have not enough inputs for a mathematical operator. (leaving something empty) |
| That’s not a proper way to do mathematics, MC, this is a Literature Club too so what’s the point old doing math? | When you try putting a string as an input for any of Monika’s mathematical operator. |
| What do you want me to say again, MC? I couldn’t quite understand you through the screen. | When you put either something invalid or literally nothing for the IPA and/or TTS part of Monika’s [Speak] command. |
| The Literature Club member isn't quite finished yet so… maybe you can join another time, MC! | WIP |
Programs in Doki!
Hello World
MC[GivePoem]"Hello World!" Act 4:Sayori[ThankYou]
Cat Program
MC[ChooseOption]"Type Something!" Act 3:Monika[Var]"Cat", Input(Line 1) MC[GivePoem]Cat Act 4:Sayori[ThankYou]
Truth Machine
MC[ConvertToNumber]MC[ChooseOption]”Choose 1 or 0.” Act 2:Monika[Var]”In”, Input(Line 1) Act 1:Yuri[If](Act 1:Yuri[Equals]In, 0< MC[GivePoem]0 Act 2:Yuri[Stabself] > Act 1:Yuri[Else]< Act 1:Yuri[If](Act 1:Yuri[Equals]In, 1< Act 2:Yuri[While](True)< MC[GivePoem]1 > Act 1:Yuri[Else]< Act 4:Sayori[HappyPlace] MC[GivePoem]”Invalid Input” > > Act 4:Sayori[ThankYou]
False Machine
MC[ConvertToNumber]MC[ChooseOption]”Choose 1 or 0.” Act 2:Monika[Var]”In”, Input(Line 1) Act 1:Yuri[If](Act 1:Yuri[Equals]In, 0< Act 2:Yuri[While](True)< MC[GivePoem]0 > > Act 1:Yuri[Else]< Act 1:Yuri[If](Act 1:Yuri[Equals]In, 1< MC[GivePoem]1 Act 2:Yuri[Stabself] Act 1:Yuri[Else]< Act 4:Sayori[HappyPlace] MC[GivePoem]”Invalid Input” > > Act 4:Sayori[ThankYou]
FizzBuzz
MC[ChooseOption]”Choose an ending number.”
Act 3:Monika[Var]”Countdown”,Input(Line 1)
Act 3:Monika[Var]”Num”, 1
Act 2:Yuri[While](Act 1:Yuri[N-Not!]Act 1:Yuri[Equals]Countdown, 0)<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Num, 15), 0)<
MC[GivePoem]”FizzBuzz”
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Num, 5), 0)<
MC[GivePoem]”Buzz”
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Num, 3), 0)<
MC[GivePoem]”Fizz”
>
Act 1:Yuri[Else]<
MC[GivePoem]Num
>
>
>
Act 2:Yuri[HeartPound]Num, Act 2:Monika[Bump+]Num
Act 2:Yuri[HeartPound]Countdown, Act 2:Monika[Bump-]Countdown
>
Act 4:Sayori[ThankYou]
Fibonacci Sequence
MC[Choose Option]"Give me a Number." Act 3:Monika[Var]"Num", Input(Line 1) Act 3:Monika[Var]”Fibn-2”, 0 Act 3:Monika[Var]"Fibn-1", 1 Act 3:Monika[Var]"Fibn", 1 Act 2:Yuri[For]Num< Act 2:Yuri[HeartPound]Fibn-2, Fibn-1 Act 2:Yuri[HeartPound]Fibn-1, Fibn Act 2:Yuri[HeartPound]Fibn, Act 1:Monika[Par](Act 1:Monika[Add] Fibn-2, Fibn-1) > MC[Give Poem]Fibn Act 4:Sayori[ThankYou]
Start of Doki Doki Literature Club! (DDLC Title Theme)
Act Post:Monika[BPM]120
Act 2:Yuri[For]1, Cut<
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-9, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg1”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-5, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-2, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg2”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-5, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-2, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-12, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg3”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-9, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-5, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg4”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-9, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-5, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-16, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg5”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-12, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-9, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg6”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-12, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-9, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-14, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg7”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-10, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-7, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg8”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-10, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-7, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-21, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg9”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-17, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-14, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg10”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-17, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-14, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-24, 12))), “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg11”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-21, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-17, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act 1:Natsuki[HelpMonikaWithPianoPractice…]”ChordIg12”, {Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-21, 12))), “Sine”, 0, “Eighth”, 100, 0), Act 1:Monika[Par](Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-17, 12))), “Sine”, 0, “Eighth”, 100, 0)}
Act 2:Natsuki[Father]1
>
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Quarter”, 100, 0
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Sixteenth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]8, 12))), “Sine”, 0, “Sixteenth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]7, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]7, 12))), “Sine”, 0, “Sixteenth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]8, 12))), “Sine”, 0, “Sixteenth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]7, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]10, 12))), “Sine”, 0, “Sixteenth”, 100, 0
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]3, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]5, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]7, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]Act 1:Monika[Par](Act 1:Monika[Mult]440, Act 1:Monika[Par](Act 1:Monika[Exp]2, Act 1:Monika[Par](Act 1:Monika[Div]-2, 12))), “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Eighth”, 100, 0
Act Post:Monika[PlayInstrument]10, “Sine”, 0, “Half”, 100, 0
99 bottles of beer
Act 3:Monika[Var]”Beer”, 99
Act 2:Yuri[For]99<
MC[GivePoem]Act 1:Sayori[Hug!]Act 1:Monika[Par](MC[ConvertToString]Beer), ” bottles of beer on the wall.”
MC[GivePoem]Act 1:Sayori[Hug!]Act 1:Monika[Par](MC[ConvertToString]Beer), ” bottles of beer.
MC[GivePoem]”Take one down, pass it around.”
Act 1:Yuri[If](Act 1:Yuri[Equals]Beer, 0)<
MC[GivePoem]”No bottles of beer on the wall.”
>
Act 1:Yuri[Else]<
MC[GivePoem]Act 1:Sayori[Hug!]Act 1:Monika[Par](MC[ConvertToString]Beer), ” bottles of beer on the wall.”
>
Act 4:Sayori[ThankYou]
A+B Problem
MC[ChooseOption]"Give me A's Value" Act 3:Monika[Var]"A", Input(Line 1) MC[ChooseOption]"Give me B's Value" Act 3:Monika[Var]"B", Input(Line 3) Act 3:Monika[Var]"Sum", Act 1:Monika[Par](Act 1:Monika[Add]A,B) MC[GivePoem]Sum Act 4:Sayori[ThankYou]
Disan Count
MC[ChooseOption]"Give me a value."
Act 3:Monika[Var]"Max", Input(Line 1)
Act 3:Monika[Var]"Count", 0
Act 2:Yuri[For]Max<
Act 1:[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Count, 2), 0)<
MC[GivePoem]Count
>
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
Act 4:Sayori[ThankYou]
Factorials
MC[ChooseOption]"Give me a number"
Act 3:Monika[Var]"n", Input(Line 1)
Act 3:Monika[Var]"n!", 1
Act 3:Monika[Var]"Count", 1
Act 2:Yuri[For]Act 1:Monika[Bump-]n<
Act 2:Yuri[HeartPound]n!, Act 1:Monika[Par](Act 1:Monika[Mult]n!, Count)
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
MC[GivePoem]n!
Act 4:Sayori[ThankYou]
Digital Root Calculator
MC[ChooseOption]"Give me a number"
Act 3:Monika[Var]"n", Input(Line 1)
Act 3:Monika[Var]"Strn", MC[ConvertToString]n
Act 2:Yuri[While](Act 1:Yuri[Greater]Act 1:Monika[Par](Act 1:Sayori[HowLoooongIsWordAgain?]Strn), 1)<
Act 4:Sayori[Debug]Strn
MC[StringtoList]Strn
MC[ConvertToNum]Strn
Act 2:Yuri[HeartPound]Strn, Act 1:Natsuki[Outburst!]<Act 1:Monika[Add]AllIndex>Strn
Act 2:Yuri[HeartPound]n, Strn
Act 2:Yuri[HeartPound]Strn, MC[ConvertToString]n
>
MC[GivePoem]n
Act 4:Sayori[ThankYou]
4-Function Calculator
MC[ChooseOption]”Give me the first number.”
Act 3:Monika[Var]”A”, Input(Line 1)
MC[ChooseOption]”Give me the second number.”
Act 3:Monika[Var]”B”, Input(Line 3)
MC[ChooseOption]”Give me the operation (+ - / *).”
Act 3:Monika[Var]”Operation”, Input(Line 5)
Act 1:Yuri[If](Act 1:Yuri[Equals]Operation, “+”)<
MC[GivePoem]Act 1:Monika[Par](Act 1:Monika[Add]A, B)
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Operation, “-“)<
MC[GivePoem]Act 1:Monika[Par](Act 1:Monika[Sub]A, B)
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Operation, “*”)<
MC[GivePoem]Act 1:Monika[Par](Act 1:Monika[Mult]A, B)
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Operation, “/”)<
MC[GivePoem]Act 1:Monika[Par](Act 1:Monika[Div]A, B)
>
Act 1:Yuri[Else]<
MC[GivePoem]”Invalid Operation.”
>
>
>
>
Project Euler
Problem 1
Act 3:Monika[Var]”Mult3”, 3
Act 3:Monika[Var]”Mult5”, 5
Act 3:Monika[Var]”Mult15”, 15
Act 3:Monika[Var]”Sum”, 0
Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Monika[Par](Act 1:Monika[Add]Mult3, 3), 1000)<
Act 2:Yuri[HeartPound]Sum, Act 1:Monika[Par](Act 1:Monika[Add]Sum, Mult3))
Act 2:Yuri[HeartPound]Mult3, Act 1:Monika[Par](Act 1:Monika[Add]Mult3,3
>
Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Monika[Par](Act 1:Monika[Add]Mult5, 5), 1000)<
Act 2:Yuri[HeartPound]Sum, Act 1:Monika[Par](Act 1:Monika[Add]Sum, Mult5)
Act 2:Yuri[HeartPound]Mult5, Act 1:Monika[Var](Act 1:Monika[Add]Mult5, 5)
>
Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Monika[Par](Act 1:Monika[Add]Mult15, 15), 1000)<
Act 2:Yuri[HeartPound]Sum, Act 1:Monika[Par](Act 1:Monika[Sub]Sum, Mult15)
Act 2:Yuri[HeartPound]Mult15, Act 1:Monika[Var](Act 1:Monika[Add]Mult15, 15)
>
MC[GivePoem]Sum
Act 3:Sayori[Thank You]
Problem 2
Act 3:Monika[Var]”Fibn-2”, 0 Act 3:Monika[Var]"Fibn-1", 1 Act 3:Monika[Var]"Fibn", 0 Act 3:Monika[Var]”Sum”, 0 Act 2:Yuri[While](Act 1:Yuri[Less]Fibn, 4000000)< Act 2:Yuri[HeartPound]Fibn-2, Fibn-1 Act 2:Yuri[HeartPound]Fibn-1, Fibn Act 2:Yuri[HeartPound]Fibn, Act 1:Monika[Add] Fibn-2, Fibn-1 Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Fibn,2),0< Act 2:Yuri[HeartPound]Sum, Act 1:Monika[Par](Act 1:Monika[Add]Sum, Fibn) > > MC[GivePoem]Sum Act 4:Sayori[Thank You]
Problem 3
MC[ChooseOption]”Give me a Number”
Act 3:Monika[Var]”Num”, Input(Line 1)
Act 2:Monika[Var]”Num”, MC[ConvertToNumber]Num
Act 3:Monika[Var]”SqrtNum”, Act 1:Monika[Exp]Num, Act 1:Monika[Par](Act 1:Monika[Div]1,2)
Act 3:Monika[Var]”Currnum”, 4
Act 3:Monika[Var]”Count”, 0
Act 3:Monika[Var]”Result”, 0
Act 3:Monika[Var]”Composite”, 0
Act 1:Natsuki[BakingIngredients]”Primes”, {2,3}
Act 1:Natsuki[BakingIngredients]”PFactors”, {}
Act 3:Monika[Var]”IndexPrime”, 0
Act 2:Yuri[While](Act 1:Yuri[LessEquals]Currnum, SqrtNum)<
Act 2:Yuri[For]Act 1:Monika[Par](Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]Primes, 1)<
Act 2:Yuri[HeartPound]IndexPrime, Primes, Index(Count)
Act 2:Yuri[HeartPound]Result, Act 1:Monika[Par](Act 1:Monika[Div]Currnum, IndexPrime)
Act 1:Yuri[If](Act 1:Yuri[Equals]Result, Act 1:Monika[Par](Act 2:Monika[Round+]0, Result))<
Act 2:Yuri[HeartPound]Composite, 1
Act 2:Natsuki[Father]1
>
Act 1:Yuri[Else]<
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
>
Act 1:Yuri[If](Act 1:Yuri[Equals]Composite, 0)<
Act 1:Natsuki[AddIngredients]Primes, Currnum
>
Act 2:Yuri[HeartPound]Currnum, Act 2:Monika[Bump+]Currnum
Act 2:Yuri[Stab]Composite
Act 2:Yuri[Stab]Count
>
Act 2:Yuri[For]Act 1:Monika[Par](Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]Primes, 1)<
Act 2:Yuri[HeartPound]IndexPrime, Primes, Index(Count)
Act 2:Yuri[HeartPound]Result, Act 1:Monika[Par](Act 1:Monika[Div]Num, IndexPrime)
Act 1:Yuri[If](Act 1:Yuri[Equals]Result, Act 1:Monika[Par](Act 2:Monika[Round+]0, Result))<
Act 1:Natsuki[AddIngredients]PFactors, IndexPrime
>
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
Act 3:Monika[Var]”Biggest PFactor”, PFactors, Index(Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]PFactors, 1)
MC[GivePoem]Biggest PFactor
Act 4:Sayori[ThankYou]
Problem 4
Act 3:Monika[Var]”ThreeNum”, 100
Act 1:Natsuki[BakingIngredients]”ThreeDigit”, {ThreeNum}
Act 2:Yuri[For]899<
Act 2:Yuri[HeartPound]Act 2:Monika[Bump+]ThreeNum
Act 1:Natsuki[AddIngredients]ThreeDigit, ThreeNum
>
Act 2:Yuri[HeartPound]ThreeNum, 0
Act 1:Natsuki[BakingIngredients]”ThreeNumProduct”, {}
Act 1:Natsuki[BakingIngredients]”Palindromes”, {}
Act 3:Monika[Var]”Currnum”, 10000
Act 3:Monika[Var]”Result”, 0
Act 3:Monika[Var]”Count”, 0
Act 3:Monika[Var]”Count3”, 0
Act 2:Yuri[While](Act 1:Yuri[Less]Currnum, Act 1:Monika[Par](Act 1:Monika[Exp]999, 2))<
Act 2:Yuri[While](Act 1:[N-Not!]Act 1:Yuri[Equals]Act 1:Sayori[HowLoooongIsWordAgain?]MC[ConverttoString]Currnum, Act 1:Sayori[HowLoooongIsWordAgain?]Act 1:Sayori[Twirl! :D]MC[ConverttoString]Currnum)<
Act 2:Yuri[HeartPound]Currnum, Act 2:Monika[Bump+]Currnum
>
Act 1:Natsuki[AddIngredients]Palindromes, Currnum
>
Act 2:Yuri[While](Act 1:Yuri[Less]Count, Act 1:Monika[Par](Act 1:Natsuki[CountIngredientsAmount]Palindromes))<
Act 2:Yuri[HeartPound]Currnum, Palindromes, Index(Count)
Act 2:Yuri[For]Act 1:Natsuki[CountIngredientsAmount]ThreeDigit<
Act 2:Yuri[HeartPound]ThreeNum, ThreeDigit, Index(Count3)
Act 2:Yuri[HeartPound]Result, Act 1:Monika[Par](Act 1:Monika[Div]Currnum, ThreeNum)
Act 1:Yuri[If](Act 1:Yuri[Equals]Result, Act 1:Monika[Par](Act 2:Monika[Round+]0, Result))<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Sayori[HowLoooongIsWordAgain?]MC[ConverttoString]Result, 3)<
Act 1:Natsuki[AddIngredients]ThreeNumProduct, Currnum
Act 2:Natsuki[Father]1
>
Act 2:Yuri[HeartPound]Count3, Act 2:Monika[Bump+]Count3
>
Act 2:Yuri[Stab]Count3
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
Act 3:Monika[Var]”BiggestNum”, Act 1:Natsuki[ParfaitGirls!]ThreeNumProduct
MC[GivePoem]BiggestNum
Act 4:Sayori[ThankYou]
Problem 5
Act 3:Monika[Var]"LeastComMult", 0 Act 2:Yuri[HeartPound]LeastComMult, Act 1:Monika[Par](Act 3:Monika[LCM]2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) MC[GivePoem]LeastComMult Act 4:Sayori[ThankYou]
Problem 6
Act 3:Monika[Var]"TriSquare", 1
Act 3:Monika[Var]"SquareTri", 1
Act 3:Monika[Var]"Count", 2
Act 2:Yuri[For]100<
Act 2:Yuri[HeartPound]TriSquare, Act 1:Monika[Par](Act 1:Monika[Add]TriSquare, Act 1:Monika[Par](Act 1:Monika[Exp]Count, 2))
Act 2:Yuri[HeartPound]SquareTri, Act 1:Monika[Par](Act 1:Monika[Add]SquareTri, Count)
Act 2:Yuri[HeartPound]Count, Act 1:Monika[Par](Act 2:Monika[Bump+]Count)
>
Act 2:Yuri[HeartPound]SquareTri, Act 1:Monika[Par](Act 1:Monika[Exp]SquareTri, 2)
Act 3:Monika[Var]"Diff", Act 1:Monika[Par](Act 1:Monika[Sub]SquareTri, TriSquare)
MC[GivePoem]Diff
Act 4:Sayori[ThankYou]
Problem 7
Act 3:Monika[Var]"Num", 4
Act 3:Monika[Var]"IndexPrime", 0
Act 3:Monika[Var]"Count", 0
Act 3:Monika[Var]"Result", 0
Act 3:Monika[Var]"Composite",0
Act 1:Natsuki[BakingIngredients]"Primes", {2,3}
Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Natsuki[CountIngredientsAmount]Primes, 9999)<
Act 3:Monika[Var]"SqrtNum", Act 1:Monika[Exp]Num, Act 1:Monika[Par](Act 1:Monika[Div]1,2)
Act 2:Yuri[While](Act 1:Yuri[LessEquals]IndexPrime, SqrtNum)<
Act 2:Yuri[For]Act 1:Monika[Par](Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]Primes, 1)<
Act 2:Yuri[HeartPound]IndexPrime, Primes, Index(Count)
Act 2:Yuri[HeartPound]Result, Act 1:Monika[Par](Act 1:Monika[Div]Num, IndexPrime)
Act 1:Yuri[If](Act 1:Yuri[Equals]Result, Act 1:Monika[Par](Act 2:Monika[Round+]0, Result))<
Act 2:Yuri[HeartPound]Num, Act 2:Monika[Bump+]Num
Act 2:Yuri[HeartPound]Composite, 1
Act 2:Natsuki[Father]2
>
Act 1:Yuri[Else]<
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
>
>
Act 1:Yuri[If](Act 1:Yuri[Equals]Composite, 0)<
Act 1:Natsuki[AddIngredients]Primes, Num
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 2:Monika[Bump+]Num)
>
Act 2:Yuri[Stab]Composite
Act 2:Yuri[Stab]Count
>
Act 3:Monika[Var]"Prime10001", Primes, Index(Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]Primes,1)
MC[GivePoem]Prime10001
Act 4:Sayori[ThankYou]
Problem 8
Act 1:Monika:”Number”, “7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450” Act 4:Sayori[Debug]Number MC[StringtoList]Number MC[ConverttoNumber]Number Act 1:Natsuki[Outburst!]Act 1:Monika[Mult]Index(n+13) Act 3:Monika[Var]”BiggestProduct”, Act 1:Natsuki[ParfaitGirls!]NatsukiMerge_Number MC[GivePoem]BiggestProduct Act 4:Sayori[ThankYou]
Problem 9
Act 3:Monika[Var]”a”, 1
Act 3:Monika[Var]”b”, Act 1:Monika[Par](Act 1:Monika[Div]Act 1:Monika[Par](Act 1:Monika[Par](Act 1:Monika[Sub]500000, Act 1:Monika[Par](Act 1:Monika[Mult]1000, a)), Act 1:Monika[Par](Act 1:Monika[Sub]1000, a))
Act 2:Yuri[While](Act 1:Yuri[N-Not!]Act 1:Yuri[Equals]b, Act 1:Monika[Par](Act 1:Monika[Round+]0, b))<
Act 2:Yuri[HeartPound]”a”, Act 1:Monika[Bump+]a
Act 3:Monika[Var]”b”, Act 1:Monika[Par](Act 1:Monika[Div]Act 1:Monika[Par](Act 1:Monika[Par](Act 1:Monika[Sub]500000, Act 1:Monika[Par](Act 1:Monika[Mult]1000, a)), Act 1:Monika[Par](Act 1:Monika[Sub]1000, a))
>
Act 3:Monika[Var]”c”, Act 1:Monika[Par](Act 1:Monika[Sub]1000, a, b)
Act 3:Monika[Var]”MultPyth”, Act 1:Monika[Par](Act 1:Monika[Mult]a, b, c
MC[GivePoem]MultPyth
Act 4:Sayori[ThankYou]
Problem 10
Act 3:Monika[Var]"Num", 4
Act 3:Monika[Var]"IndexPrime", 0
Act 3:Monika[Var]"Count", 0
Act 3:Monika[Var]"Result", 0
Act 3:Monika[Var]”Count2”, 0
Act 3:Monika[Var]"Composite",0
Act 1:Natsuki[BakingIngredients]"Primes", {2,3,5}
Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Natsuki[CountIngredientsAmount]Primes, 148930)<
Act 3:Monika[Var]"SqrtNum", Act 1:Monika[Exp]Num, Act 1:Monika[Par](Act 1:Monika[Div]1,2)
Act 2:Yuri[While](Act 1:Yuri[LessEquals]IndexPrime, SqrtNum)<
Act 2:Yuri[For]Act 1:Monika[Par](Act 1:Monika[Sub]Act 1:Natsuki[CountIngredientsAmount]Primes, 1)<
Act 2:Yuri[HeartPound]IndexPrime, Primes, Index(Count)
Act 2:Yuri[HeartPound]Result, Act 1:Monika[Par](Act 1:Monika[Div]Num, IndexPrime)
Act 1:Yuri[If](Act 1:Yuri[Equals]Result, Act 1:Monika[Par](Act 2:Monika[Round+]0, Result))<
Act 2:Yuri[HeartPound]Composite, 1
Act 1:Yuri[If](Act 1:Yuri[Or]Act 1:Monika[Par](Act 1:Yuri[Equals]Count2, 0), 1:Monika[Par](Act 1:Yuri[Equals]Count2, 6)<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 6)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Count2,2),1<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 4)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 1:Yuri[Else]<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 4)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 2:Natsuki[Father]2
>
>
Act 1:Yuri[Else]<
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
>
>
Act 1:Yuri[If](Act 1:Yuri[Equals]Composite, 0)<
Act 1:Natsuki[AddIngredients]Primes, Num
Act 1:Yuri[If](Act 1:Yuri[Or]Act 1:Monika[Par](Act 1:Yuri[Equals]Count2, 0), 1:Monika[Par](Act 1:Yuri[Equals]Count2, 6)<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 6)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 1:Yuri[Else]<
Act 1:Yuri[If](Act 1:Yuri[Equals]Act 1:Monika[Par](Act 1:Monika[Mod]Count2,2),1<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 4)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 1:Yuri[Else]<
Act 2:Yuri[HeartPound]Num, Act 1:Monika[Par](Act 1:Monika[Add]Num, 4)
Act 2:Yuri[HeartPound]Count2,Act:Monika[Par](Act 1:Monika[Mod](Act 2:Monika[Bump+]Count, 8))
>
Act 2:Natsuki[Father]2
>
>
Act 2:Yuri[Stab]Composite
Act 2:Yuri[Stab]Count
>
Act 3:Monika[Var]"Sum", Act 1:Natsuki[Outburst!]<Act 1:Monika[Add]AllIndex>Prime
MC[GivePoem]Sum
Act 4:Sayori[ThankYou]
Problem 13
Act 1:Natsuki[BakingIngredients]”ListSum” {37107287533902102798797998220837590246510135740250, 46376937677490009712648124896970078050417018260538, 74324986199524741059474233309513058123726617309629, 91942213363574161572522430563301811072406154908250, 23067588207539346171171980310421047513778063246676, 89261670696623633820136378418383684178734361726757, 28112879812849979408065481931592621691275889832738, 44274228917432520321923589422876796487670272189318, 47451445736001306439091167216856844588711603153276, 70386486105843025439939619828917593665686757934951, 62176457141856560629502157223196586755079324193331, 64906352462741904929101432445813822663347944758178, 92575867718337217661963751590579239728245598838407, 58203565325359399008402633568948830189458628227828, 80181199384826282014278194139940567587151170094390, 35398664372827112653829987240784473053190104293586, 86515506006295864861532075273371959191420517255829, 71693888707715466499115593487603532921714970056938, 54370070576826684624621495650076471787294438377604, 53282654108756828443191190634694037855217779295145, 36123272525000296071075082563815656710885258350721, 45876576172410976447339110607218265236877223636045, 17423706905851860660448207621209813287860733969412, 81142660418086830619328460811191061556940512689692, 51934325451728388641918047049293215058642563049483, 62467221648435076201727918039944693004732956340691, 15732444386908125794514089057706229429197107928209, 55037687525678773091862540744969844508330393682126, 18336384825330154686196124348767681297534375946515, 80386287592878490201521685554828717201219257766954, 78182833757993103614740356856449095527097864797581, 16726320100436897842553539920931837441497806860984, 48403098129077791799088218795327364475675590848030, 87086987551392711854517078544161852424320693150332, 59959406895756536782107074926966537676326235447210, 69793950679652694742597709739166693763042633987085, 41052684708299085211399427365734116182760315001271, 65378607361501080857009149939512557028198746004375, 35829035317434717326932123578154982629742552737307, 94953759765105305946966067683156574377167401875275, 88902802571733229619176668713819931811048770190271, 25267680276078003013678680992525463401061632866526, 36270218540497705585629946580636237993140746255962, 24074486908231174977792365466257246923322810917141, 91430288197103288597806669760892938638285025333403, 34413065578016127815921815005561868836468420090470, 23053081172816430487623791969842487255036638784583, 11487696932154902810424020138335124462181441773470, 63783299490636259666498587618221225225512486764533, 67720186971698544312419572409913959008952310058822, 95548255300263520781532296796249481641953868218774, 76085327132285723110424803456124867697064507995236, 37774242535411291684276865538926205024910326572967, 23701913275725675285653248258265463092207058596522, 29798860272258331913126375147341994889534765745501, 18495701454879288984856827726077713721403798879715, 38298203783031473527721580348144513491373226651381, 34829543829199918180278916522431027392251122869539, 40957953066405232632538044100059654939159879593635, 29746152185502371307642255121183693803580388584903, 41698116222072977186158236678424689157993532961922, 62467957194401269043877107275048102390895523597457, 23189706772547915061505504953922979530901129967519, 86188088225875314529584099251203829009407770775672, 11306739708304724483816533873502340845647058077308, 82959174767140363198008187129011875491310547126581, 97623331044818386269515456334926366572897563400500, 42846280183517070527831839425882145521227251250327, 55121603546981200581762165212827652751691296897789, 32238195734329339946437501907836945765883352399886, 75506164965184775180738168837861091527357929701337, 62177842752192623401942399639168044983993173312731, 32924185707147349566916674687634660915035914677504, 99518671430235219628894890102423325116913619626622, 73267460800591547471830798392868535206946944540724, 76841822524674417161514036427982273348055556214818, 97142617910342598647204516893989422179826088076852, 87783646182799346313767754307809363333018982642090, 10848802521674670883215120185883543223812876952786, 71329612474782464538636993009049310363619763878039, 62184073572399794223406235393808339651327408011116, 66627891981488087797941876876144230030984490851411, 60661826293682836764744779239180335110989069790714, 85786944089552990653640447425576083659976645795096, 66024396409905389607120198219976047599490197230297, 64913982680032973156037120041377903785566085089252, 16730939319872750275468906903707539413042652315011, 94809377245048795150954100921645863754710598436791, 78639167021187492431995700641917969777599028300699, 15368713711936614952811305876380278410754449733078, 40789923115535562561142322423255033685442488917353, 44889911501440648020369068063960672322193204149535, 41503128880339536053299340368006977710650566631954, 81234880673210146739058568557934581403627822703280, 82616570773948327592232845941706525094512325230608, 22918802058777319719839450180888072429661980811197, 77158542502016545090413245809786882778948721859617, 72107838435069186155435662884062257473692284509516, 20849603980134001723930671666823555245252804609722, 53503534226472524250874054075591789781264330331690}
Act 2:Yuri[HeartPound]ListSum, Act 1:Monika[Par](Act 1:Sayori[EatCookie!]" ", Act 1:Monika[Par](Act 1:Natsuki[Whack!]Act 1:Monika[Par](MC[StringtoList]Act 4:Sayori[Debug]MC[ListtoString]Act 1:Natsuki[Outburst!]<Act 1:Monika[Add]AllIndex>ListSum), 10, 11, 12, 13, 14, 15 16, 17 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99))
MC[GivePoem]ListSum
Act 4:Sayori[ThankYou]
Problem 16
Act 1:Monika[Var]”TwoPower”, Act 1:Monika[Par](Act 1:Monika[Exp]2, 1000) Act 2:Yuri[HeartPound]TwoPower, MC[StringtoList]Act 4:Sayori[Debug]MC[ConverttoString]TwoPower Act 1:Natsuki[Outburst!]<Act 1:Monika[Add]AllIndex>TwoPower MC[GivePoem]TwoPower Act 4:Sayori[ThankYou]
Problem 20
Act 3:Monika[Var]”100!”, 1 Act 2:Yuri[For]99< Act 2:Yuri[HeartThump]100!, Act 1:Monika[Par](Act 1:Monika[Mult]100!, Act 2:Monika[Bump+]100!) > Act 3:Monika[Var]”DigitSum”, MC[ConverttoNumber]MC[ListtoString]Act 1:Natsuki[Outburst!]<Act 1:Monika[Add]AllIndex>MC[StringtoList]Act 4:Sayori[Debug]MC[ConverttoString]100! MC[GivePoem]DigitSum Act 4:Sayori[ThankYou]
Problem 25
Act 3:Monika[Var]”Fibn-2”, 1 Act 3:Monika[Var]”Fibn-1”, 1 Act 3:Monika[Var]”Fibn”, 1 Act 3:Monika[Var]”Index”, 2 Act 2:Yuri[While](Act 1:Yuri[Less]Act 1:Sayori[HowLoooongisWordAgain?]MC[ConverttoString]Fibn, 1000)< Act 2:Yuri[HeartPound]Fibn, Act 1:Monika[Add]Fibn-1, Fibn-2 Act 2:Yuri[HeartPound]Fibn-2, Fibn-1 Act 2:Yuri[HeartPound]Fibn-1, Fibn Act 2:Yuri[HeartPound]Index, Act 1:Monika[Bump+]Index > MC[GivePoem]Index Act 4:Sayori[ThankYou]
Problem 28
Act 3:Monika[Var]”Sum”, 1
Act 3:Monika[Var]”PlusAmount”, 2
Act 2:Yuri[For]500<
Act 2:Yuri[For]4<
Act 2:Yuri[HeartThump]Sum, Act 1:Monika[Par](Act 1:Monika[Add]Sum, PlusAmount)
>
Act 2:Yuri[HeartThump]PlusAmount, Act 1:Monika[Par](Act 1:Monika[Add]PlusAmount, 2
>
MC[GivePoem]Sum
Act 4:Sayori[ThankYou]
Problem 48
Act 3:Monika[Var]”SelfPowerSum”, 0
Act 3:Monika[Var]Count, 1
Act 2:Yuri[For]1000<
Act 2:Yuri[HeartPound]SelfPowerSum, Act 1:Monika[Par](Act 1:Monika[Add]SelfPowerSum, Act 1:Monika[Par](Act 1:Monika[Exp]Count, Count))
Act 2:Yuri[HeartPound]Count, Act 2:Monika[Bump+]Count
>
Act 1:Natsuki[BakingIngredients]”Digits”, MC[StringtoList]Act 4:Sayori[Debug]MC[ConverttoString]100!
Act 3:Monika[Var]”LastDigits”, Act 1:Monika[Par](Act 1:Sayori[Hug!]Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-10), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-9), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-8), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-7), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-6), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-5), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-4), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-3), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-2), Digits_Index(Act 1:Natsuki[CountIngredientsAmount]Digits-1))
MC[GivePoem]LastDigits
Act 4:Sayori[ThankYou]