Skip to content

The Ultimate RPS is a fun and diferent approach for one of the most famous games of the world. Now as a backend application in a mock terminal you can have fun and chellange the computer for a 5 round game. If you in 3 times out of 5 a surprise is gonna be unlocked. Also pay attention to the hints and make a smart choice to become the RPS Legeng.

Notifications You must be signed in to change notification settings

Cesargarciajr/ultimate-rps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Ultimate RPS is a fun and diferent approach for one of the most famous games of the world. Now as a backend application in a mock terminal you can have fun and chellange the computer for a 5 round game. If you in 3 times out of 5 a surprise is gonna be unlocked. Also pay attention to the hints and make a smart choice to become the RPS Legeng. Have fun!

Link to The Ultimate RPS

Alt text

Contents


User Experience (UX)

User Stories

  • First-Time Visitor Goals


i. As a First time user I want to be able to intuitively learn how to play the game without even reading the Rules.
ii. But if needed check the Rules and see if its clear.
iii. I might have to contact the developer for any bug or leave a message.
iv. Have fun!

  • Returning Visitor Goals


i. As returning user I want the be able to play the game.
ii. Check if there is any updates to the game.
iii. Have fun!

  • Frequent User Goals


i. As frequent user I want the be able to play the game.
ii. Check if there is anyupdates to the game.
iii. Have fun!

Back to top

  • FlowChart

    The flowchart was a very useful tool to plan ahead and understand how to build the application below you can see the chart that was made using the Lucid

    Alt text

Back to top

  • Design Choices

    The idea was to build a terminal based application with smooth transitions to make the UX even more seamless and intuitive. I added few diagrams to make the game more user friendly and make look better as you can see the Features section.

Back to top

Features

Landing Play Page

As part of the game a landing area presents the Rock, Paper, Scissors and Gun as hints of how to "unlock" the Legend by selecting the gun to win over all options:

Alt text

Back to top

Welcome Message

Welcome message gives the user a clear idea of the game and a 4.5 second to see this message while game is loading is a user friendly interaction.

Alt text

Back to top

Main Menu

The main menu gives the user clear options to select and navigate through it.

Alt text

Back to top

Rules Menu Option

Rules are clear and easy to understand making user experience more effective regarding to know how to play the game and use the system.

Alt text

Back to top

Credits Menu Option

Credits option gives the user to contact the developer in case o bugs or issues found, or to get in touch for futures projects

Alt text

Back to top

Start Game Menu Option

Once the user start the game it prints to the console a Rock, Paper, Scissors diagram to show user the options also prints the Round counter and a score section to keep track the progress of the game. Finally asks the user to input the option as the user can type "r" "R" "rock" respectivly to the options available. If not a "Invalid option will be printed"

Alt text

Back to top

Selected Valid Option

Once a valid option is selected it will show what was selected and generated randomly by the computer

Alt text

Back to top

Comparing Computer vs User choices

The system will compare the computer and the user choice and print an outcome for that round. Also increasing the round and the score if win or lose round

Alt text

Alt text

Back to top

Tied Round

In case the round is Tied a message will be showed and no score will be increased

Alt text

Back to top

Game Over

After 5 rounds system will compare the scores and print a final message:

If user wins:

Alt text

If user lose:

Alt text

If its a tie:

Alt text

Back to top

Hidden Features

The user can see the hints and "unlock" the hidden features. If user selects the "Gun" he will automatically will the game and a "Legend" message will be printed:

Alt text

If the user wins 3 out of 5 rounds the user will be asked to "finish" the computer the "Fatality" will be printed:

Alt text

Alt text

Back to top

Future Features

For future features I think would be nice to make a colourful game for better user experience also implement if the user wins 3 times in a row he could activate the "nuclear bomb" and win the game. Those hidden features could make a difference and keep the users interested to play more and discover and unlock them. Also by adding a "raking" where user the input name and challange friends and keep record how many times user beated the computer.

Back to top

Testing

The game was tested and validate with PEP8CI with no errors. However the diagrams apresented a few flags and the solution is in the Bugs and Issues section of this file.

