Project: Minesweeper Online EDA095

Size: px
Start display at page:

Download "Project: Minesweeper Online EDA095"

Transcription

1 Project: Minesweeper Online EDA095 Oscar Axelsson, D11, Elliot Jalgard, D10, Philip Mårtensson, D10, Daniel Olsson, D11, May 19, 2015

2 1 Background The goal of this project was to decide upon and implement a programming assignment specifically revolving around network programming. Our choosen assignment was to implement a multiplayer enabled version of the popular Minesweeper game [1], allowing two players to compete with each other. In addition it was decided that the game should incorporate an integrated chat system for the two participating players. In traditional Minesweeper the player is presented by a grid of clickable squares. Beneath some of these squares are hidden mines and if the player clicks on a square containing a mine then the game is over. If a non-mine square is clicked then the square opens up and displays a number which signifies the total amount of mines located in the adjacent squares. Using this information it is up to the player to avoid clicking on mines until all mines have been avoided. In our multiplayer edition of this game, the goal is somewhat reversed and it is up to each player to find the most mines by clicking on them directly. The game is carried out in turns between the players. If a player clicks on a mine then he or she can continue on the same turn and try to find another mine. If however a non-mine is found then the turn is switched over to the other player. The first player who finds at least half of the total amount of mines wins. One of the group members had previously worked with a Minesweeper clone in Java. This implementation was used as base for our work. The original code had no multiplayer or network support and implemented the traditional Minesweeper concept previously explained. The original code can be found in [2]. 2 Requirements Specification A requirements specification was created before the system implementation started. Most of these requirements were included in the final implementation. At first there was some uncertainty regarding the purpose of the server and how it should be implemented. It was considered that the server could act as a sort of matchmaker which set up peer-to-peer connections between two players. It was also considered that it should be responsible for relaying changes between the two players, as well as keeping track of the current state of the field. Because of this there were no initial requirements on the server, instead we made two test versions of the servers and ended up with the latter non-peer-to-peer solution. The complete requirements specification is given below. 2.1 General Requirements The chat and game shall be contained in the same application window. A player enters his or her nickname at the start of the program. A player enters the address and port of the server at start of the program. The system should be written in Java. 1

3 2.2 Server Requirements After two clients have connected, the server should start the game. When a game has finished, the server should restart the game. The server should only support two players at all times. The server shall generate the game field and send it to the players when a game begins. The server keeps track of the number of mines each player has found. 2.3 Chat Requirements New messages in the chat should immediately be sent to the other player. A player writes a message in a field and then presses enter to send it. The full chat history is displayed for both players. A message in the chat history consists of one line and has the format: <NAME> says: <MESSAGE> 2.4 Game Requirements A square is opened by clicking on it. Must be exactly two players to play. Each player has a time limit of 15 seconds during his or her turn. When a square has been clicked by a player, the other player immediately sees the same change. A players loses his or her turn when a square not containing a mine is clicked. When it is not the players turn, he or she can not click on any square. The mine squares found by the current player is colored blue, while the ones found by the competing player is colored red. The game field consists of 16x16 squares. The game field contains 53 randomly selected mine squares. The remaining time of the turn is always displayed for the current player. 2

4 3 Model The system can be seperated into four different parts for an easier overview: The server The client The communication protocol between client and server The GUI describing the actual game The responsibilities of each part as well as important classes and threads are presented below. 3.1 The Server The server is responsible for connecting two clients to itself, and then provide these players with a server-generated game field. The server receives changes in the game from the clients in order to keep track of the game as well as relay changes to the other player. The server keeps track of the score between the players and when to end the game because someone won. The classes describing the server side are the following: Game The class Game describes a model of the game, providing functions such as game field generation and counting the score between players. The methods in this class are called by the Server-class during initialisation of a new game, and when new player input has arrived at the server InputThread InputThread is a thread class responsible for reading incoming data from the clients. This functionality is threaded in order to not block other parts of the server running simultaneously. The messages received are in the form of Message objects, which have been converted to Json objects for easy transfer. These Json objects are then reconverted in InputThread to their original Message object. In order to convert between Java and Json objects, a third party library called gson was used [3] OutputThread The OutputThread thread class is similar to InputThread, with the difference that it handles outgoing messages to the clients instead. This class thus converts Message objects from Java to Json and transmits them Server The Server class contains the base functionality of the server. Its constructor is responsible for connecting to two clients and then start the game. The class also acts as a monitor, as the field messages contains incoming and outgoing Message-objects to the clients accessed by InputThread and OutputThread. 3

