# HCUTCL Everyone in the hackclub slack uses one thing : custom emojis. Kind of like a language that universal among hackclubbers. So i thought i would also make it into a programming language :) ## Plans This started as just a brainfuck substitution (it still is for now), but it's gonna be more than that : - [x] Uses a slack bot as it's interface - [x] Uses Hackclub's emojis - [x] Custom Interpreter in Python, Not from a translation to Brainfuck but directly in HCUTCL - [ ] (Maybe) API for the compiler/interpreter ? - [x] Custom `.` from brainfuck alternative - [x] Different Emojis for Variants : Output in ASCII, Hex? or Number - [x] Input : use 2 Emojis to Open and close the input. - [x] Help command that uses ***Block kit*** *(Block kit is required for #thunder)* ## Definitions Emoji | Image of the Emoji | Purpose | Closest Brainfuck Equivalent :-----|:------------------:|:--------|:---------------------------- :upvote:||Increment the data pointer by one (to point to the next cell to the right).|`>` :downvote:||Decrement the data pointer by one (to point to the next cell to the left).|`<` :yay:||Increment the byte at the data pointer by one.|`+` :heavysob:||Decrement the byte at the data pointer by one.|`-` :pf:||Output the byte at the data pointer as an ASCII Character.|`.` :sadge:||Output the byte at the data pointer as a Number.|`.` :3c:||Accept one byte of input, storing its value in the byte at the data pointer.|`,` :dino-drake-yea:||If the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching :dino-drake-nah: command.|`[` :dino-drake-nah:| |If the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching :dino-drake-yea: command. |`]` :uuh:||Open the input field which will be used to give data to `:3c:`.| :noooovanish:||Close the input field which will be used to give data to `:3c:`.| ## Usage - If you use :3c: at any point you need to add an input field with :uuh:[Yourtexthere]:noooovanish: - You can only have ***one input*** field and you obviously have to open ***and*** close it ### Commands Command | Description | Example Image of command output :-------|:------:|------: `/hcul-help`|Help command showing usage guide |image `/brainfuck-to-hcul`|Converts Brainfuck code to HackClub turing complete Universal Language |image `/hcul-to-brainfuck`|Converts HackClub turing complete Universal Language code back to Brainfuck |image `/run-hcutcl`|The most important command : Interprets/runs your HackClub Turing Complete Universal Language code and gives you the output|image ### Made for [Summer of Making](https://summer.hack.club/wg) and [Thunder YSWS](https://hackclub.slack.com/archives/C06V2GEV3MY) !!