Mine Seeker. Software Requirements Document CMPT 276 Assignment 3 May Team I-M-Assignment by Dr. B. Fraser, Bill Nobody, Patty Noone.

Similar documents
Table of Contents. Creating Your First Project 4. Enhancing Your Slides 8. Adding Interactivity 12. Recording a Software Simulation 19

10.2. Scanning Document Camera Scoring. Page 1 of 5. How do I score answer sheets using a document camera? STEP 1

Sudoku Touch. 1-4 players, adult recommended. Sudoku Touch by. Bring your family back together!

Step 1: Create A New Photoshop Document

1 Overview Introduction Acronyms & abbreviations...2

Batman & the Joker Jewels

Candidate Instructions

Celtx Studios Owner's Manual January 2011

Welcome to the Sudoku and Kakuro Help File.

The purpose of this document is to outline the structure and tools that come with FPS Control.

Okay, that s enough talking. Let s get things started. Here s the photo I m going to be using in this tutorial: The original photo.

Using the Bluetooth DRO display

More Actions: A Galaxy of Possibilities

Go Daddy Online Photo Filer

Google Photos Online Basics

J. La Favre Fusion 360 Lesson 5 April 24, 2017

Land use in my neighborhood Part I.

Image Processing Tutorial Basic Concepts

CS 371M. Homework 2: Risk. All submissions should be done via git. Refer to the git setup, and submission documents for the correct procedure.

CMPT 125/128 with Dr. Fraser. Assignment 3

Introduction to Turtle Art

Mobile Application Training

Kodiak Corporate Administration Tool

Space Invadersesque 2D shooter

The original image. Let s get started! The final effect.

Programming Project 2

Photoshop CS2. Step by Step Instructions Using Layers. Adobe. About Layers:

Add Rays Of Sunlight To A Photo With Photoshop

Cato s Hike Quick Start

Content Type: Pariplay Game Category: Slot Return to Player: 95.08%

BITKIT. 8Bit FPGA. Updated 5/7/2018 (C) CraftyMech LLC.

Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016

Photoshop Backgrounds: Turn Any Photo Into A Background

HCA Tech Note 102. Checkbox Control. Home Mode aka Green Mode

User Guide: PTT Radio Application - ios. User Guide. PTT Radio Application. ios. Release 8.3

facewho? Requirements Analysis

An Introduction to ScratchJr

Warlords - Crystals of Power Game Rules. Random Overlay Wild. Scatter

Photo Within A Photo - Photoshop

CI-22. BASIC ELECTRONIC EXPERIMENTS with computer interface. Experiments PC1-PC8. Sample Controls Display. Instruction Manual

MOBILE INVENTORY UPDATES

Endurance R/C Wi-Fi Servo Controller 2 Instructions

User Guide. PTT Radio Application. Android. Release 8.3

Development of a Euchre Application for Android

Bridgemate App. Information for bridge clubs and tournament directors. Version 2. Bridge Systems BV

Savant Lighting TrueImage App Setup Guide

How To Add Falling Snow

EXILIM ALBUM 1.1. Introduction

InfoSphere goes Android Angry Blob

P2P 2 YEAR PL-VDIO-05. Smartphone Connect IP VIDEO DOOR PHONE QUICK START GUIDE 7 VIDEO DOOR PHONE SYSTEM WITH SMARTPHONE CONNECT

CS180 Project 5: Centipede

Clipping Masks And Type Placing An Image In Text With Photoshop

Emoji Planet Video Slot Game Rules

Installation guide. Activate. Install your Broadband. Install your Phone. Install your TV. 1 min. 30 mins

Recording your Voice Tutorials 2 - Setting the Computer Setting Audacity Wayne B. Dickerson

User Guide: PTT Application - Android. User Guide. PTT Application. Android. Release 8.3

SolidWorks Tutorial 1. Axis

You can easily print images using the Capture NX print function. Here we will explain the process for printing

(SUBSINO CASINO GAME HIGH RESOLUTION SERIES)

Survive Blood Island Interactive Game

iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book.

Battleship Unit 5 Test (Radicals)

No Evidence. What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required

12-Pack Ultimate Quiz Show Help

Back up your data regularly to protect against loss due to power failure, disk damage, or other mishaps. This is very important!

2048: An Autonomous Solver

MODULE: DESIGNING AND DEVELOPING OBJECT-ORIENTED COMPUTER PROGRAMS ASSIGNMENT TITLE: WORDSEARCH MARCH 2014

