Mobile Application Programming: Android

Size: px
Start display at page:

Download "Mobile Application Programming: Android"

Transcription

1 Mobile Application Programming: Android CS4530 Fall 2016 Project 4 - Networked Battleship Due: 11:59PM Monday, Nov 7th Abstract Extend your Model-View-Controller implementation of the game Battleship on Android to use an Internet-connected server, allowing two players to play against one another on separate Android devices. The application will host a list of games that are in progress or have finished, as well as a user interface to play a game. As before, the game itself involves two grids positioned over locations in the ocean. One grid belongs to the player while the other belongs to his enemy. Each grid contains 5 ships that can be positioned in a row or column of the grid and have lengths of 2, 3, 3, 4, and 5 units. Players take turns launching missiles into individual grid locations in their enemy s grid with the goal of sinking the opponent s ships. When a missile is launched, the player is told wether the missile hit or missed. Some variations of the game also say on a hit if the ship was sunk, meaning that all of the locations the ship occupies have been hit, but our variation will not give that distinction. While both grids will contain hits and misses, each player may only see ships that are in their own grid. The game is won when all locations that the enemy s ships cover have been hit. See for more information. The game will be modified to be multiplayer over the network, and communicate with a server using a RESTful API. All game information and logic will be hosted on the server. Remove the screen asking the player to pass the device to their opponent. Instead, present UI showing the user who s turn it is, polling the server every 500ms to update that state. Do not allow the user to launch missiles when it is not their turn. Allow the user to return to the game list screen to start additional games while they wait. Components Networked Battleship has all the gameplay requirements of project 3 not replaced by features below. Data Model should be modified to communicate with a server at API specification is below. Must be capable of handling JSON data. Ship placement and most game logic will now be handled by the server. Games will be saved on the server, made available in a lobby, which replaces the local game file used previously. Game and player IDs need to be saved, however, to access inprogress games. Lobby List View now contains all requested games found on the server with a specified status (WAITING, PLAYING, DONE), selectable using an appropriate control. The new game control should still be shown. Rows representing games should now show at least the game name and status. Include other statistics about games where available. Tapping the new game control adds a game to the server by creating a new game, first collecting the game and player name with appropriate UI. Then the game UI is presented to play the game. Selecting a game in WAITING mode joins the game, first collecting the player name with appropriate UI. Then the game UI is presented to play the game.

2 Selecting a game in the PLAYING or DONE modes shows a simple game summary, unless the game was started previously on the device (it will have saved the game & player ID). In that case, open the game UI and continue the game. Multi-Game Functionality - Allow the user to be in several active games at the same time. Be sure to poll the server every 500ms for each active game to determine who s turn it is. Display this in the game list screen as well as in-game. Game View should be the same as in project 3. If you built project 3 using MVC, very little should need to be changed in your game view. Extra Credit My Games 5% - Extra credit for adding a 4th lobby option for all games played on the device. The server does not offer this search, so you will have to piece it together using server information and game / player IDs saved from games as they are played. This allows the user to see all games in all statuses that they are involved in. Extra credit will also be given for substantially improved UIs. Handin You should hand in a zip file containing your project. To do this, zip the folder by right-clicking it and selecting Compress, then handing it in using web handin or the handin command line tool. Hand this zip into: handin cs4530 project4 your_zip_file.zip

3 Battleship Server API A very simple REST api for the CS4530 Android Battleship MVC assignment. All request and responses are in JSON and follow JSON guidelines. " " represent a dictionary of Key:Value pairs (can also be thought of as an object, where keys are class variables), and "[ ]" represent an array. RESTful API's use HTTP verbs to determine the type of operation to execute. The standard verbs and standard uses are as follows: GET - used to query for information from the server. Query parameters can be used to filter the requested data. POST - Asks the server to create a new resource. PUT - Requests for a change or update to a resource. DELETE - Remove a resouce. NOTE: Only POST and PUT verbs can have a request body. The board is a 10x10 grid with rows and columns ranging from [0-9]. Response will use standard HTTP status codes Request handled successfully 4xx - User request was not handled because the user request is malformed, missing parameters, or attempting to access a resource that is not allowed. 5xx - Server error. Please tell me what you did to receive this error. In the case of a 4xx or 5xx error, check the message property in the top level of the JSON response. Game Lobby Get list of games Gets a list of games from the lobby. Query parameters may be used to filter the result set. For example, querying for completed or in progress games Request: GET /api/v2/lobby Valid Query Params:

4 status - an string enum. Represents the status of the game. Acts as a filter. results - an integer. The number of results per result set. offset - an interger. The offset position to begin the result set. Zero based. NOTE: If results is defined, so must offset and vice-versa. Defining one without the other will simply be ignored. [ ],... "id": GUID, "name": STRING "status" ENUM id - The GUID of the game. This id is globally unique and can be used to find/update/delete this particular game. name - The user readable name of this game. status ENUM: DONE, WAITING, PLAYING DONE: Game has finished. No more actions are allowed WAITING: Game needs a second player. Allowed to join PLAYING: Game is currently in progress. Cannot join. NOTE: Providing no query parameters will return all games in the database. This may overwhelm the memory of your device. USE WITH CAUTION. Get game detail Get details for the game with the provided id. Request: GET /api/v2/lobby/:id :id - The GUID of the game you are searching for.