5 One important method is the onmessagereceived-method, this is called as new messages arrives from the clients to the server. The method will interpret the contents of the message and perform suitable actions such as updating the game state or relay chat messages. This class contains the main-method for the server side of the system ServerGUI ServerGUI describes a simple GUI for the server, showing the number of connected clients. 3.2 The client The client side of the communication is rather small (apart from the GUI classes presented later). It handles communication with the server and updates the GUI as the game progresses. The classes on the client side are the following: Client Client is responsible for establishing a connection to a server as well as provide the GUI with methods to communicate with the server. As the user plays the game using the GUI, i.e. clicks on the squares, the method click is called and sends the coordinates of the clicked square to the server which is then able to update the state of the game. Similiar to the Server, Client contains a method named onmessagereceived which will interpret commands arriving from the server and update the GUI accordingly. This class contains the main-method of the client side. This method will ask the user for the server address and port, as well as the players username InputThread InputThread on the client side is implemented the same way as the previously described class with the same name on the server side. The only difference being it communicates with a Client-object instead of a Server-object OutputThread As with InputThread, OutputThread is implemented in the same way as its counterpart at the server side. 3.3 The Communication Protocol The communication protocol is at the application layer and is used to define how data sent between the clients and server should be interpreted. The components of the protocol are the following: 4

6 3.3.1 Message The Message-class acts as a container for data sent over the network. It is provided with commonly used constructors and methods getting and setting the contents. Some typical contents stored in a Message-object are the ID of the client who sent the message, new entries in the chat, as well as coordinates for clicks on the game field Protocol Protocol is not a Java class, but rather a Java enum which defines protocol constants used by both client and server during message interpretation. 3.4 The GUI Most of the GUI classes were provided in the code on which this project is based. However, new components providing the chat functionality has of course been added. Some of the older components of the GUI were modified in order to communicate with the Client-class. The classes were of course also updated for the multiplayer mode, such as mine squares being colored based on which player clicked on it. It should be noted that the GUI contains some logic also available at the server side. More specifically, it contains the logic for calculating the changes after a mine click. While it is common practice to seperate the logic from the user interface, this decision was made to reduce the amount of necessary data to send over the network. The reason is that all information that needs to be sent about a click on the game field is the click itself, and the server and other client can calculate the changes themselves instead of sending all the modified squares back and forth. Most of the GUI components are simple Java swing classes without need of deeper explanation. However there is one Thread-class called TimeHandler which is responsible for counting down the time without being blocked by other parts of the GUI. 4 User Manual In order to start the application, one of the players has to start the server. This is done by starting Server.jar by either double clicking on it or if that does not work run the following command in a terminal: java -jar Server.jar Afterwards, both players need to start the client and connect to the server. This is done by double clicking on Client.jar on both computers, or if that does not work by running the following command from a terminal: java -jar Client.jar When the client starts then the username should be entered as well as the 5

7 address and port of the server. Then click OK to connect. When both clients have connected the game will begin. 5 Conclusion In conclusion the project was successful and most of the initial ideas were implemented in the final product. Altough originally it was considered that the server was to play a larger role in the application, supporting more features such as matchmaking for many clients at the same time. This idea was however never implemented because we did not go with the peer-to-peer approach. The approach we did go with allowed for a nicer design where the server contained all (or most of) the logic of the game, which was thus seperated from the clients. An improvement to this could have been to keep track of many different game sessions in the server, as a single server for only two players may be considered as a waste. Doing this would not require too much extra work, but some changes to the application layer protocol and data structures may be needed. There are some bad parts of the program, mainly related to error handling, that would not be accepted if this was a commercial product. For example, if a client connects to the server and then disconnects before the other client has connected, the server will stop working until restarted. There is also a rather rare bug sometimes occuring when coloring a mine square in which it will be colored wrong in one of the clients. We have looked into this bug but did not find any solution, but because of its rarity it can be neglected. All in all we thought the project was fun and good practice. It was especially appriciated that we could select our own application to implement freely as it provided us with more motivation and allowed us to practice finding requirements in a system, as opposed to how other courses often give you these requirements from the beginning. 6 Program Listings The source code and the program itself can be downloaded from: References [1] Minesweeper (video game), Wikipedia, Minesweeper_%28video_game%29, ( ) [2] minesweeper, Github, ( ) [3] google-gson, Github, ( ) 6

Solving Minesweeper Using CSP

