Giter VIP home page Giter VIP logo

battlescrabble's Introduction

BattleScrabble

The image is from Am I responsive?

Pre-reqs: Loops, Strings, Arrays, 2D Arrays, Global Variables, Methods.

How it will work:

  • A 10x10 grid will have 3 ships of variable length randomly placed about.
  • Users can sink the ship(s) completely by guessing the words from a given list.
  • If all ships are unearthed before using up all bullets, you win else, you lose (feature still on pending).

UX

I aimed to integrate ease-of-use concept despite the limitation of the CLI.

Target audience:

  • Over 18s only since this is a violent game.

The game will help clients to:

  • Learn about coordinates.
  • Test their intuition.
  • Provide entertainment.

Owner Stories

  1. As the owner, I want the game to be fun and innovative.
  2. As the owner, I want the game to be educational.
  3. As the owner, I want to show my new learned skills with Python.

User Stories

  1. As a new visitor, I want to easily navigate the terminal to play the game.
  2. As a visitor, I want to be able to exit the game when I get tired of playing.

The skeleton

The Game consists of only 1 page which is the terminal page. I am using Python to generate the data and create the game.

  • The terminal game is not responsive and is only one page therefore wireframes were not needed this time.

The Scope

To achieve my goal, I included the following features in my game:

Features

  1. A grid with randomised battleships placed either horizontally or vertically.
  2. Limited number of shots to take.
  3. Scrabble concept added to improve interactivity.

Future features

In the future, I would like to develop this game to include the following features:

  • A timer to add pressure to the player.
  • A two player option so people can play online with other human users.
  • A more interactive word hit coordinates features.

The Design

The game is designed using CLI so the outlook is very basic.

Technologies Used

  • This project integrates basic python concepts such as: Loops; Strings; Arrays; 2D Arrays; Global Variables; Methods.
  • The following platforms have been used:
  • Gitpod for writing code to develop this game.
  • Github Was used for hosting my repository and this readme file.
  • Heroku for deployment.
  • pep8online.com for validating my code and check for errors.

Testing

As a user/player, the game shall be easy to navigate in the terminal.

  • The battle grid appears as soon as the game starts.
  • The player has to select the coordinates to take down the battleships and guess the word at the end to completely sink the ships.

Additional Testing

  • pep8online.com is used to confirm my code.
  • python3 run.py has been used intensively during the creation of this game.
  • Automatic set up on Heroku which should allow me to see how the end product of the game from the code I created. However, errors occured which meant I had to abandon the development.

Compatibility

To ensure that a broad range of users can successfully view/use the site, I tested it across all major browsers on both desktop and mobile.

  • Chrome
  • Mozila Firefox
  • Edge
  • Internet explorer
  • Safari Although this is a web app it is visible on a mobile and tablets, even though it is not responsive.

Validation

Deployment

This project was developed using Gitpod, committed to git and pushed to GitHub using git commands. You can clone this repository Here

To deploy this page to Heroku from GitHub repository, the following steps were taken:

  1. In the Heroku dashboard I selected 'New' in the top right hand corner and clicked on 'Create new app'.
  2. Then I Created the App name and Choose my region as Europe. Then selected 'Create app'
  3. Then I selected Settings tab, and scrolled down to 'Buildpacks'. Here I added 'Python' clicked saved changes and then selected 'Node.js' and saved my changes again.
  4. On top of the page I clicked on the 'Deploy' section, and I selected Github as my deployment method.
  5. Then I selected 'Connect to Github, and searched for my repository name and clicked on 'Connect' to link my Heroku app to my Github repository code.
  6. Scrolling down I have selected 'Enable Automatic Deploys' and after this I selected 'Deploy Branch' to deploy my project. I had to wait for it to build.
  7. After it has successfully deployed a 'view' button appeared which took me to my deployed app.

Credits

  • Austin Montgomery
  • I have used S. Mengel's materials from l'École polytechnique in Paris to better understand how to create a battleship game.
  • I have watched the following videos for inspiration:
    1. CS Students
    2. Jie Jenn
  • My Mentor Guido Cecilio Garcia Bernal was extremely helpful in breaking all the steps down for me and answering any questions I had, especially those concerning randomising words to add to the battleship game.
  • I have been fortunate to get useful pointers from Code Institute's tutoring team, which I am grateful for.
  • Thanks to Twilio Blog for a thorough explanation on how to work with Google Spreadsheets and Python.
  • Stack Overflow
  • Stack Overflow
  • devpost

battlescrabble's People

Contributors

peanutbutterclassic avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.