5 "id": GUID, "name": STRING, "player1": STRING, "player2": STRING, "winner": STRING, "status": ENUM, "missileslaunched": INT id - The GUID of the game. This id is globally unique and can be used to find/update/delete this particular game. name - The user readable name of this game. player1 - The name of player 1. player2 - The name of player 2, if a second player has joined the game. winner - The name of the winning player. Otherwise, IN_PROGRESS. status ENUM: DONE, WAITING, PLAYING DONE: Game has finished. No more actions are allowed WAITING: Game needs a second player. Allowed to join PLAYING: Game is currently in progress. Cannot join. missleslaunched - An integer representing the number of turns currently taken in the game. Create a new Game Create a new game with the provided name. Game will be in a WAITING status until another player joins the game. Once a player joins, the status will change to PLAYING. The player who created the game will become player 1 and will be provided a GUID to identify the player. Request: POST /api/v2/lobby "gamename": STRING, "playername": STRING gamename - The user readable name for the game being created.

6 playername - The user readable name of player 1 (the creator). "playerid": GUID, "gameid": GUID IT. playerid - A GUID used to identify player1. Will be used in future requests to manipulate this game. SAVE gameid A GUID used to identify this game. Will be needed in future requests to manipulate this game. SAVE IT. Join the game with the given id Join the game with the provided id. Request: PUT /api/v2/lobby/:id :id - The GUID of the game you would like to query. "playername": STRING, "id": GUID playername - The user readable name of player2. id - The GUID of the game this player would like to join. "playerid": GUID IT. playerid - A GUID used to identify player2. Will be used in future requests to manipulate this game. SAVE

7 In Game Making a guess Make a guess to try and hit a ship. Request: POST /api/v2/games/:id :id - The GUID of the game you would like to query. "playerid": GUID, "xpos": INT, "ypos": INT id - The GUID of the game you would like to manupulate. playerid - The GUID of the player making the move. xpos - The x position of your guess. ypos - The y position of you guess. "hit": BOOLEAN "shipsunk": INT hit - True if this guess was a hit. False otherwise. shipsunk - Correspondes to the size of the ship sunk. 0 if no ship was sunk. Whose turn is it Use to poll the server and determine the players turn. Can be used when waiting for an opponent player to join the game, i.e. will return false for player 1 on a new game until an opponent player has joined. If the game is in progress, winner will be IN PROGRESS. If the game is over, winner will contain the name of the player who won the game.

8 Request: GET /api/v2/games/:id :id - The GUID of the game you would like to query. Valid Query Parameters playerid - The GUID of the player making the request. The player must belong to this game, otherwise the request will fail. "isyourturn": BOOLEAN, "winner" : STRING isyourturn - True if it is currently this players turn. False, otherwise. winner - The name of the player who won the game. Otherwise, IN_PROGRESS. Get Player Boards Will return the status of the player's entire board for the game with the given id. The board is represented as a list of cells. playerboard represents the players own board (ships and all), while the opponentboard shows the current players hits and misses against the opponent. Both playerboard and opponentboard are represented as an array of cells with a cell containing its own state as: x position, y position, and status. Request: GET /api/v2/games/:id/boards :id - The GUID of the game you would like to query. Valid Query Parameters playerid - The GUID of the player making the request. The player must belong to this game, otherwise the request will fail.

9 "playerboard": [ "xpos": INT, "ypos": INT, "status": ENUM,... ], "opponentboard": [ "xpos": INT, "ypos": INT, "status": ENUM,... ] xpos - The x position of this cell. ypos - The y position of this cell. status ENUM: HIT, MISS, NONE HIT: a player has hit this cell MISS: a player has missed this cell SHIP: this cell is part of a ship and has not been hit NONE: this cell has no activity Game AI The server also comes with its own battleship AI and functions as follows: The bot server polls every 30 seconds for games. If a game is named with the correct name, it will join automatically with the specified AI. Valid Game Names: RANDOMBOT - Completely random. SPIRALBOT - Begins at the center and spiral out. SMARTBOT - Attempts to intelligently destroy your ships.

10 If you create a game with the name RANDOMBOT, the bot server will create a bot with the random AI and play against you. The bot will continue to play against you until a winner has been declared. While the game is in progress, the bot will poll for your game with exponential backoff up to 1 minute. The bot will abandon games if there is no activity for 6 hours.

Mobile Application Programming: ios

Mobile Application Programming: ios Mobile Application Programming: ios CS4962 Fall 2014 Project 4 - Network MVC Battleship Due: 11:59PM Monday, Nov 17 Abstract Build a Model-View-Controller implementation of the game Battleship on Android.

More information

CMSC 201 Spring 2018 Project 2 Battleship

CMSC 201 Spring 2018 Project 2 Battleship CMSC 201 Spring 2018 Project 2 Battleship Assignment: Project 2 Battleship Due Date: Design Document: Friday, April 13th, 2018 by 8:59:59 PM Project: Friday, April 20th, 2018 by 8:59:59 PM Value: 80 points

More information

Project 1 - Battleship Game

Project 1 - Battleship Game Project 1 - Battleship Game Minimal Submission Due: Friday, December 22 th, 2006 Revision History Final Project Due: Sunday, January 21 th, 2007 Dec 7th, 2006, v1.0: Initial revision for faculty review.

More information

CIT 590 Homework 10 Battleship

CIT 590 Homework 10 Battleship CIT 590 Homework 10 Battleship Purposes of this assignment: To give you more experience with classes and inheritance General Idea of the Assignment Once again, this assignment is based on a game, since

More information

CSci 1113: Introduction to C/C++ Programming for Scientists and Engineers Homework 10 Spring 2018

CSci 1113: Introduction to C/C++ Programming for Scientists and Engineers Homework 10 Spring 2018 CSci 1113: Introduction to C/C++ Programming for Scientists and Engineers Homework 10 Spring 2018 Due Date: Thursday, May 3, 2018 before 11:55pm. Instructions: This is an individual homework assignment.

More information

StratumGS Documentation

StratumGS Documentation StratumGS Documentation Release 0.1.0 Dave Korhumel May 14, 2016 Contents 1 Documentation 3 1.1 Design.................................................. 3 1.2 Guides..................................................

More information

CS/INFO 4154: Analytics-driven Game Design

CS/INFO 4154: Analytics-driven Game Design CS/INFO 4154: Analytics-driven Game Design Class 20: SQL Final Course Deadlines We will not meet during the scheduled exam time Final report will be due at the end of exam time Cornell cannot delete exam

More information

CS61B Lecture #35. [The Lecture #32 notes covered lectures #33 and #34.] Today: Enumerated types, backtracking searches, game trees.

CS61B Lecture #35. [The Lecture #32 notes covered lectures #33 and #34.] Today: Enumerated types, backtracking searches, game trees. CS61B Lecture #35 [The Lecture #32 notes covered lectures #33 and #34.] Today: Enumerated types, backtracking searches, game trees. Coming Up: Graph Structures: DSIJ, Chapter 12 Last modified: Mon Nov

More information

Multi-Screen Online Multiplayer Game for an Android Device

Multi-Screen Online Multiplayer Game for an Android Device COMP 4905 Honours Project Multi-Screen Online Multiplayer Game for an Android Device Author: Nicholas Tierney Supervised by: Dr. Tony White School of Computer Science Carleton University Ottawa, Canada

More information

CS 134 Programming Exercise 9:

CS 134 Programming Exercise 9: CS 134 Programming Exercise 9: Nibbles Objective: To gain experience working with 2 dimensional arrays. The Problem Nibbles is a snake. Nibbles moves around a field, looking for food. Unfortunately, Nibbles

More information

CS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM

CS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM CS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM Introduction to the Assignment In this lab, you will finish the program to allow a user to solve Sudoku puzzles.

More information

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is:

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is: Homework 1 Hadachi&Lind October 25, 2017 Must Read: 1. Deadline for doing homework is 3 weeks starting from now 2017.10.25 due date is: 2017.11.15 5:59:59 EET 2. For any delay in submitting the homework

More information

CS 3360 Design and Implementation of Programming Languages. Exam 1

CS 3360 Design and Implementation of Programming Languages. Exam 1 1 Spring 2017 (Thursday, March 9) Name: CS 3360 Design and Implementation of Programming Languages Exam 1 This test has 8 questions and pages numbered 1 through 7. Reminders This test is closed-notes and

More information

CS1 Studio Project: Connect Four

CS1 Studio Project: Connect Four CS1 Studio Project: Connect Four Due date: November 8, 2006 In this project, we will implementing a GUI version of the two-player game Connect Four. The goal of this project is to give you experience in

More information

CS 305j Midterm 2 Fall 2006

CS 305j Midterm 2 Fall 2006 Exam Number: Points off 1 2 3 4 5 6 Total off Net Score CS 305j Midterm 2 Fall 2006 Your Name Your UTEID Circle you TA's name: Brad Jacob Instructions: 1. Please turn off your cell phones 2. There are

More information

Global Gomoku Lab 4 in D0010E

Global Gomoku Lab 4 in D0010E Luleå University of Technology February 20, 2012 Computer Science Håkan Jonsson Global Gomoku Lab 4 in D0010E 1 Introduction Modern forms of communication are more and more carried out over the Internet,

More information

ECE15: Lab #4. Problem 1. University of California San Diego

ECE15: Lab #4. Problem 1. University of California San Diego University of California San Diego ECE15: Lab #4 This lab is a cumulative wrap-up assignment for the entire course. As such, it relates to the material covered in Lecture Units 1 5 and 7 9 in class. Here

More information

package As7BattleShip;

package As7BattleShip; package As7BattleShip; Program: BattleshipBoard.java Author: Kevin Nider Date: 11/18/12 Description: Assignment 7: Runs the battleship game Input: ship placement board files and computer player type Output:

More information

Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018

Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Due: Tuesday, September 18, 11:59 pm Collaboration Policy: Level 1 (review full policy for details) Group Policy: Individual This lab will give you experience

More information

Table of Contents 1.1. Introduction Installation Quick Start Documentation Asynchronous Configuration 1.4.

Table of Contents 1.1. Introduction Installation Quick Start Documentation Asynchronous Configuration 1.4. Table of Contents Introduction 1 Installation 2 Quick Start 3 Documentation Asynchronous Configuration Level Streaming Saving And Loading Slot Templates 1.1 1.2 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1

More information

: Principles of Imperative Computation. Fall Assignment 5: Interfaces, Backtracking Search, Hash Tables

: Principles of Imperative Computation. Fall Assignment 5: Interfaces, Backtracking Search, Hash Tables 15-122 Assignment 3 Page 1 of 12 15-122 : Principles of Imperative Computation Fall 2012 Assignment 5: Interfaces, Backtracking Search, Hash Tables (Programming Part) Due: Monday, October 29, 2012 by 23:59

More information

Session 4 Starting the Air Raid Game

Session 4 Starting the Air Raid Game Session 4 Starting the Air Raid Game Authored by Brian Cullen (bcullen@rossettschool.co.uk/@mrbcullen) (c) Copyright 2011 Computing At School. This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

More information

This homework has an opportunity for substantial extra credit, which is described at the end of this document.

This homework has an opportunity for substantial extra credit, which is described at the end of this document. CS 2316 Pair Homework Box Packer Due: Tuesday, June 17th, before 11:55 PM Out of 100 points Files to submit: 1. boxpacker.py For Help: - TA Helpdesk Schedule posted on class website. - Email TA's or use

More information

Assignment #4 Minesweeper

Assignment #4 Minesweeper Assignment #4 Minesweeper Date assigned: Friday, January 9, 2015 Date due: Java Minesweeper, Tuesday, January 13, 2015 Android Minesweeper, Friday, January 17, 2015 Points: 100 Java Minesweeper The game

More information

CS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 4

CS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 4 CS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 4 20 points Out: February 18/19, 2015 Due: February 25/26, 2015 Reminder: This is a programming assignment, and work on this assignment

More information

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA Code Due: Tuesday, November 7, 2017, by 11:59 p.m. The Assignment The purpose of this assignment is to give you more

More information

Be sure check the official clarification thread for corrections or updates to this document or to the distributed code.

Be sure check the official clarification thread for corrections or updates to this document or to the distributed code. Com S 228 Spring 2011 Programming Assignment 1 Part 1 (75 points): Due at 11:59 pm, Friday, January 28 Part 2 (225 points): Due at 11:59 pm, Monday, February 7 This assignment is to be done on your own.

More information

Programming Project 1

Programming Project 1 Programming Project 1 Handout 6 CSCI 134: Fall, 2016 Guidelines A programming project is a laboratory that you complete on your own, without the help of others. It is a form of take-home exam. You may

More information

Object-Oriented Design Lecture 23 CS 3500 Fall 2009 (Pucella) Tuesday, Dec 8, 2009

Object-Oriented Design Lecture 23 CS 3500 Fall 2009 (Pucella) Tuesday, Dec 8, 2009 Object-Oriented Design Lecture 23 CS 3500 Fall 2009 (Pucella) Tuesday, Dec 8, 2009 23 Odds and Ends In this lecture, I want to touch on a few topics that we did not have time to cover. 23.1 Factory Methods

More information

AP Computer Science Principles

AP Computer Science Principles 2017 AP Computer Science Principles Sample Student Responses Commentary Inside: RR Performance Task Create RR Guideline RR Commentary Student Samples provided separately College Board, Advanced Placement

More information

CMPSCI 187 / Spring 2015 Hangman

CMPSCI 187 / Spring 2015 Hangman CMPSCI 187 / Spring 2015 Hangman Due on February 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI 187 / Spring 2015 Hangman Contents Overview

More information

CS31 Discussion 1E Spring 17 : week 08

CS31 Discussion 1E Spring 17 : week 08 CS31 Discussion 1E Spring 17 : week 08 TA: Bo-Jhang Ho bojhang@cs.ucla.edu Credit to former TA Chelsea Ju Project 5 - Map cipher to crib Approach 1: For each pair of positions, check two letters in cipher

More information

Tic Tac Toe Game! Day 8

Tic Tac Toe Game! Day 8 Tic Tac Toe Game! Day 8 Game Description We will be working on an implementation of a Tic-Tac-Toe Game. This is designed as a two-player game. As you get more involved in programming, you might learn how

More information

Com S 227 Spring 2018 Assignment points Due Date: Thursday, September 27, 11:59 pm (midnight) "Late" deadline: Friday, September 28, 11:59 pm

Com S 227 Spring 2018 Assignment points Due Date: Thursday, September 27, 11:59 pm (midnight) Late deadline: Friday, September 28, 11:59 pm Com S 227 Spring 2018 Assignment 2 200 points Due Date: Thursday, September 27, 11:59 pm (midnight) "Late" deadline: Friday, September 28, 11:59 pm (Remember that Exam 1 is MONDAY, October 1.) General

More information

PIVOT TABLES IN MICROSOFT EXCEL 2016

PIVOT TABLES IN MICROSOFT EXCEL 2016 PIVOT TABLES IN MICROSOFT EXCEL 2016 A pivot table is a powerful tool that allows you to take a long list of data and transform it into a more compact and readable table. In the process, the tool allows

More information

XVIII Open Cup named after E.V. Pankratiev Stage 1: Grand Prix of Romania, Sunday, September 17, 2017

XVIII Open Cup named after E.V. Pankratiev Stage 1: Grand Prix of Romania, Sunday, September 17, 2017 Problem A. Balance file: 1 second 512 mebibytes We say that a matrix A of size N N is balanced if A[i][j] + A[i + 1][j + 1] = A[i + 1][j] + A[i][j + 1] for all 1 i, j N 1. You are given a matrix A of size

More information

Programming Exercise

Programming Exercise Programming Exercise Nibbles Objective: To gain experience working with 2 dimensional arrays. The Problem Nibbles is a snake. Nibbles moves around a field, looking for food. Unfortunately, Nibbles is not

More information

CS 314 Exam 2 Spring

CS 314 Exam 2 Spring Points off 1 2 3 4 5 Total off CS 314 Exam 2 Spring 2017 Your Name Your UTEID Instructions: 1. There are 5 questions on this test. 100 points available. Scores will be scaled to 200 points. 2. You have

More information

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm 1 CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm Objectives To enhance your experience with designing and implementing your own

More information

Session 8.2. Finding Winners Using Arrays

Session 8.2. Finding Winners Using Arrays 1 Session 8.2 Finding Winners Using Arrays Chapter 8.2: Finding Winners Using Arrays 2 Session Overview Find out how the C# language makes it easy to create an array that contains multiple values of a

More information

CS112 Lecture: Working with Numbers

CS112 Lecture: Working with Numbers CS112 Lecture: Working with Numbers Last revised January 30, 2008 Objectives: 1. To introduce arithmetic operators and expressions 2. To expand on accessor methods 3. To expand on variables, declarations

More information

Basic Computer Programming (Processing)

Basic Computer Programming (Processing) Contents 1. Basic Concepts (Page 2) 2. Processing (Page 2) 3. Statements and Comments (Page 6) 4. Variables (Page 7) 5. Setup and Draw (Page 8) 6. Data Types (Page 9) 7. Mouse Function (Page 10) 8. Keyboard

More information

CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM

CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM This assignment focuses on classes and objects. Turn in Ant.java, Bird.java, Hippo.java, Vulture.java,

More information

Chapter 6 Reacting to Player Input

Chapter 6 Reacting to Player Input Chapter 6 Reacting to Player Input 6.1 Introduction In this chapter, we will show you how your game program can react to mouse clicks and button presses. In order to do this, we need a instruction called

More information

CS 134 Test Program #2

CS 134 Test Program #2 CS 134 Test Program #2 Sokoban Objective: Build an interesting game using much of what we have learned so far. This second test program is a computer maze game called Sokoban. Sokoban is a challenging

More information

COMPUTING LABORATORY ASSESSED EXERCISE: Othello/Reversi. Autumn term 2001:

COMPUTING LABORATORY ASSESSED EXERCISE: Othello/Reversi. Autumn term 2001: COMPUTING LABORATORY ASSESSED EXERCISE: Othello/Reversi Autumn term 2001: Author: Username: Grade: Marker: Andy Bennett EEE ajb01 XXXXX XXXXX Project description The program supervises a game of Othello/Reversi

More information

Reflections. Reflections in the Coordinate Plane. Translations Battleship Warm Up

Reflections. Reflections in the Coordinate Plane. Translations Battleship Warm Up Reflections Translations Battleship Warm Up Phase : Position our battleships on our gameboard according to the following specifications: - Aircraft Carrier - rectangle, area of units, nd quadrant onl -

More information

grids v https://twitter.com/gamelogicza

grids v https://twitter.com/gamelogicza grids v1.1.0 Online Documentation API documentation Support Twitter http://gamelogic.co.za/gridsgm/ http://www.gamelogic.co.za/documentation/gridsgm/ support@gamelogic.co.za https://twitter.com/gamelogicza

More information

Lesson 2.4 Arraylist

Lesson 2.4 Arraylist Lesson 24 Arraylist Mimi Duong Rosalba Rodriguez Java Crash Course January 6th, 2015 Data Structure ArrayLists Live Coding Methods Searching Through ArrayLists Classwork Storing Items in Java How have

More information

Error Code Status 2006 Google Calendar

Error Code Status 2006 Google Calendar Error Code Status 2006 Google Calendar Google Calendar is a time-management web application and mobile app for created by Google. It became available on April 13, 2006, and exited the beta stage in July

More information

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 Due: Wednesday, October 18, 11:59 pm Collaboration Policy: Level 1 Group Policy: Pair-Optional Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 In this week s lab, you will write a program that can solve

More information

Minecraft Due: March. 6, 2018

Minecraft Due: March. 6, 2018 CS1950U Topics in 3D Game Engine Development Barbara Meier Minecraft Due: March. 6, 2018 Introduction In this assignment you will build your own version of one of the most popular indie games ever: Minecraft.

More information

Variable Usage, Making HTTP requests, Exceptions. Slides adapted from Craig Zilles