Solving Minesweeper Using CSP Solving Minesweeper Using CSP AI Course Final Project Gil & Chai Usage (After using Makefile) java player/aiplayer

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

Programming assignment A

Programming assignment A Programming assignment A ASCII Minesweeper Official release on Feb 14 th at 1pm (Document may change before then without notice) Due 5pm Feb 25 th Minesweeper is computer game that was first written in

More information

Semester Project Report Mobile Application for Online Surakarta Battle

Semester Project Report Mobile Application for Online Surakarta Battle Semester Project Report Mobile Application for Online Surakarta Battle COMP4342 Mobile Computing Department of Computing The Hong Kong Polytechnic University CHAU Tsz Ling 15067489D FU Kuo-Hao, 14112466D

More information

CPSC 217 Assignment 3

CPSC 217 Assignment 3 CPSC 217 Assignment 3 Due: Monday November 23, 2015 at 12:00 noon Weight: 7% Sample Solution Length: 135 lines, including some comments (not including the provided code) Individual Work: All assignments

More information

JetVote User Guide. Table of Contents

JetVote User Guide. Table of Contents User Guide English Table of Contents 1 General Information... 3 Minimum System Requirements... 3 2 Getting Started... 4 Software Installation... 4 Installing the Server... 4 Installing Quiz Packets (Optional)...

More information

WorldMaker User Manual

WorldMaker User Manual WorldMaker 2000 User Manual CITE, University of Hong Kong, 2001 All instructions/comments in blue are relevant only for the multiplayer mode for WorldMaker 2000. CITE, University of Hong Kong Page 1 12/20/2001

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

Pizza Delivery Helper

Pizza Delivery Helper Pizza Delivery Helper Aldo Doronzo 2008 / 2009 Abstract This is a report describing the Pizza Delivery Helper project realized during the course of Mobile Services taught by prof. Ricci at the Free University

More information

DCN Simultaneous Interpretation. Software User Manual en LBB 3572

DCN Simultaneous Interpretation. Software User Manual en LBB 3572 DCN en LBB 3572 GENERAL CONTENTS Chapter 1-1.1 About 1.2 Interpretation procedures Chapter 2 - Getting Started 2.1 Starting 2.2 Using Help Chapter 3 - Preparing for a Conference 3.1 The interpretation

More information

Network programming EDA095 Hockeypong - Project report

Network programming EDA095 Hockeypong - Project report Network programming EDA095 Hockeypong - Project report Anton Persson 890324 antonjpersson@gmail.com Björn Elmers 880224 bjornelmers@gmail.com Linus Hammarlund 910414 linus.hammarlund@gmail.com Gunnar Weibull

More information

Lecture (03) Network Model

Lecture (03) Network Model ١ Lecture (03) Network Model By: Dr. Ahmed ElShafee Agenda Layering concept History Discovering the network layers Application Layer same layer interaction concept; Transport Layer Adjacent layer interaction

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

Multiplayer Game Programming

Multiplayer Game Programming Multiplayer Game Programming Phoenix area game developer since 2001 Teacher at Art Institute since 2006 Worked on a variety of educational and commercial games Author of itween Visual Editor and CameraFor2D

More information

Project MineSweeper Collaboration: Solo Complete this Project by yourself or with help from Section Leaders and Rick You are asked to write the non-graphical user interface aspects of the popular game

More information

Problem A: Collatz Conjecture

Problem A: Collatz Conjecture Problem A: Collatz Conjecture The Collatz conjecture which is also known as the 3n + conjecture is a very well known and old conjecture in mathematics. The conjecture is as follows. Take any natural number

More information

CompClass User Guide for Students The Bedford Handbook, Seventh Edition. Hacker

CompClass User Guide for Students The Bedford Handbook, Seventh Edition. Hacker CompClass User Guide for Students The Bedford Handbook, Seventh Edition Hacker Getting Started with CompClass for The Bedford Handbook, Seventh Edition Table of Contents Overview... 1 Getting Help... 1

More information

Data Mining. Kohonen Networks. Data Mining Course: Sharif University of Technology 1

Data Mining. Kohonen Networks. Data Mining Course: Sharif University of Technology 1 Data Mining Kohonen Networks Data Mining Course: Sharif University of Technology 1 Self-Organizing Maps Kohonen Networks developed in 198 by Tuevo Kohonen Initially applied to image and sound analysis

More information

2008 Canadian Computing Competition: Junior Division. Sponsor:

