Last year, Ryan discovered a game in China resembling Rock Paper Scissors and deemed it the "best version of Rock Paper Scissors ever". The process is difficult to explain with text (and much easier to explain in person), but in short, two players stand facing each other, one foot in front of the other. They play rock paper scissors, and the winner puts their front foot directly behind their back foot. The losers have to then put their front foot to the winner's front foot, thus having to stretch their legs. Then you keep playing RPS until someone falls over or forfeits. It’s interesting in that you don’t necessarily win by winning games of RPS, but by forcing the other player to stretch the farthest. Thus the dubbed "Chinese Game" was born, which we now call “Rock Paper Scissors Stretch”. Ever since its discovery, we’ve played the Chinese game along with as many people as are willing to learn and play. However, we want to spread this fun twist on RPS to as many people as we can. So, for our project, we decided to make the game in code.

What it does

Rock Paper Scissors Stretch was designed to replicate the experience of the “Chinese Game”. Each round, rather than stretching out legs, we have a stress bar that creeps up as you lose more games of RPS, following the same system of rules as the “Chinese Game”, with two figures stretching out their legs like in the real game. The Stress Bar has a Green Zone and a Red Zone, and the player has to manage both playing RPS and also staying within the Green Zone and out of the Red Zone. We then added the rock paper scissors part but we turned it into a reaction game to try and beat the opponent before the time runs out (to make it more interesting). Finally, we added hats and other modes to enhance the experience.

How we built it

We built it using structures in DrRacket, which means that we had a local “list” of different elements/variables that we could refer back to. We each made different parts of the game and made helper functions that run those elements. Then we made an overarching function that ran using the structure. Towards the end, we combined our code and worked together to debug it.

Challenges we ran into

We ran into a couple challenges, namely a bunch of small problems that would happen with the stress bar, like integrating different bar lengths (and editing already existing code). However, we were able to cleanly fix all of these problems. The major challenges that we didn’t figure out were how to make this work cleanly online (because this is a reaction type game and does not work well with lag), and how to make this into an executable file.

Accomplishments that we're proud of

The integration of the Stress Bar paralleled the leg stretching of the "Chinese Game" well, perhaps even being better than it in that the player has to put more effort into focusing on both balancings in the Green Zone and also thinking about the rock paper scissors game going on. Beginners will have to learn to put more effort into staying in the Zone and Advanced players can focus more on the strategy of the next integrated part; allowing Players to throw out and change hands before the timer runs out. This adds another layer of strategy on top, allowing for players to try to trick other players into thinking they will throw something and changing the actual result, making this game a step above the original "Chinese Game" (in terms of depth). Also, the Hats look awesome.

What we learned

We set an achievable goal and managed to actually make a functional project and we were able to pace ourselves fairly well. We also learned how to plan out ahead of time and finished a project in a Hackathon without any noticeable bugs. We learned how to work separately and combine code, explaining parts to each other well. We also learned how to start with a very simple base, Rock Paper Scissors, and expand it with modifications here and there (the Stress Bar, the Cosmetics, the Modes), and be satisfied with a functional final product without necessarily accomplishing every goal we had set. Speaking of Future Goals...

What's next for Rock Paper Scissors Stretch!

Hopefully, we can integrate an online version and figure out how to make it an executable file. Aside from that, we have some other ideas for how the bar can be managed and we can perhaps add new modes in the future.

Built With

  • dr.racket
  • piskel
  • racket
Share this project: