[FizzBuzz](https://codereview.stackexchange.com/q/61416/23788) was fun, and I got great feedback and learned a few things (which I hope I put in practice here), but only scratched the surface. I wanted to explore the LOLCODE language a bit more, so I implemented a little *rock-paper-scissors*, to play with functions, parameters, return values.. and user input.

Unfortunately I haven't figured out how to get [compileonline](http://www.compileonline.com/execute_lolcode_online.php) to take more than a single value through STDIN, so I dropped the idea of making a `GAEMLOOPZ` and only made it a single round.

Also AFAICT there's no way of generating random numbers in LOLCODE ([specs](http://lolcode.org/1.2_spec.html)), so the LOLCAT always wins - it even has a *seekrit* move for invalid inputs!

    HAI 1.2
      
      I HAS A CHEEZ ITZ "CHEEZ"       BTW "ROCK"
      I HAS A BURGR ITZ "BURGR"       BTW "PAPER"
      I HAS A WAFLZ ITZ "WAFLZ"       BTW "SCISSORS"
      I HAS A SEEKRITMOOV ITZ "ZPOCK" BTW SHH, SEEKRIT
      
      
      HOW IZ I GETAMOOV
        
        VISIBLE "WHAT U PLAY?"
        VISIBLE "[C]HEEZ [B]URGR [W]AFLZ"
        
        I HAS A MOOV
        GIMMEH MOOV
        
        MOOV R I IZ VALID8MOOV YR MOOV MKAY
        FOUND YR MOOV
        
      IF U SAY SO
      
      HOW IZ I VALID8MOOV YR MOOV
        
        MOOV, WTF?
          OMG "C", OMG "c"
            MOOV R CHEEZ
            GTFO
            
          OMG "B", OMG "b"
            MOOV R BURGR
            GTFO
          
          OMG "W", OMG "w"
            MOOV R WAFLZ
            GTFO
          
          OMGWTF
            ANY OF BOTH SAEM MOOV AN "ZPOCK" AN BOTH SAEM MOOV AN "zpock" MKAY
            O RLY?
              YA RLY, MOOV R SEEKRITMOOV
              NO WAI
                MOOV R SMOOSH "... WUTS " AN MOOV AN " ANYWAI" MKAY
            OIC
    
        OIC
        
        FOUND YR MOOV
        
      IF U SAY SO
      
      HOW IZ I PIKAMOOV YR MOOV
    
        I HAS A ULTIMAETMOOV
        
        MOOV, WTF?
          OMG "CHEEZ" BTW must be a constant value :(
            ULTIMAETMOOV R BURGR
            GTFO
            
          OMG "BURGR" BTW must be a constant value :(
            ULTIMAETMOOV R WAFLZ
            GTFO
          
          OMG "WAFLZ" BTW must be a constant value :(
            ULTIMAETMOOV R CHEEZ
            GTFO
          
          OMG "ZPOCK" BTW must be a constant value :(
            ULTIMAETMOOV R "Y U CHEAT? I"
            GTFO
          
          OMGWTF
            ULTIMAETMOOV R SEEKRITMOOV
    
        OIC
        
        FOUND YR ULTIMAETMOOV
        
      IF U SAY SO
      
      HOW IZ I WINTEHGAEM YR MOOV AN YR ULTIMAETMOOV
        
        VISIBLE SMOOSH "Y U PLAY " AN MOOV MKAY
        VISIBLE SMOOSH "MAH " AN ULTIMAETMOOV AN " WINZ LOL" MKAY
        
      IF U SAY SO
      
      OBTW      
        was going to make a GAEMLOOP,
        but stupidly I can't seem to figure out
        how to pass multiple values to STDIN with this "IDE"...
        so this program will only run a single round.
      TLDR
      
      HOW IZ I PLAYAMOOV
        
        I HAS A MOOV
        MOOV R I IZ GETAMOOV MKAY
        
        I HAS A ULTIMAETMOOV
        ULTIMAETMOOV R I IZ PIKAMOOV YR MOOV MKAY
        
        I IZ WINTEHGAEM YR MOOV AN YR ULTIMAETMOOV MKAY
        
      IF U SAY SO
      
      VISIBLE "CHEEZ-BURGR-WAFLZ:)"
      I IZ PLAYAMOOV MKAY
    
    KTHXBYE

---

### Outputs

Input: `c` or `C`

>     CHEEZ-BURGR-WAFLZ
>
>     WHAT U PLAY?
>     [C]HEEZ [B]URGR [W]AFLZ
>     Y U PLAY CHEEZ
>     MAH BURGR WINZ LOL

Input: `b` or `B`

>     CHEEZ-BURGR-WAFLZ
>
>     WHAT U PLAY?
>     [C]HEEZ [B]URGR [W]AFLZ
>     Y U PLAY BURGR
>     MAH WAFLZ WINZ LOL

Input: `w` or `W`

>     CHEEZ-BURGR-WAFLZ
>
>     WHAT U PLAY?
>     [C]HEEZ [B]URGR [W]AFLZ
>     Y U PLAY WAFLZ
>     MAH CHEEZ WINZ LOL

Input: `zzz` ..or pretty much anything else:

>     CHEEZ-BURGR-WAFLZ
>
>     WHAT U PLAY?
>     [C]HEEZ [B]URGR [W]AFLZ
>     Y U PLAY ... WUTS zzz ANYWAI
>     MAH ZPOCK WINZ LOL

Input: `zpock` or `ZPOCK`

>     CHEEZ-BURGR-WAFLZ
>
>     WHAT U PLAY?
>     [C]HEEZ [B]URGR [W]AFLZ
>     Y U PLAY ZPOCK
>     MAH Y U CHEAT? I WINZ LOL

---

I don't like that I'm hard-coding the strings in the `WTF` (switch) block in `VALID8MOOV`, but I don't think it's possible to extract just the first letter of a `YARN` (string)... or is it? Also there doesn't seem to be a way of defining compile-time constants, so I had to put literal strings in `PIKAMOOV` as well.