2008 Canadian Computing Competition: Junior Division. Sponsor: 2008 Canadian Computing Competition: Junior Division Sponsor: 1 Canadian Computing Competition Student Instructions for the Junior Problems 1. You may only compete in one competition. If you wish to write

More information

CompClass User Guide for Students Rules for Writers, Sixth Edition. Hacker

CompClass User Guide for Students Rules for Writers, Sixth Edition. Hacker CompClass User Guide for Students Rules for Writers, Sixth Edition Hacker Getting Started with CompClass for Rules for Writers, Sixth Edition Table of Contents Overview... 1 Getting Help... 1 System Requirements...

More information

HMMT February 2018 February 10, 2018

HMMT February 2018 February 10, 2018 HMMT February 2018 February 10, 2018 Combinatorics 1. Consider a 2 3 grid where each entry is one of 0, 1, and 2. For how many such grids is the sum of the numbers in every row and in every column a multiple

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

Lesson 2. Introducing Apps. In this lesson, you ll unlock the true power of your computer by learning to use apps!

Lesson 2. Introducing Apps. In this lesson, you ll unlock the true power of your computer by learning to use apps! Lesson 2 Introducing Apps In this lesson, you ll unlock the true power of your computer by learning to use apps! So What Is an App?...258 Did Someone Say Free?... 259 The Microsoft Solitaire Collection

More information

Today s Topics. Percentile ranks and percentiles. Standardized scores. Using standardized scores to estimate percentiles

Today s Topics. Percentile ranks and percentiles. Standardized scores. Using standardized scores to estimate percentiles Today s Topics Percentile ranks and percentiles Standardized scores Using standardized scores to estimate percentiles Using µ and σ x to learn about percentiles Percentiles, standardized scores, and the

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

Cleaning a Course Shell

Cleaning a Course Shell Cleaning a Course Shell Sometimes you copy information from the wrong course or copy duplicate information and need to remove it. Unfortunately there isn t an easy way of doing this, you have to clean

More information

Codewords: A Massively Multiplayer Board Game built with Angular

Codewords: A Massively Multiplayer Board Game built with Angular Codewords: A Massively Multiplayer Board Game built with Angular Hi! I m Mike. 2 Hi! I m Mike. I like board games. 3 A LOT 4 In late 2017 I wanted to.. Learn Angular 4 + WebSockets See how Django Channels

More information

Welcome to Technology Class. 7 th Grade: Web Design 8 th Grade: Digital Animation

Welcome to Technology Class. 7 th Grade: Web Design 8 th Grade: Digital Animation Welcome to Technology Class 7 th Grade: Web Design 8 th Grade: Digital Animation Syllabus We will go over important details of the syllabus YOU WILL NOT RECEIVE A NEW COPY IF YOU LOSE IT Be sure to return

More information

Minesweeper as a Tool of Probability

Minesweeper as a Tool of Probability Minesweeper as a Tool of Probability Gautham B A Branch-Dept. of Computer Science College-PES Institute of Technology, BSK 3 rd stage, Bangalore, India Abstract Minesweeper can be used as a tool for experimenting

More information

Gaming Service. Ankit Narang Ankit Sagwal Saurabh Gupta Sabyasachi Haldar

Gaming Service. Ankit Narang Ankit Sagwal Saurabh Gupta Sabyasachi Haldar Gaming Service Ankit Narang Ankit Sagwal Saurabh Gupta Sabyasachi Haldar 6th November 2008 Contents 1 Introduction 3 2 Problem Statement and Interpretation 4 2.1 Problem Statement........................

More information

CS61BL: Data Structures & Programming Methodology Summer Project 1: Dots!

CS61BL: Data Structures & Programming Methodology Summer Project 1: Dots! CS61BL: Data Structures & Programming Methodology Summer 2014 Project 1: Dots! Note on compiling Board.java You will not be able to compile Board.java until you make your own CantRemoveException class.

More information

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial Eclipse JWT Java Workflow Tooling Title of this document Workflow Editor (WE): Installation and Usage Tutorial Document information last changes component version 13.02.2008 0.4.0 Document created by Florian

More information

OUTPERFORMING GAME SERVER ENGINE FOR REAL-TIME MULTIPLAYER GAMES

OUTPERFORMING GAME SERVER ENGINE FOR REAL-TIME MULTIPLAYER GAMES OUTPERFORMING GAME SERVER ENGINE FOR REAL-TIME MULTIPLAYER GAMES 01 ifun Engine ifun Engine helps you meet tight milestones and lift productivity making AAA-quality real-time game servers. Fast time-to-market