Copies of the Color by Pixel template sheets (included in the Resources section). Colored pencils, crayons, markers, or other supplies for coloring.

Easy Input Helper Documentation

LSM 780 Confocal Microscope Standard Operation Protocol

Words Mobile Ready Game Documentation

Lesson 8 Tic-Tac-Toe (Noughts and Crosses)

METRO TILES (SHAREPOINT ADD-IN)

Apocalypse Defense. Project 3. Blair Gemmer. CSCI 576 Human-Computer Interaction, Spring 2012

Photoshop CC 2018 Essential Skills

Introduction to Auction Theory: Or How it Sometimes

Spring 06 Assignment 2: Constraint Satisfaction Problems

Intro to Java Programming Project

User Guide. PTT Radio Application. ios. Release 8.3

Star Defender. Section 1

Wild. Overlay Wild. Bonus Game. Football: Champions Cup Game Rules

SHAPE CLUSTER PHOTO DISPLAY

Welcome to 6 Trait Power Write!

RED MYSTERY CHEST REVEAL

The Klickety Handbook. Thomas Davey Hui Ni


Using Dynamic Views. Module Overview. Module Prerequisites. Module Objectives

Excel TGI Football Game DELUXE Instructions & Help File

Enhanced Push-to-Talk Application for iphone

GETTING STARTED CONTENTS. welcome. Getting Started. How to Play. installing the Shanghai software

COMPUTING CURRICULUM TOOLKIT

Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, :59pm

Instruction manual Chess Tutor

VTube-LASER Quick Start Guide

Getting Started. with Easy Blue Print

Family Feud Using PowerPoint - Demo Version

Effective Training Inc. Aug 2009

Unit 6.5 Text Adventures

Entering Checkpoint Data

Vectorworks Architect

Transcription:

Mine Seeker Software Requirements Document CMPT 276 Assignment 3 May 2018 Team I-M-Assignment by Dr. B. Fraser, Bill Nobody, Patty Noone bfraser@cs.sfu.ca, mnobody@sfu.ca, pnoone@sfu.ca, std# xxxx-xxxx std# yyyy-yyyy std# zzzz-zzzz 1/16 Rev 3

Table of Contents 1. Revision History Table...3 2. Game Play...4 2.1 Example Game...4 3. Software requirements specification...8 3.1 Functional requirements...8 3.2 Non-functional requirements...10 4. Use cases...11 5. Scenarios...13 5.1 Scenario: Play game...13 5.1.1 Initial assumptions...13 5.1.2 Normal workflow...13 5.1.3 Variation: Change game size...13 5.1.4 Concurrent activities...13 5.1.5 State on completion...13 6. Requirements validation...14 6.1 UI Mockup...14 2/16 Rev 3

1. Revision History Table Rev Date Summary Author 1 May 25, 2018 Initial release of document. B. Fraser 2 May 31, 2018 Updated min API version to 24 (Nougat) B. Fraser 3 June 5, 2018 Back on welcome screen should work (vs must ) Game logic must be in separate package (vs should ) B. Fraser 3/16 Rev 3

2. Game Play Mine Seeker is a game where the player tries to find a certain number of mines which are randomly placed in cells on the game board. The player taps on a cell to inspect it. If the cell contains a mine, then the mine is revealed. If there is no mine, then inspecting the cell triggers a scan which shows the count of hidden mines in the same row and column as the selected cell. This information allows the player to make smart choices about which cells to inspect. The goal is to find all the mines using the minimum number of scans. 2.1 Example Game 1. User initially sees the game board with all cells hidden. (There are additional UI requirements than those shown here; see requirements section for more information.) 2. User selects a cell. If it has a mine, then the mine is revealed: 4/16 Rev 3

3. When the user taps a cell without a hidden mine (i.e., taps a cell with a known mine, or an unrevealed cell which has no mine), it triggers a scan of that cell's row and column. The cell then displays the number of hidden mines found in its row and column: 4. User continues selecting cells: 5/16 Rev 3

5. Using the information from the scans, the user can make informed choices about which cells to investigate. When the user taps a mine, it is revealed. Hence the hidden mine counts all decreases for the cells in the mine's row and column because that mine is no longer hidden. 6. The user may trigger a scan in a cell with a mine. This is done by tapping the cell once it contains a mine. This scan is identical to scans in other cells. 6/16 Rev 3