Variable Usage, Making HTTP requests, Exceptions. Slides adapted from Craig Zilles Variable Usage, Making HTTP requests, Exceptions Slides adapted from Craig Zilles 1 Client / Server Architecture Server maintains durable state Clients connect to server to access/modify state Server supports

More information

Relational Algebra. Study Chapter Comp 521 Files and Databases Fall

Relational Algebra. Study Chapter Comp 521 Files and Databases Fall Relational Algebra Study Chapter 4.1-4.2 Comp 521 Files and Databases Fall 2010 1 Relational Query Languages Query languages: Allow manipulation and retrieval of data from a database. Relational model

More information

CS 2316 Exam 4 Fall 2011

CS 2316 Exam 4 Fall 2011 CS 2316 Exam 4 Fall 2011 Name : Grading TA: Integrity: By taking this exam, you pledge that this is your work and you have neither given nor received inappropriate help during the taking of this exam in

More information

CS 223: Data Structures and Programming Techniques. Exam 2. April 19th, 2012

CS 223: Data Structures and Programming Techniques. Exam 2. April 19th, 2012 CS 223: Data Structures and Programming Techniques. Exam 2 April 19th, 2012 Instructor: Jim Aspnes Work alone. Do not use any notes or books. You have approximately 75 minutes to complete this exam. Please

More information

Excel Basics: Working with Spreadsheets

Excel Basics: Working with Spreadsheets Excel Basics: Working with Spreadsheets E 890 / 1 Unravel the Mysteries of Cells, Rows, Ranges, Formulas and More Spreadsheets are all about numbers: they help us keep track of figures and make calculations.

More information

AP COMPUTER SCIENCE PRINCIPLES SCORING COMMENTARY: 2017 STUDENT SAMPLES ALIGNED TO THE 2018 SCORING GUIDELINES

AP COMPUTER SCIENCE PRINCIPLES SCORING COMMENTARY: 2017 STUDENT SAMPLES ALIGNED TO THE 2018 SCORING GUIDELINES Sample: A Create Performance Task Row 3: 1 Row 6: 1 Row 7: 1 The video demonstrates how to log in, review, and add entries to the personal diary. The response indicates that keeping a personal diary is

More information

Lesson 3: Basic Programming Concepts

Lesson 3: Basic Programming Concepts 3 ICT Gaming Essentials Lesson 3: Basic Programming Concepts LESSON SKILLS After completing this lesson, you will be able to: Explain the types and uses of variables and operators in game programming.

More information

CS 1110, LAB 1: PYTHON EXPRESSIONS.

CS 1110, LAB 1: PYTHON EXPRESSIONS. CS 1110, LAB 1: PYTHON EXPRESSIONS Name: Net-ID: There is an online version of these instructions at http://www.cs.cornell.edu/courses/cs1110/2012fa/labs/lab1 You may wish to use that version of the instructions.

More information

Homework 3: Recursion Due: 11:59 PM, Sep 25, 2018

Homework 3: Recursion Due: 11:59 PM, Sep 25, 2018 CS17 Integrated Introduction to Computer Science Klein Homework 3: Recursion Due: 11:59 PM, Sep 25, 2018 Contents 1 Factorial 3 2 Fibonacci 4 3 Odds Only 5 4 Increment All 6 5 Frequency 6 6 Sublist 7 6.1

More information

NOTTORUS. Getting Started V1.00

NOTTORUS. Getting Started V1.00 NOTTORUS Getting Started V1.00 2016 1. Introduction Nottorus Script Editor is a visual plugin for generating and debugging C# Unity scripts. This plugin allows designers, artists or programmers without

More information

THE IF STATEMENT. The if statement is used to check a condition: if the condition is true, we run a block

THE IF STATEMENT. The if statement is used to check a condition: if the condition is true, we run a block THE IF STATEMENT The if statement is used to check a condition: if the condition is true, we run a block of statements (called the if-block), elsewe process another block of statements (called the else-block).

More information

:

: CS200 Assignment 5 HTML and CSS Due Monday February 11th 2019, 11:59 pm Readings and Resources On the web: http://validator.w3.org/ : a site that will check a web page for faulty HTML tags http://jigsaw.w3.org/css-validator/

More information

2D Array Practice. Lecture 26

2D Array Practice. Lecture 26 2D Array Practice Lecture 26 Announcements Worksheet 6 and Problem Set 6 Posted to COMP110.com Final Deliverables of the Semester! PS6 - Compstagram Demo Regular Review Session Schedule General - Wednesday

More information

CMSC436: Fall 2013 Week 4 Lab

CMSC436: Fall 2013 Week 4 Lab CMSC436: Fall 2013 Week 4 Lab Objectives: Familiarize yourself with Android Permission and with the Fragment class. Create simple applications using different Permissions and Fragments. Once you ve completed

More information

CIS 121 Data Structures and Algorithms with Java Spring 2018

CIS 121 Data Structures and Algorithms with Java Spring 2018 CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 2 Thursday, January 18 Due Monday, January 29 by 11:59 PM 7 Required Problems (85 points), and Style and Tests (15 points) DO NOT modify

More information

Introduction. Copyright 2018, Itesco AB.