Alt text

Back to top

Bugs and Issues

Debugging and troubleshooting were done constantly throughout development.

the PEP8CI presented a few flags regarding to the diagrams and the solutions I found for those was to add "r" before some to the diagrams layout and a "# noqa" and the end of the diagrams, as you can see highlighted in the yellow box of the image below:

Alt text

The links a found the solution are credited in the Credits section of this file.

Back to top


Technologies Used

I used the following technologies, platforms and support in building my project:

  • The application was built in Python.
  • The Code Institute modules/lessons aided my learning and many of the concepts learned were applied in this project.
  • GitHub was used for the project repository.
  • Code Anywhere - for IDE and editor of the code.
  • Heroku was used for application deployment.
  • PEP8CI Validator - for error and issues with the code
  • Lucid - Flowchart used on readme file.

Back to top

Deployment

GitHub Deployment First of all you need to have a GitHub account and I choose it because it's free and easy to create a repository to host your code and share with others.
  • To create a repository you just need to go to the main page at the top right you will see a "+" button just click here and then new repository

  • Select the name of the project and a description make it public and then create a repository

  • Once you created your repository go the settings section and then click on pages

  • Select the Branch as main and then save it.

  • Finally, your repository is deployed and it should show you a link so you can share it with others.

Cloning the Repo
  1. Click on the "Code" button near the top right corner of the page.
  2. Copy the HTTPS or SSH URL that appears in the box. Open your terminal (or Git Bash on Windows) and navigate to the directory where you want to clone the repository.
  3. Type "git clone" followed by a space, and then paste the URL you copied in step 3.
  4. Press enter to run the command. This will clone the repository onto your local machine.
  5. You should now have a local copy of the GitHub repository on your machine.
Forking the Repo
  1. Click the "Fork" button near the top right corner of the page. This will create a copy of the repository in your own GitHub account.
  2. Once the fork is complete, you will be redirected to the forked repository in your account.
  3. If you haven't already, clone the forked repository to your local machine using the steps outlined in the previous answer.
  4. Make any changes or additions you want to the code in your local copy of the repository.
  5. Commit your changes to your local repository using the "git commit" command.
  6. Push your changes to the forked repository on GitHub using the "git push" command.
  7. If you want to contribute your changes back to the original repository, create a pull request by going to the original repository's page and clicking the "New pull request" button. From there, you can compare your changes to the original repository and request that they be merged.
  8. You should now have a forked copy of the GitHub repository in your account, and you can make changes to it and contribute back to the original repository if desired.
Heroku Deployment
  1. First of all you need to have a Heroku account.
  2. From the Dashboard, click "New" - "Create new app".
  3. Enter a name for the app. Click "Create App".
  4. Connect your GitHub account and select the repository and branch to deploy.
  5. When you create the app, you will need to add two buildpacks from the Settings tab. The ordering is as follows:
    • heroku/python
    • heroku/nodejs
  6. You must then create a Config Var called PORT. Set this to 8000.

Back to top

Credits

Content

Back to top

Media

  • Lucid - Flowchart used on readme file.
  • Pinterest - Background image for the page.
  • Patorjk - provider with different fonts in diagrams terminal based.
  • ASCII Art - provided gun ASCII art.

Back to top

Acknowledgments

This project was fun and challenging at the same time. I learned so much while developing and trying to enhance a simple and old game was the biggest creative challange. My mentor Precious Ijege was fundamental to guide me and take the right approaches to the project, I can not forget to say a huge thanks to Tiago Fortaleza Gai that helped me a lot with programming logics and helped me to debbug the code when I was stucked. I loved the final version of the game and I can say I'm proud of the final version and excited to keep updating and adding future features.

by Cesar Garcia

THANK YOU!

Back to top

About

The Ultimate RPS is a fun and diferent approach for one of the most famous games of the world. Now as a backend application in a mock terminal you can have fun and chellange the computer for a 5 round game. If you in 3 times out of 5 a surprise is gonna be unlocked. Also pay attention to the hints and make a smart choice to become the RPS Legeng.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published