7. Once the user has found all the mines, they win the game. The challenge is winning with the fewest scans. Note that revealing a mine does not count as a scan; however, scanning (by tapping a mine a second time) does trigger a scan and counts as a scan. Once the user has found all the mines, all scans should show 0 because there are no hidden mines in the game. ` 7/16 Rev 3

3. Software requirements specification 3.1 Functional requirements 1. The application's first screen must be a nice looking welcome screen. 1.1 Program must start up showing the welcome screen. 1.2 Welcome screen must include at least the following elements: - Name of application - Name of application's author(s) - One or more images. Could include a picture or cartoon of the authors, an icon for the application, or related images. 1.3 Welcome screen may include two or more different animations (such as fade, spin, or move). It may have complicated animations such as rotating and moving a block of elements at once. 1.4 Welcome screen must have a button (or similar interface) which allows the user to skip animations (if any) and go to the Main Menu. 1.5 The Welcome screen may automatically advance to the Main Menu after all animations (if any) have finished, plus at least 4 extra seconds. 2. The Main Menu must allow the user to navigate to the game, options, and help screens. 2.1 Display a button to navigate to the Game screen. 2.2 Navigating to the Game screen creates a new game with the correct configuration specified on the Options screen. 2.3 Display a button to navigate to the Options screen. 2.4 Display a button to navigate to the Help screen. 2.5 Buttons displayed may be fancy and visually appealing featuring icons. 3. The Game screen must allow the user to play the Mine Seeker game. 3.1 Display text stating how many mines total there are on the game board (hidden or revealed) 3.2 Display text stating how many mines the player has revealed. 3.3 Display text stating how many scans it has taken the user so far this game. 3.4 Display a grid of buttons (or UI elements which have button-like functionality). The grid size is set by the options screen. 3.5 The number of mines on the game board is set by the options screen. 3.6 Tapping a grid button investigates the cell, which either: 1) Reveals a mine if one is present. 2) Performs a scan if either no mine is present, or the mine has already been revealed. Tapping on an already scanned cell has no effect and does not count as an additional 8/16 Rev 3

scan. 3.7 When a mine is revealed, the button must indicate that it contains a mine. The button must display an icon or image on it showing it is a mine. 3.8 When a scan is performed, the count of hidden mines in the row and column is displayed in that button. 3.9 When a mine is revealed, any of the buttons in its row and column which show a count of hidden mines must be updated with the new count of hidden mines (count decreases by 1). 3.10 The scanning may be animated to show a scan happening (like a ship's radar searching), or a pulse wave going out across the row and column. 3.11 App may play a sound when it scans and when the user finds a mine. 3.12 App may vibrate when it scans and when the user finds a mine. Different vibration feel for each would be best. 3.13 May display text stating the total number of games started (saved between application launches). 3.14 May display text stating the best score so far of any completed game of this specific configuration (board size and number of mines); must save best score for each possible configuration. 4. When the player wins, congratulate the player and return to the Main Menu. 4.1 When the player finds the last mine, redraw the game board showing the mine and updated hidden-mine counts. 4.2 When the player finds all mines on the board, display a congratulations dialog. 4.3 The congratulations dialog must have at least one image, and some text congratulating the player. 4.4 When the player dismisses the dialog (taps OK, or the like), return to the Main Menu. 4.5 From the Main Menu, pressing the Android back button must then quit the application. 5. The Options screen must allow the user select board size and number of mines. 5.1 User can select the board size, from options including at least: - 4 rows by 6 columns - 5 rows by 10 columns - 6 rows by 15 columns 5.2 User can select number of mines, from options including at least: - 6 mines - 10 mines - 15 mines - 20 mines 5.3 The game size, and number of mines are saved between application runs. 9/16 Rev 3

5.4 May allow user to reset number of times game has been played, and best scores for each game configuration (if supported). 6. The Help screen displays some information about who wrote the application and some text explaining the game. 6.1 The about-the-author text must include a hyperlink to the CMPT 276 home-page. 6.2 The game information text must explain some of the basics about the game. You must use your own wording, not copying the text from the assignment document. Your text should reflect the theme of your game. 6.3 The Help screen must provide the correct citation for any images, icons, or other resources (such as music) used in the game (for copyright purposes). Include a hyperlink if applicable. 6.4 Pressing the Android back button on the Help screen returns to the Main Menu. 3.2 Non-functional requirements 1. The application must have the game play described in this document, but must have a theme of your choosing, such as: - Searching for rebel bases in space. - Finding virus infected cells to fight an infection. - Identifying bugs in the Linux kernel. - Finding gophers in a field. - Finding bad-apples in a case of apples. - Finding zombies in a graveyard. 1.1 Images chosen for backgrounds and buttons must be consistent with this theme. 1.2 Game help text must be consistent with this theme. 1.3 The theme may affect the name given to your application; it need not be Mine Seeker. 1.4 If you want to update game play slightly to be in line with your game's theme, you must consult the customer 1. 2. Application source code must be maintainable. 2.1 Code must be well organized into methods and classes. 2.2 Game logic must be in a separate class from game UI class. 2.3 Game logic must be in a separate Java package from UI code. 2.4 Code must use good naming conventions and have good indentation and formatting. 3. The application runs on Android smartphones and tablets. 1 Customer = Dr. Fraser. 3.1 The application must run under at least Android OS version 7.0 (API 24, Nougat) and newer. 3.2 The application must display well at a screen of size of 5 inch 1080x1920 pixels. ( Nexus 5 configuration). 10/16 Rev 3

3.3 The application must support at least horizontal (landscape) orientation. 3.4 The application must not be able to be rotated to an unsupported orientations. 4. Pressing the "back" button on the Android phone must always take the user to the previous screen in a reasonable way. 4.1 From the Welcome screen, back should exit the program. 4.2 From the Main Menu, the game must exit without returning to the Welcome screen. 4.3 From other screens, back must return to the previous activity on the activity stack. 5. The application should appear complete and well built. 5.1 The application must have an appropriate (non-default) icon. 5.2 Each screen must have a background image. Each screen may use the same background image. 5.3 All text must be clearly readable over the background. 5.4 All text that appears on the UI must be read from the strings.xml file to support internationalization. 5.5 App may save game state if app is closed while playing. 6. Quick to learn for a new user. 6.1 An average grade 10 student must take no more than two minutes to learn to play the game after a one minute demonstration on how to use the application. 7. Must be responsive to the user. 7.1 Each user interaction (such as a button press) must start to generate its response within 0.5s when run on a real device. (Looser performance criteria applied for running in the emulator). 2 2 Not strictly enforced, so don t worry too much about timing unless your code is doing something which takes significantly more time than average. 11/16 Rev 3

4. Use cases Figure 1: Use case diagram for Mine Seeker game. 12/16 Rev 3

5. Scenarios 5.1 Scenario: Play game 5.1.1 Initial assumptions User is logged into the phone and has just launched the application. 5.1.2 Normal workflow User sees the welcome screen. Presses button to advance to the Main Menu screen. User selects button to play game. User taps on game cells to initiate scans and detect mines. Game displays information about number of hidden mines detected in the row and column of each scanned cell. Once all mines have been found, user sees congratulations message and is returned to the Main Menu. 5.1.3 Variation: Change game size Before starting the game from the Main Menu, user selects to go to Options screen. User changes game board size and number of mines in game. Use presses the Android back button to return to Main Menu. Resumes normal workflow to begin playing game. 5.1.4 Concurrent activities User may navigate away from application and return to the application without losing its state so long as the application does not close. If the application is closed, the game state may be lost. 5.1.5 State on completion User is viewing the Main Menu. 13/16 Rev 3

6. Requirements validation 6.1 UI Mockup 3 1. User launches game; welcome shown; then advances to main menu. Figure 2: Welcome splash screen. 2. User taps the button to play a game and changes to the game screen. Figure 3: Menu allowing access to game, options and help. 3. User shown game screen with grid of buttons. User taps buttons to scan, and to find mines. Figure 4: Game board before any moves. 3 App screens need not match these exactly; your app must meet the requirements listed earlier, even if the mock-ups shown here miss some feature. 14/16 Rev 3

4. As user finds mines, the scan numbers update. Figure 5: Game board after some user moves. 5. When user finds all mines, sees congratulations message and return to Main Menu. Figure 6: Winning congratulations message. 6. From Main Menu, user selects Options screen. Figure 7: Main menu. 15/16 Rev 3

7. On Options screen, user can change game settings. Figure 8: Options screen to change game settings. 8. User returns to Main Menu, and then navigates to help screen. Figure 9: Help screen with game directions and about information. 16/16 Rev 3