Introduction. Copyright 2018, Itesco AB. icatch3 API Specification Introduction Quick Start Logging in, getting your templates list, logging out Doing Quick Search Creating a Private Prospects Setting template Posting Private Prospects query,

More information

CSE 143: Computer Programming II Summer 2015 HW6: 20 Questions (due Thursday, August 13, :30pm)

CSE 143: Computer Programming II Summer 2015 HW6: 20 Questions (due Thursday, August 13, :30pm) CSE 143: Computer Programming II Summer 2015 HW6: 20 Questions (due Thursday, August 13, 2015 11:30pm) This assignment focuses on binary trees and recursion. Turn in the following files using the link

More information

Remaining Enhanced Labs

Remaining Enhanced Labs Here are some announcements regarding the end of the semester, and the specifications for the last Enhanced Labs. Don t forget that you need to take the Common Final Examination on Saturday, May 5, from

More information

Lab 12: Lijnenspel revisited

Lab 12: Lijnenspel revisited CMSC160 Intro to Algorithmic Design Blaheta Lab 12: Lijnenspel revisited 16 April 2015 Today s lab will revisit and rework the Lijnenspel game code from Lab 7, possibly using my version as a starting point.

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Faculty of Science FINAL EXAMINATION COMP-250 A Introduction to Computer Science School of Computer Science, McGill University

Faculty of Science FINAL EXAMINATION COMP-250 A Introduction to Computer Science School of Computer Science, McGill University NAME: STUDENT NUMBER:. Faculty of Science FINAL EXAMINATION COMP-250 A Introduction to Computer Science School of Computer Science, McGill University Examimer: Prof. Mathieu Blanchette December 8 th 2005,

More information

Problem A. Interactive Smiley Face

Problem A. Interactive Smiley Face Problem A. Interactive Smiley Face 1 second Igor likes smiley faces a lot. He wrote a program that generates really large pictures of white and black pixels with smiley faces. Depending on Igor s mood,

More information

CS159 Midterm #1 Review

CS159 Midterm #1 Review Name: CS159 Midterm #1 Review 1. Choose the best answer for each of the following multiple choice questions. (a) What is the effect of declaring a class member to be static? It means that the member cannot

More information

CSE 154, Autumn 2012 Final Exam, Thursday, December 13, 2012

CSE 154, Autumn 2012 Final Exam, Thursday, December 13, 2012 CSE 154, Autumn 2012 Final Exam, Thursday, December 13, 2012 Name: Quiz Section: Student ID #: TA: Rules: You have 110 minutes to complete this exam. You may receive a deduction if you keep working after

More information

Fundamentals of Programming Session 13

Fundamentals of Programming Session 13 Fundamentals of Programming Session 13 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2014 These slides have been created using Deitel s slides Sharif University of Technology Outlines

More information

Java Outline (Upto Exam 2)

Java Outline (Upto Exam 2) Java Outline (Upto Exam 2) Part 4 IF s (Branches) and Loops Chapter 12/13 (The if Statement) Hand in Program Assignment#1 (12 marks): Create a program called Ifs that will do the following: 1. Ask the

More information

CS 2110 Summer 2011: Assignment 2 Boggle

CS 2110 Summer 2011: Assignment 2 Boggle CS 2110 Summer 2011: Assignment 2 Boggle Due July 12 at 5pm This assignment is to be done in pairs. Information about partners will be provided separately. 1 Playing Boggle 1 In this assignment, we continue

More information

EECE.2160: ECE Application Programming Fall 2017

EECE.2160: ECE Application Programming Fall 2017 EECE.2160: ECE Application Programming Fall 2017 1. (35 points) Functions Exam 2 Solution a. (15 points) Show the output of the short program below exactly as it will appear on the screen. Be sure to clearly

More information

CS201 Spring2009 Solved Sunday, 09 May 2010 14:57 MIDTERM EXAMINATION Spring 2009 CS201- Introduction to Programming Question No: 1 ( Marks: 1 ) - Please choose one The function of cin is To display message

More information

CSE 505, Fall 2009, Final Examination 14 December Please do not turn the page until everyone is ready.

CSE 505, Fall 2009, Final Examination 14 December Please do not turn the page until everyone is ready. CSE 505, Fall 2009, Final Examination 14 December 2009 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.

More information

6.189 Project 1. Readings. What to hand in. Project 1: The Game of Hangman. Get caught up on all the readings from this week!

6.189 Project 1. Readings. What to hand in. Project 1: The Game of Hangman. Get caught up on all the readings from this week! 6.189 Project 1 Readings Get caught up on all the readings from this week! What to hand in Print out your hangman code and turn it in Monday, Jaunary 10 at 2:10 PM. Be sure to write your name and section

More information

AP Computer Science Lists The Array type

AP Computer Science Lists The Array type AP Computer Science Lists There are two types of Lists in Java that are commonly used: Arrays and ArrayLists. Both types of list structures allow a user to store ordered collections of data, but there

More information

The Structure of a C++ Program

The Structure of a C++ Program Steven Zeil May 25, 2013 Contents 1 Separate Compilation 3 1.1 Separate Compilation.......... 4 2 Pre-processing 7 2.1 #include.................. 9 2.2 Other Pre-processing Commands... 14 3 Declarations