More information

CSE 332: Data Structures and Parallelism Autumn 2017 Setting Up Your CSE 332 Environment In this document, we will provide information for setting up Eclipse for CSE 332. The first s ection covers using

More information

Assignment 2 Team Project: Distributed System and Application

Assignment 2 Team Project: Distributed System and Application Assignment 2 Team Project: Distributed System and Application Dr. Rajkumar Buyya and Dr. Maria Sossa Cloud Computing and Distributed Systems (CLOUDS) Laboratory School of Computing and Information Systems

More information

In this lesson you will learn: How to capture the input from the user. How to write programs using variables and lists. Athletics Swimming Gymnastics

In this lesson you will learn: How to capture the input from the user. How to write programs using variables and lists. Athletics Swimming Gymnastics Lesson 4 A m In this lesson you will learn: How to capture the input from the user. How to write programs using variables and lists. Advanced Scratch Sports Day Jyoti and Tejas are planning to create a

More information

CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server

CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server Sandeep Sarat Andreas Terzis February 19, 2007 1 Introduction For your first project you will have to write a client and a server for

More information

Client Side Scripting. The Bookshop

Client Side Scripting. The Bookshop Client Side Scripting The Bookshop Introduction This assignment is a part of three assignments related to the bookshop website. Currently design part (using HTML and CSS) and server side script (using

More information

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

Assignment #3 CSCI 201 Spring % of course grade Title Weathermeister Back-End API Integration

Assignment #3 CSCI 201 Spring % of course grade Title Weathermeister Back-End API Integration Assignment #3 CSCI 201 4.5% of course grade Title Weathermeister Back-End API Integration Topics Covered Java Classes HTML CSS Basic Java Topics Java Servlets JSP JavaScript AJAX Databases SQL JDBC Overview

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

Statistics Case Study 2000 M. J. Clancy and M. C. Linn

Statistics Case Study 2000 M. J. Clancy and M. C. Linn Statistics Case Study 2000 M. J. Clancy and M. C. Linn Problem Write and test functions to compute the following statistics for a nonempty list of numeric values: The mean, or average value, is computed

More information

USC ARES: Adding A Full Proxy User

USC ARES: Adding A Full Proxy User USC ARES: Adding A Full Proxy User If you are too busy to take care of reserve matters personally, you may have an office assistant or TA work in Ares on your behalf by virtue of a proxy user account.

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

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment This document guides you through setting up Eclipse for CSE 332. The first section covers using gitlab to access

More information

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

Network Applications and Protocols

Network Applications and Protocols Network Applications and Protocols VoIP (Voice over Internet Protocol) Voice over IP (VoIP) is a methodology and group of technologies for the delivery of voice communications and multimedia sessions over

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

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2.1 PROTOCOLS PROTOCOL Protocol a set of rules governing the way that devices communicate with each other. With networks and the Internet, we need to allow

More information

Google Sheets: Spreadsheet basics

Google Sheets: Spreadsheet basics Google Sheets: Spreadsheet basics You can find all of your spreadsheets on the Google Sheets home screen or in Google Drive. Create a spreadsheet On the Sheets home screen, click Create new spreadsheet

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

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy Que: -Proxy server Introduction: Proxy simply means acting on someone other s behalf. A Proxy acts on behalf of the client or user to provide access to a network service, and it shields each side from

More information

Basic Keywords Practice Session

Basic Keywords Practice Session Basic Keywords Practice Session Introduction In this article from my free Java 8 course, we will apply what we learned in my Java 8 Course Introduction to our first real Java program. If you haven t yet,

More information

If you re a Facebook marketer, you re likely always looking for ways to

If you re a Facebook marketer, you re likely always looking for ways to Chapter 1: Custom Apps for Fan Page Timelines In This Chapter Using apps for Facebook marketing Extending the Facebook experience Discovering iframes, Application Pages, and Canvas Pages Finding out what

More information

User Guide Preface Readme Audience Vocabulary Navigation

User Guide Preface Readme Audience Vocabulary Navigation User Guide AJ De Las Alas, Tiffany Chan, Stephanie Tran, Viet Tran 1.0 Preface 1.1 Readme DELTA is an application that belongs to Julie Schweitzer s research group. After the application is opened, the

More information

TMG Clerk. User Guide

TMG  Clerk. User Guide User Guide Getting Started Introduction TMG Email Clerk The TMG Email Clerk is a kind of program called a COM Add-In for Outlook. This means that it effectively becomes integrated with Outlook rather than

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

How to Configure SSH Tunnel in Remote Desktop Manager

How to Configure SSH Tunnel in Remote Desktop Manager How to Configure SSH Tunnel in Remote Desktop Manager SSH TUNNEL ENTRY. LET S TAKE A DEEPER LOOK AT IT! We often receive questions about our SSH Tunnel entry. What does it do exactly? When do you need

More information

Clean & Speed Up Windows with AWO

Clean & Speed Up Windows with AWO Clean & Speed Up Windows with AWO C 400 / 1 Manage Windows with this Powerful Collection of System Tools Every version of Windows comes with at least a few programs for managing different aspects of your

More information

CS2113 Lab: Collections 10/29/2018

CS2113 Lab: Collections 10/29/2018 CS2113 Lab: Collections Yawei Wang 10/29/2018 Install and Use IntelliJ on Mac or Window If you haven t installed JDK before, go to https://www.oracle.com/technetwork/java/javaseproducts/downloads/in dex.html

More information

USING BRIDGE SCORER WITH BRIDGEMATE PRO

USING BRIDGE SCORER WITH BRIDGEMATE PRO USING BRIDGE SCORER WITH BRIDGEMATE PRO There are 4 elements to know about: a. The Server b. The Bridgemate scoring devices (i.e. the units that are put on each bridge table) c. Bridge Scorer program d.

More information

Name 8-6A. 1. What type of quadrilateral is shown below? A Rectangle B Trapezoid C Rhombus D Square. 2. What is true about every rhombus?

Name 8-6A. 1. What type of quadrilateral is shown below? A Rectangle B Trapezoid C Rhombus D Square. 2. What is true about every rhombus? Quick Check 1. What type of quadrilateral is shown below? A Rectangle B Trapezoid C Rhombus D Square 2. What is true about every rhombus? A All angles are equal. B All sides are equal. C Exactly one pair

More information

CMSC 201 Spring 2018 Project 3 Minesweeper

CMSC 201 Spring 2018 Project 3 Minesweeper CMSC 201 Spring 2018 Project 3 Minesweeper Assignment: Project 3 Minesweeper Due Date: Design Document: Friday, May 4th, 2018 by 8:59:59 PM Project: Friday, May 11th, 2018 by 8:59:59 PM Value: 80 points

More information

METRO BUS TRACKING SYSTEM

METRO BUS TRACKING SYSTEM METRO BUS TRACKING SYSTEM Muthukumaravel M 1, Manoj Kumar M 2, Rohit Surya G R 3 1,2,3UG Scholar, Dept. Of CSE, Panimalar Engineering College, Tamil Nadu, India. 1muthukumaravel.muthuraman@gmail.com, 2

More information

Integers and the Coordinate Plane

Integers and the Coordinate Plane Name Date Class 9A Dear Family, A Family Letter: Understanding Integers The student will begin the study of an important set of numbers called integers. Integers are the set of numbers that include all

More information

Add in a new balloon sprite, and a suitable stage backdrop.

Add in a new balloon sprite, and a suitable stage backdrop. Balloons Introduction You are going to make a balloon-popping game! Step 1: Animating a balloon Activity Checklist Start a new Scratch project, and delete the cat sprite so that your project is empty.

More information

Sample Exam Problems For the Material in A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency

Sample Exam Problems For the Material in A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency Sample Exam Problems For the Material in A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency Solutions Not Included For more information, see http://www.cs.washington.edu/homes/djg/teachingmaterials.

More information

Prepare a stem-and-leaf graph for the following data. In your final display, you should arrange the leaves for each stem in increasing order.

Prepare a stem-and-leaf graph for the following data. In your final display, you should arrange the leaves for each stem in increasing order. Chapter 2 2.1 Descriptive Statistics A stem-and-leaf graph, also called a stemplot, allows for a nice overview of quantitative data without losing information on individual observations. It can be a good

More information

WWW Applications for an Internet Integrated Service Architecture

WWW Applications for an Internet Integrated Service Architecture WWW Applications for an Internet Integrated Service Architecture T. V. Do, B. Kálmán, Cs. Király, Zs. Mihály, Zs. Molnár, Zs. Pándi Department of Telecommunications Technical University of Budapest Fax:

More information

Using SportDiscus (and Other Databases)

Using SportDiscus (and Other Databases) Using SportDiscus (and Other Databases) Databases are at the heart of research. Google is a database, and it receives almost 6 billion searches every day. Believe it or not, however, there are better databases

More information

6 counterintuitive strategies to put your list building efforts into overdrive

6 counterintuitive strategies to put your list building efforts into overdrive 6 counterintuitive strategies to put your list building efforts into overdrive Ant Carter is an online marketer, blogger and educator. Find out more about me, and the mission I have to free 1,000 people

More information

Problem Tutorial: Alternating Serves

Problem Tutorial: Alternating Serves Monash University, May 6, 207 Problem Tutorial: Alternating Serves This problem is fairly straightforward. The score itself is somewhat irrelevant. All we care about is the sum of Darcy s and Rajko s score.

More information

USC ARES: Add A Class Proxy User

USC ARES: Add A Class Proxy User USC ARES: User If you are too busy to take care of reserve matters personally, you may have an office assistant or TA work in Ares on your behalf by virtue of a proxy user account. There are two kinds

More information

SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition

SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition Getting Started with SpeechClass for A Speaker s Guidebook, Fourth Edition Table of Contents Overview... 1 Getting Help... 1 System

More information

Generating All Solutions of Minesweeper Problem Using Degree Constrained Subgraph Model

Generating All Solutions of Minesweeper Problem Using Degree Constrained Subgraph Model 356 Int'l Conf. Par. and Dist. Proc. Tech. and Appl. PDPTA'16 Generating All Solutions of Minesweeper Problem Using Degree Constrained Subgraph Model Hirofumi Suzuki, Sun Hao, and Shin-ichi Minato Graduate

More information

Auto Print User s Manual

Auto Print User s Manual Auto Print User s Manual Welcome... 2 Configuring the Add-in... 3 AutoPrint Incoming Email Tab... 4 AutoPrint Outgoing Email Tab... 6 Print Settings Tab... 7 Print Now Tab... 9 Exceptions Tab... 10 Troubleshooting...

More information

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles http://www.madebymany.co.uk/ server push HTTP

More information

X e c l i P. user`s guide

X e c l i P. user`s guide X e c l i P user`s guide XecliP table of contents: XecliP User Guide Getting started 1.1 Connecting to XecliP-Server Concepts 2.1 UserView 2.2 UserProfileDialog 2.3 SessionDefinitionDialog 2.4 SessionWizard

More information

Hijacking Bitcoin: Routing Attacks on Cryptocurrencies

Hijacking Bitcoin: Routing Attacks on Cryptocurrencies Maria Apostolaki 1, Aviv Zohar 2, Laurent Vanbever 1 Presented by Pascal Blöchlinger 1 ETH Zürich, 2 The Hebrew University Motivation Money Security Rising interest Lacking knowledge of participants Overview

More information

Allworx User s Guide. (Release 7.3)

Allworx User s Guide. (Release 7.3) Allworx User s Guide (Release 7.3) No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopy, recording,

More information

Google Sheets: Spreadsheet basics

Google Sheets: Spreadsheet basics Google Sheets: Spreadsheet basics To view all of your Google sheets, or to create a new spreadsheet, visit docs.google.com/spreadsheets. Create a spreadsheet From the Google Sheets home screen, click the

More information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

How I Made $10,000 from Passive Affiliate Income in One Month

How I Made $10,000 from Passive Affiliate Income in One Month How I Made $10,000 from Passive Affiliate Income in One Month Two months ago, I had my best month ever in passive income. I finally broke through the $10,000 mark. All from a single page on my site and

More information

Due Date: Two Program Demonstrations (Testing and Debugging): End of Lab

Due Date: Two Program Demonstrations (Testing and Debugging): End of Lab CSC 111 Fall 2005 Lab 6: Methods and Debugging Due Date: Two Program Demonstrations (Testing and Debugging): End of Lab Documented GameMethods file and Corrected HighLow game: Uploaded by midnight of lab

More information

Exercise: Graphing and Least Squares Fitting in Quattro Pro

Exercise: Graphing and Least Squares Fitting in Quattro Pro Chapter 5 Exercise: Graphing and Least Squares Fitting in Quattro Pro 5.1 Purpose The purpose of this experiment is to become familiar with using Quattro Pro to produce graphs and analyze graphical data.

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

LPF Training Handbook!

LPF Training Handbook! LPF Training Handbook M Hewitson 2014-04-25 1. Introduction 1 2. Software setup 1 Accessing the relevant software repositories 2 Getting the software 3 Installing LTPDA 3 Installation of Extension modules

More information

Let s work together. Instructions pcvisit ProfiSupport version from

Let s work together. Instructions pcvisit ProfiSupport version from Instructions pcvisit ProfiSupport version from 24.07.2009 pcvisit ProfiSupport is a streamlined solution specifically suited to the task of facilitating IT support. The software allows support worldwide,

More information

Comping Guide. Rafflecopter & Blogs

Comping Guide. Rafflecopter & Blogs Comping Guide Blogs 2 Following blogs 2 Commenting on blogs 2 Prize promotions on blogs 4 Notifying winners 4 How to find Blog comps 4 Rafflecopter 5 Types of Rafflecopter giveaway 6 An example Rafflecopter

More information

Three Types of Probability

Three Types of Probability CHAPTER Three Types of Probability This article is not so much about particular problems or problem solving tactics as it is about labels. If you think about it, labels are a big key to the way we organize

More information

Tecniche di Progettazione: Design Patterns

Tecniche di Progettazione: Design Patterns Tecniche di Progettazione: Design Patterns GoF: Visitor 1 Polymorphism reminded: overriding and dynamic binding 2 Polymorphism reminded: overloading and static dispatch 3 Polymorphism reminded: overloading

More information

CS330 Project Assignments

CS330 Project Assignments CS330 Project Assignments as of Mon. Nov. 20, 2006 1.1 About EF Games EF Games have been introduced in the lecture of Sept.20. There are various books introducing the game rules; unfortunately, these are

More information

Partner Guide for bksblive (The Prince s Trust Account)

Partner Guide for bksblive (The Prince s Trust Account) Partner Guide for bksblive (The Prince s Trust Account) System requirements bksblive and associated software works in any web browser such as Internet Explorer, Mozilla Firefox, Google Chrome and Apple

More information

Section Marks Pre-Midterm / 32. Logic / 29. Total / 100

Section Marks Pre-Midterm / 32. Logic / 29. Total / 100 Name: CS 331 Final Exam Spring 2011 You have 110 minutes to complete this final exam. You are only allowed to use your textbook, your notes, your assignments and solutions to those assignments during this

More information

Texas Rapid Response Task Force Operator Notes

Texas Rapid Response Task Force Operator Notes Texas Rapid Response Task Force Operator Notes Version 2.0 Tom Whiteside N5TW December 15, 2013 Changes with Version 2.0: This revision includes major changes associated with the new Winlink software.

More information

CPSC 340: Machine Learning and Data Mining. Principal Component Analysis Fall 2017

CPSC 340: Machine Learning and Data Mining. Principal Component Analysis Fall 2017 CPSC 340: Machine Learning and Data Mining Principal Component Analysis Fall 2017 Assignment 3: 2 late days to hand in tonight. Admin Assignment 4: Due Friday of next week. Last Time: MAP Estimation MAP

More information

CS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2

CS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2 CS 1653: Applied Cryptography and Network Security Fall 2017 Term Project, Phase 2 Assigned: Tuesday, September 12 Due: Tuesday, October 3, 11:59 PM 1 Background Over the course of this semester, we will

More information

Graphs / Networks. CSE 6242/ CX 4242 Feb 18, Centrality measures, algorithms, interactive applications. Duen Horng (Polo) Chau Georgia Tech

Graphs / Networks. CSE 6242/ CX 4242 Feb 18, Centrality measures, algorithms, interactive applications. Duen Horng (Polo) Chau Georgia Tech CSE 6242/ CX 4242 Feb 18, 2014 Graphs / Networks Centrality measures, algorithms, interactive applications Duen Horng (Polo) Chau Georgia Tech Partly based on materials by Professors Guy Lebanon, Jeffrey

More information

Fundamentals of Computer Science II

Fundamentals of Computer Science II Fundamentals of Computer Science II Keith Vertanen Museum 102 kvertanen@mtech.edu http://katie.mtech.edu/classes/csci136 CSCI 136: Fundamentals of Computer Science II Keith Vertanen Textbook Resources

More information

Allworx User s Guide (Release x)

Allworx User s Guide (Release x) Allworx User s Guide (Release 6.8.1.x) -PAGE INTENTIONALLY LEFT BLANK- Table of Contents 1 VOICEMAIL...1 1.1 ACCESSING YOUR MESSAGE CENTER INBOX...1 1.2 LISTENING TO YOUR VOICEMAIL...2 1.3 SENDING VOICEMAIL

More information