More information

AP Computer Science A

AP Computer Science A 2017 AP Computer Science A Sample Student Responses and Scoring Commentary Inside: RR Free Response Question 1 RR Scoring Guideline RR Student Samples RR Scoring Commentary 2017 The College Board. College

More information

Practice Final Examination #2

Practice Final Examination #2 Nick Troccoli Practice Final 2 CS 106A August 16, 2017 Practice Final Examination #2 Final Exam Time: Friday, August 18th, 12:15P.M. 3:15P.M. Final Exam Location: Various (see website) Based on handouts

More information

CIS 162 Project 4 Farkle (a dice game)

CIS 162 Project 4 Farkle (a dice game) CIS 162 Project 4 Farkle (a dice game) Due Date at the start of class on Monday, 3 December (be prepared for quick demo and zybook test) Before Starting the Project Read chapter 10 (ArrayList) and 13 (arrays)

More information

Homework: Content extraction and search using Apache Tika Employment Postings Dataset contributed via DARPA XDATA Due: October 6, pm PT

Homework: Content extraction and search using Apache Tika Employment Postings Dataset contributed via DARPA XDATA Due: October 6, pm PT Homework: Content extraction and search using Apache Tika Employment Postings Dataset contributed via DARPA XDATA Due: October 6, 2014 12pm PT 1. Overview Figure 1: Map of Jobs (Colored by Country) In

More information

HL7Spy 1.1 Getting Started

HL7Spy 1.1 Getting Started Inner Harbour Software HL7Spy 1.1 Getting Started Nov 14, 2009 DRAFT Main Areas of HL7Spy's User Interface The figure below shows the main areas of the HL7Spy user interface. The two main regions of the

More information

GridLang: Grid Based Game Development Language Language Reference Manual. Programming Language and Translators - Spring 2017 Prof.

GridLang: Grid Based Game Development Language Language Reference Manual. Programming Language and Translators - Spring 2017 Prof. GridLang: Grid Based Game Development Language Language Reference Manual Programming Language and Translators - Spring 2017 Prof. Stephen Edwards Akshay Nagpal Dhruv Shekhawat Parth Panchmatia Sagar Damani

More information

Programming. We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems.

Programming. We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems. Plan for the rest of the semester: Programming We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems. We saw earlier that computers

More information

CS 241 Data Organization using C Project 3: Tron Spring 2017

CS 241 Data Organization using C Project 3: Tron Spring 2017 CS 241 Data Organization using C Project 3: Tron Spring 2017 Instructor: Joel Castellanos e-mail: joel@unm.edu Web: http://cs.unm.edu/~joel/ 4/29/2017 Tron Spring 2017: Project Outline (1 of 3) 1) The

More information

Introduction. QuickStart and Demo Scenes. Support & Contact info. Thank you for purchasing!

Introduction. QuickStart and Demo Scenes. Support & Contact info. Thank you for purchasing! RELEASE NOTES V.4.1 / JUNE.2017 Contents Introduction... 3 QuickStart and Demo Scenes... 3 Support & Contact info... 3 How to use the asset in your project... 4 Custom Editor Properties... 4 Grid Configuration:...

More information

Review Chapter 6 in Bravaco. Short Answers 1. This type of method does not return a value. a. null b. void c. empty d. anonymous

Review Chapter 6 in Bravaco. Short Answers 1. This type of method does not return a value. a. null b. void c. empty d. anonymous Assignment 3 Methods Review CSC 123 Fall 2018 Notes: All homework must be submitted via e-mail. All parts of assignment must be submitted in a single e-mail with multiple attachments when required. Notes:

More information

CS201 - Assignment 3, Part 2 Due: Wednesday March 5, at the beginning of class

CS201 - Assignment 3, Part 2 Due: Wednesday March 5, at the beginning of class CS201 - Assignment 3, Part 2 Due: Wednesday March 5, at the beginning of class For this assignment we will be developing a text-based Tic Tac Toe game 1. The key to this assignment is that we re going

More information

CS Programming I: ArrayList

CS Programming I: ArrayList CS 200 - Programming I: ArrayList Marc Renault Department of Computer Sciences University of Wisconsin Madison Spring 2018 TopHat Sec 3 (AM) Join Code: 427811 TopHat Sec 4 (PM) Join Code: 165455 ArrayLists

More information

www.thestudycampus.com Recursion Recursion is a process for solving problems by subdividing a larger problem into smaller cases of the problem itself and then solving the smaller, more trivial parts. Recursion

More information

At this time we have all the pieces necessary to allocate memory for an array dynamically. Following our example, we allocate N integers as follows:

At this time we have all the pieces necessary to allocate memory for an array dynamically. Following our example, we allocate N integers as follows: Pointers and Arrays Part II We will continue with our discussion on the relationship between pointers and arrays, and in particular, discuss how arrays with dynamical length can be created at run-time

More information

Integration Test Plan. Angry Face Studios

Integration Test Plan. Angry Face Studios Integration Test Plan Angry Face Studios April 9, 2008 Contents 1 Revision History 3 2 Introduction 4 2.1 Scope................................................. 4 2.2 Purpose................................................

More information