Introduction to Bumpers

Size: px
Start display at page:

Download "Introduction to Bumpers"

Transcription

1 Software Engineering II: Project Organization & Management SS 2009 Introduction to Bumpers Prof. Bernd Bruegge, Ph.D. Applied Software Engineering Technische Universitaet Muenchen 1

2 Development of an Interactive Game Several cars are driving in a rectangular game board. Some cars are fast, others are slower The number of cars is arbitrary, but fixed at delivery time The player controls a certain car ( DrivenCar ) with the mouse The initial direction of each car is chosen by random The cars can collide with each other and with the border of the game board Each collision between cars leads to a winner and a looser The looser stops at the point of collision ( crashes ) If a car encounters the game border, it is bounced back depending on its speed and direction ( physical laws are followed ) 2

3 Development of an Interactive Game (2) The Goal: The player wins, if all opposing cars ( RobotCars ) are eliminated by colliding with them in the right way 3

4 Analysis and Design Questions How do we represent the game field? How do we model the cars? How do we animate all the cars simultaneously? What do we do, when a car hits the edge? How do we compute the new route? How do we compute a collision? Do we compute a new route for the winner? How do we control the driven car with the mouse? 4

5 Analysis: Use Cases Generating the game board Starting the Music Generating one or more cars Moving a car Starting the game Quitting the game Car hits another car Car hits border of game board Determining a collision 5

6 Analysis: Identification of Classes Generating the Gameboard Starting the Music Generating one or more cars Moving a car Starting the game Quitting the game Car hits another car Car hits border of game board Determining a collision Car Gameboard Referee Music 6

7 Object Model for GameBoard, Referee and Car 7

8 Analysis: Classification of Cars ( Taxonomy in the Application Domain ) Car UserCar FastCar SlowCar 8

9 A Game with one Opposing Car In Gameboard.java (bumpers:cars:gameboard.java) you determine the number of opponent cars (robot cars) 9

10 Object Design of Collisions How do we check for collisions? Where do we place the collision code? We have two possibilities: With the game field or with the cars If we want to make the game extensible, the type of collision is probably a function of the car type (most certainly of its size) If we let the cars determine the collisions, then every type car depends on every other type of car Example: When we introduce a new type of car, say a slow car, we have to modify every existing type of car, to implement collisions with slow cars. The maintainability of the game is much higher, if the game field handles the collisions. 10

11 Detailed Design of Collision Each car is represented by its bounding box This is the smallest rectangle, that contains all pixels of the picture of the car We get bounding box of a picture by calling getsize() followed by calling getposition(). (0,0) A collision occurs, if two given bounding boxes have at least one pixel in common (intersects()). Small problem: The picture of a car rarely resembles a rectangle, the bounding box often contains pixels that don t belong to the picture of the car. (x,y) h w To compensate for the empty space, we reduce the bounding box to 3/4 of its original size (with growth()), and place its center slightly to the lower left (with translate()). Remaining Problem: Who is the winner of the collision? 11

12 Detecting Collisions public void movecars() { // First each car makes a move // Then we check for collisions for (int i = 0; i < cars.length; i++{ if (cars[i].iscrunched( )) {continue;} Car crashedcar = collisionstrategy.detectcollision( drivencar, cars[i]); if(crashedcar!= null){ BANG.play(); crashedcar.setcrunched(); if(drivencar.iscrunched()){ stopgame(); }else{ // check if player won }}} Referee +startgame() + stopgame() + movecars() public Car detectcollision(car car1, Car car2){ Point p1 = car1.getposition( ); Dimension d1 = car1.getsize( ); Rectangle r1 = new Rectangle(p1, d1); r1.translate(p1.x / 8, p1.y / 8); r1.grow(-1 * d1.width / 4, -1 * d1.height / 4); Point p2 = car2.getposition( ); Dimension d2 = car2.getsize( ); Rectangle r2 = new Rectangle(p2, d2); r2.translate(p2.x / 8, p2.y / 8); r2.grow(-1 * d2.width / 4, -1 * d2.height / 4); if (r1.intersects(r2)) { if (p1.y > p2.y){return car2; }else{ return car1;} } return null; } Car +boolean * iscrunched() + Point getposition() + Dimension getsize() + setcrunched() 12

13 Relationship between Referee und Collisions Referee + movecars() + setcollisionstrategy(collisionstrategy) CollisionStrategy + detectcollision(car, Car) + getname() DefaultCollision LowerCarWinColision Is this a Bridge or a Strategy Pattern? 13

14 Strategy Pattern in Bumpers Client Strategy Game Toolbar + ItemStateChanged(ItemEvent) Referee + movecars() + setcollisionstrategy(collisionstrategy) CollisionStrategy + detectcollision(car, Car) + getname() DefaultCollision LowerCarWinColision Policy: e.g. User interface events 14

15 InstrumentFactory + createspeedometer(usercar) + createrotationspersecond(usercar) + createspeedcontroller(usercar) + creategps(usercar) + createbodyview(usercar) Abstract Factory Pattern in Bumpers EUFactory USFactory Instrument # thecar: UserCar + updateinstrument() Speedometer SpeedController GPS Body RotationsPerSecond US... EU... US... EU... US... EU... US... EU... US... EU... 15

16 Adapter Pattern in Bumpers InstrumentPanel Instruments # thecar + updateinstrument() AnalogSpeedometer - angle + getmaxangle() + setangle(int) AnalogSpeedometerAdapter - speedometer + updateinstrument() 16

Platform Games Drawing Sprites & Detecting Collisions

Platform Games Drawing Sprites & Detecting Collisions Platform Games Drawing Sprites & Detecting Collisions Computer Games Development David Cairns Contents Drawing Sprites Collision Detection Animation Loop Introduction 1 Background Image - Parallax Scrolling

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

Object Design II: Design Patterns

Object Design II: Design Patterns Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game

More information

Painting your window

Painting your window The Paint event "Painting your window" means to make its appearance correct: it should reflect the current data associated with that window, and any text or images or controls it contains should appear

More information

Collisions/Reflection

Collisions/Reflection Collisions/Reflection General Collisions The calculating whether or not two 2D objects collide is equivalent to calculating if the two shapes share a common area (intersect). For general polygons this

More information

D - Tic Tac Toe. Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9

D - Tic Tac Toe. Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9 D - Tic Tac Toe Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9 INTRODUCTION Let's use our 9 sparkles to build a tic tac toe game! Step 1 Assemble the Robot

More information

Erasmus+ Project: Yestermorrow Year 1 Maths: Pythagorean Theorem

Erasmus+ Project: Yestermorrow Year 1 Maths: Pythagorean Theorem Erasmus+ Project: Yestermorrow Year 1 Maths: Pythagorean Theorem Workshop (Coding Android Mobile Apps): Collision Detection and the Pythagorean Theorem (Based on the code.org worksheet) WORKSHOP OVERVIEW

More information

n Specifying what each method does q Specify it in a comment before method's header n Precondition q Caller obligation n Postcondition

n Specifying what each method does q Specify it in a comment before method's header n Precondition q Caller obligation n Postcondition Programming as a contract Assertions, pre/postconditions and invariants Assertions: Section 4.2 in Savitch (p. 239) Loop invariants: Section 4.5 in Rosen Specifying what each method does q Specify it in

More information

(C) 2010 Pearson Education, Inc. All rights reserved. Omer Boyaci

(C) 2010 Pearson Education, Inc. All rights reserved. Omer Boyaci Omer Boyaci A sprite must monitor the game environment, for example, reacting to collisions with different sprites or stopping when it encounters an obstacle. Collision processing can be split into two

More information

[ the academy_of_code] Senior Beginners

[ the academy_of_code] Senior Beginners [ the academy_of_code] Senior Beginners 1 Drawing Circles First step open Processing Open Processing by clicking on the Processing icon (that s the white P on the blue background your teacher will tell

More information

Introduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy

Introduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy Introduction to Unreal Engine Blueprints for Beginners By Chaven R Yenketswamy Introduction My first two tutorials covered creating and painting 3D objects for inclusion in your Unreal Project. In this

More information

Click on the empty form and apply the following options to the properties Windows.

Click on the empty form and apply the following options to the properties Windows. Start New Project In Visual Studio Choose C# Windows Form Application Name it SpaceInvaders and Click OK. Click on the empty form and apply the following options to the properties Windows. This is the

More information

Flowmap Generator Reference

Flowmap Generator Reference Flowmap Generator Reference Table of Contents Flowmap Overview... 3 What is a flowmap?... 3 Using a flowmap in a shader... 4 Performance... 4 Creating flowmaps by hand... 4 Creating flowmaps using Flowmap

More information

CS 3410 Ch 7 Recursion

CS 3410 Ch 7 Recursion CS 3410 Ch 7 Recursion Sections Pages 7.1-7.4, 7.7 93-319, 333-336 7.1 Introduction 1. A recursive method is a method that either directly or indirectly makes a call to itself. [Weiss]. It does this by

More information

QUESTIONS ACTIONS IN GAMEMAKER

QUESTIONS ACTIONS IN GAMEMAKER QUESTIONS ACTIONS IN GAMEMAKER Questions Actions are useful actions that come in handy when you need to check things, such as whether something exists, if there is a collision, if two values are the same

More information

(Refer Slide Time: 00:01:27 min)

(Refer Slide Time: 00:01:27 min) Computer Aided Design Prof. Dr. Anoop Chawla Department of Mechanical engineering Indian Institute of Technology, Delhi Lecture No. # 01 An Introduction to CAD Today we are basically going to introduce

More information

CS 201 Advanced Object-Oriented Programming Lab 4 - Asteroids, Part 2 Due: February 24/25, 11:30 PM

CS 201 Advanced Object-Oriented Programming Lab 4 - Asteroids, Part 2 Due: February 24/25, 11:30 PM CS 201 Advanced Object-Oriented Programming Lab 4 - Asteroids, Part 2 Due: February 24/25, 11:30 PM Introduction to the Assignment In this lab, you will complete the Asteroids program that you started

More information

3.2 A Three-Bar Linkage 51

3.2 A Three-Bar Linkage 51 3.2 A Three-Bar Linkage 51 It may happen that the drawing in Euclidean view is too big or too small. You can use the zooming tools to change this. There is a Zoom-In and a Zoom-Out tool below the Euclidean

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

CSE 142 Su01 Final Exam Sample Solution page 1 of 7

CSE 142 Su01 Final Exam Sample Solution page 1 of 7 CSE 142 Su01 Final Exam Sample Solution page 1 of 7 Answer all of the following questions. READ EACH QUESTION CAREFULLY. Answer each question in the space provided on these pages. Budget your time so you

More information

Object Design: Reuse, Part 2

Object Design: Reuse, Part 2 Object Design: Reuse, Part 2 Software Engineering I Lecture 12 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline of Today Abstract Methods and Abstract Classes Overwriting

More information

Bridges To Computing

Bridges To Computing Bridges To Computing General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. You are invited and encouraged to use this presentation to promote

More information

Introduction. Computer Vision & Digital Image Processing. Preview. Basic Concepts from Set Theory

Introduction. Computer Vision & Digital Image Processing. Preview. Basic Concepts from Set Theory Introduction Computer Vision & Digital Image Processing Morphological Image Processing I Morphology a branch of biology concerned with the form and structure of plants and animals Mathematical morphology

More information

Questions. 6. Suppose we were to define a hash code on strings s by:

Questions. 6. Suppose we were to define a hash code on strings s by: Questions 1. Suppose you are given a list of n elements. A brute force method to find duplicates could use two (nested) loops. The outer loop iterates over position i the list, and the inner loop iterates

More information

Programmierpraktikum

Programmierpraktikum Programmierpraktikum Claudius Gros, SS2012 Institut für theoretische Physik Goethe-University Frankfurt a.m. 1 of 18 17/01/13 11:46 Java Applets 2 of 18 17/01/13 11:46 Java applets embedding Java applications

More information

Making use of other Applications

Making use of other Applications AppGameKit 2 Collision Using Arrays Making use of other Applications Although we need game software to help makes games for modern devices, we should not exclude the use of other applications to aid the

More information

Create a memory DC for double buffering

Create a memory DC for double buffering Animation Animation is implemented as follows: Create a memory DC for double buffering Every so many milliseconds, update the image in the memory DC to reflect the motion since the last update, and then

More information

Practice Problems. Review, with SOME solutions

Practice Problems. Review, with SOME solutions Practice Problems Review, with SOME solutions Multiple Choice 1. Select the best functional requirement from the list of requirements below. a) A warning dialog should pop up if the student s assignment

More information

Form Properties Window

Form Properties Window C# Tutorial Create a Save The Eggs Item Drop Game in Visual Studio Start Visual Studio, Start a new project. Under the C# language, choose Windows Form Application. Name the project savetheeggs and click

More information

Assignment #3 Breakout!

Assignment #3 Breakout! Eric Roberts Handout #18 CS 106A January 26, 2005 Assignment #3 Breakout! Due: Friday, February 4, 5:00P.M. Your job in this assignment is to write the classic arcade game of Breakout. It is a large assignment,

More information

Using Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects

Using Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects Part 7: Collision Detection Virtuelle Realität Wintersemester 2007/08 Prof. Bernhard Jung Overview Bounding Volumes Separating Axis Theorem Using Bounding Volume Hierarchies Efficient Collision Detection

More information

Microsoft Robotics Studio Walk-through

Microsoft Robotics Studio Walk-through Microsoft Robotics Studio Walk-through Installation requisites This guide has been developed with Microsoft Robotics Studio (MSRS) 1.5 Refresh. Everything is license-free and can be downloaded from the

More information

Asteroid Destroyer How it Works

Asteroid Destroyer How it Works Asteroid Destroyer How it Works This is a summary of some of the more advance coding associated with the Asteroid Destroyer Game. Many of the events with in the game are common sense other than the following

More information

DigiPen Institute of Technology

DigiPen Institute of Technology DigiPen Institute of Technology Presents Session Eight: Behavior DigiPen Institute of Technology 5001 150th Ave NE, Redmond, WA 98052 Phone: (425) 558-0299 www.digipen.edu 2005 DigiPen (USA) Corporation.

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

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Morphology Identification, analysis, and description of the structure of the smallest unit of words Theory and technique for the analysis and processing of geometric structures

More information

CS106A Handout 18 Winter February 3, 2014 Practice Midterm Exam

CS106A Handout 18 Winter February 3, 2014 Practice Midterm Exam CS106A Handout 18 Winter 2013-2014 February 3, 2014 Practice Midterm Exam This handout is intended to give you practice solving problems that are comparable in format and difficulty to those which will

More information

Pong. Prof Alexiei Dingli

Pong. Prof Alexiei Dingli Pong Prof Alexiei Dingli Background Drag and Drop a background image Size 1024 x 576 X = 0, Y = 0 Rename it to BG Sorting objects Go to Sorting Layer Add a new Sorting Layer called Background Drag the

More information

C:\Users\weaver\Justin\Workspace\UAA_2011_A_Spring\CS470\Project\OrbitClash\OrbitClash\SolidEntity.cs

C:\Users\weaver\Justin\Workspace\UAA_2011_A_Spring\CS470\Project\OrbitClash\OrbitClash\SolidEntity.cs 1 #region Header Comments 2 3 /* $Id: SolidEntity.cs 1355 2011-03-25 22:53:42Z weaver $ 4 * 5 * Author: Justin Weaver 6 * Date: Mar 2011 7 * Description: Extendable abstract class to facilitate collision

More information

Robotics and Electronics Unit 5

Robotics and Electronics Unit 5 Robotics and Electronics Unit 5 Objectives. Students will work with mechanical push buttons understand the shortcomings of the delay function and how to use the millis function. In this unit we will use

More information

Graphics Overview ECE2893. Lecture 19. ECE2893 Graphics Overview Spring / 15

Graphics Overview ECE2893. Lecture 19. ECE2893 Graphics Overview Spring / 15 Graphics Overview ECE2893 Lecture 19 ECE2893 Graphics Overview Spring 2011 1 / 15 Graphical Displays 1 Virtually all modern computers use a full color Graphical Display device. 2 It displays images, text,

More information

What You're Building 2. Getting Started 3 Introduction 4 Iteration or how we will get to Finished App. 4

What You're Building 2. Getting Started 3 Introduction 4 Iteration or how we will get to Finished App. 4 Table of Contents What You're Building 2 Getting Started 3 Introduction 4 Iteration or how we will get to Finished App. 4 Iteration 1 Create still image of our Game 5 Getting Ready 5 Set up the Components

More information

Intro to Web Mapping with CartoDB

Intro to Web Mapping with CartoDB Intro to Web Mapping with CartoDB 1. Open Google Chrome and navigate to https://iu.box.com/cartodb download the demo_point_layer file. 2. Open a new tab and navigate to https://cartodb.com/ and Sign Up

More information

Chapter 11: Sprites - Introduction

Chapter 11: Sprites - Introduction This section deals with sprites Chapter 11: Sprites - Introduction They are discussed in terms of a game called BugRunner The game combines aspects of Pong and Space Invaders The basics of game play are

More information

CompSci 94 Making Decisions February 8, Prof. Susan Rodger

CompSci 94 Making Decisions February 8, Prof. Susan Rodger CompSci 94 Making Decisions February 8, 2018 Prof. Susan Rodger CompSci 94 Spring 2018 1 Class Today Asking questions and making decisions Using functions If statements CompSci 94 Spring 2018 2 Review

More information

We will start our journey into Processing with creating static images using commands available in Processing:

We will start our journey into Processing with creating static images using commands available in Processing: Processing Notes Chapter 1: Starting Out We will start our journey into Processing with creating static images using commands available in Processing: rect( ) line ( ) ellipse() triangle() NOTE: to find

More information

Adding Depth to Games

Adding Depth to Games Game Maker Tutorial Adding Depth to Games Written by Mark Overmars Copyright 2007-2009 YoYo Games Ltd Last changed: December 23, 2009 Uses: Game Maker 8.0, Pro Edition, Advanced Mode Level: Intermediate

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

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

Principles of Computer Game Design and Implementation. Lecture 11

Principles of Computer Game Design and Implementation. Lecture 11 Principles of Computer Game Design and Implementation Lecture 11 We already learned Vector operations Sum Subtraction Dot product Cross product A few others about jmonkey, eg. User input, camera, etc 2

More information

Problem A. The Lawyer

Problem A. The Lawyer Problem A. The Lawyer 1 second n segments on a straight line are given. The goal is to find two segments that do not cross (or determine such a pair does not exist) Find the segment with minimum right

More information

Heap Arrays and Linked Lists. Steven R. Bagley

Heap Arrays and Linked Lists. Steven R. Bagley Heap Arrays and Linked Lists Steven R. Bagley Recap Data is stored in variables Can be accessed by the variable name Or in an array, accessed by name and index Variables and arrays have a type Create our

More information

An ideal virtual camera system, regardless of genre, is notable by the lack of attention given to it by the viewer

An ideal virtual camera system, regardless of genre, is notable by the lack of attention given to it by the viewer dvanced amera ontrol IMGD 4000 Original source: Phil Wilkins (Sony Playstation Entertainment). Designing and Implementing a Dynamic amera System, Game Developer's onference, San Francisco,, US, 2008. n

More information

Advanced Camera Control. Overview. Camera Objectives. Zoning : Design. Zoning : Objectives 3/31/2016

Advanced Camera Control. Overview. Camera Objectives. Zoning : Design. Zoning : Objectives 3/31/2016 Note: if you don t notice camera, then it is working well! dvanced amera ontrol IMGD 4000 n ideal virtual camera system, regardless of genre, is notable by the lackof attention given to it by the viewer

More information

Major Assignment: Pacman Game

Major Assignment: Pacman Game Major Assignment: Pacman Game 300580 Programming Fundamentals Week 10 Assignment The major assignment involves producing a Pacman style game with Clara using the Greenfoot files that are given to you.

More information

Collections, Maps and Generics

Collections, Maps and Generics Collections API Collections, Maps and Generics You've already used ArrayList for exercises from the previous semester, but ArrayList is just one part of much larger Collections API that Java provides.

More information

CS61B Lecture #21: Tree Searching. Last modified: Wed Oct 12 19:23: CS61B: Lecture #21 1

CS61B Lecture #21: Tree Searching. Last modified: Wed Oct 12 19:23: CS61B: Lecture #21 1 CS61B Lecture #21: Tree Searching Last modified: Wed Oct 12 19:23:14 2016 CS61B: Lecture #21 1 Divide and Conquer Much (most?) computation is devoted to finding things in response to various forms of query.

More information

ADDING CONDITIONAL STATEMENTS PART 2

ADDING CONDITIONAL STATEMENTS PART 2 Begin programming: Build your first mobile game ADDING CONDITIONAL STATEMENTS PART 2 This document complements the Steps provided in Week 3 for adding conditional statements. The game wouldn t be a game

More information

1 Getting started with Processing

1 Getting started with Processing cis3.5, spring 2009, lab II.1 / prof sklar. 1 Getting started with Processing Processing is a sketch programming tool designed for use by non-technical people (e.g., artists, designers, musicians). For

More information

AN INTRODUCTION TO SCRATCH (2) PROGRAMMING

AN INTRODUCTION TO SCRATCH (2) PROGRAMMING AN INTRODUCTION TO SCRATCH (2) PROGRAMMING Document Version 2 (04/10/2014) INTRODUCTION SCRATCH is a visual programming environment and language. It was launched by the MIT Media Lab in 2007 in an effort

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

Express Yourself. Writing Your Own Classes

Express Yourself. Writing Your Own Classes Java Programming 1 Lecture 5 Defining Classes Creating your Own Classes Express Yourself Use OpenOffice Writer to create a new document Save the file as LastFirst_ic05 Replace LastFirst with your actual

More information

Lecture 17. Improving open-addressing hashing. Brent s method. Ordered hashing CSE 100, UCSD: LEC 17. Page 1 of 19

Lecture 17. Improving open-addressing hashing. Brent s method. Ordered hashing CSE 100, UCSD: LEC 17. Page 1 of 19 Lecture 7 Improving open-addressing hashing Brent s method Ordered hashing Page of 9 Improving open addressing hashing Recall the average case unsuccessful and successful find time costs for common openaddressing

More information

Marking Period 1. Marking Period 2

Marking Period 1. Marking Period 2 DEPARTMENT: Mathematics COURSE: Programming Through Games & Simulation Week Marking Period 1 1 Intro to Greenfoot 2 Little Crabs 3 Little Crabs 4 Fishing the Crab Game 5 Fishing the Crab Game 6 Fat Cat

More information

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1 UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series UG Examination 217-18 GRAPHICS 1 CMP-51B Time allowed: 2 hours Answer THREE from FOUR questions (4 marks each) Notes are not permitted

More information

CISC 1600, Lab 2.2: Interactivity in Processing

CISC 1600, Lab 2.2: Interactivity in Processing CISC 1600, Lab 2.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will again be using Sketchpad, a site for building processing sketches online using processing.js.

More information

CPSC 436D Video Game Programming

CPSC 436D Video Game Programming CPSC 436D Video Game Programming Strategy & Adversarial Strategy Strategy Given current state, determine BEST next move Short term: best among immediate options Long term: what brings something closest

More information

Today in CS161. Lecture #12 Arrays. Learning about arrays. Examples. Graphical. Being able to store more than one item using a variable

Today in CS161. Lecture #12 Arrays. Learning about arrays. Examples. Graphical. Being able to store more than one item using a variable Today in CS161 Lecture #12 Arrays Learning about arrays Being able to store more than one item using a variable Examples Tic Tac Toe board as an array Graphical User interaction for the tic tac toe program

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

Fault, Error, and Failure

Fault, Error, and Failure Fault, Error, and Failure Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel based on slides by Prof. Lin Tan and others Terminology, IEEE 610.12-1990 Fault -- often referred

More information

From Vertices To Fragments-1

From Vertices To Fragments-1 From Vertices To Fragments-1 1 Objectives Clipping Line-segment clipping polygon clipping 2 Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives

More information

CS 170 Java Programming 1. Week 12: Creating Your Own Types

CS 170 Java Programming 1. Week 12: Creating Your Own Types CS 170 Java Programming 1 Week 12: Creating Your Own Types What s the Plan? Topic 1: A Little Review Work with loops to process arrays Write functions to process 2D Arrays in various ways Topic 2: Creating

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

Announcements. CS18000: Problem Solving And Object-Oriented Programming

Announcements. CS18000: Problem Solving And Object-Oriented Programming Announcements Exam 1 Monday, February 28 Wetherill 200, 4:30pm-5:20pm Coverage: Through Week 6 Project 2 is a good study mechanism Final Exam Tuesday, May 3, 3:20pm-5:20pm, PHYS 112 If you have three or

More information

Notes 3: Actionscript to control symbol locations

Notes 3: Actionscript to control symbol locations Notes 3: Actionscript to control symbol locations Okay, you now know enough actionscript to shoot yourself in the foot, especially if you don t use types. REMEMBER to always declare vars and specify data

More information

PART A (5 pts): Assume an ArrayList named values contains the following eight numbers:

PART A (5 pts): Assume an ArrayList named values contains the following eight numbers: Compsci 6 Test 2 Spring 2008 PROBLEM 1 : (Repeat Repeat Repeat: (10 pts)) PART A (5 pts): Assume an ArrayList named values contains the following eight numbers: 4 5 22 7 15 31 40 24 int c = 0; for (int

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

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Binary image processing In binary images, we conventionally take background as black (0) and foreground objects as white (1 or 255) Morphology Figure 4.1 objects on a conveyor

More information

Acknowledgments. Who Should Read This Book?...xxiv How to Read This Book...xxiv What s in This Book?...xxv Have Fun!...xxvi

Acknowledgments. Who Should Read This Book?...xxiv How to Read This Book...xxiv What s in This Book?...xxv Have Fun!...xxvi Contents IN DeTAIl Acknowledgments xxi Introduction xxiii Who Should Read This Book?....xxiv How to Read This Book....xxiv What s in This Book?...xxv Have Fun!...xxvi Part I: Fundamentals 1 What Is JavaScript?

More information

Customizing DAZ Studio

Customizing DAZ Studio Customizing DAZ Studio This tutorial covers from the beginning customization options such as setting tabs to the more advanced options such as setting hot keys and altering the menu layout. Introduction:

More information

CSE373 Fall 2013, Second Midterm Examination November 15, 2013

CSE373 Fall 2013, Second Midterm Examination November 15, 2013 CSE373 Fall 2013, Second Midterm Examination November 15, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please

More information

Classes as Blueprints: How to Define New Types of Objects

Classes as Blueprints: How to Define New Types of Objects Unit 5, Part 1 Classes as Blueprints: How to Define New Types of Objects Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Types of Decomposition When writing a program, it's important

More information

Lecture Notes 4 More C++ and recursion CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson

Lecture Notes 4 More C++ and recursion CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson Lecture Notes 4 More C++ and recursion CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson Reading for this lecture: Carrano, Chapter 2 Copy constructor, destructor, operator=

More information

Creating Breakout - Part 2

Creating Breakout - Part 2 Creating Breakout - Part 2 Adapted from Basic Projects: Game Maker by David Waller So the game works, it is a functioning game. It s not very challenging though, and it could use some more work to make

More information

Random Testing in 321

Random Testing in 321 Random Testing in 321 1 Test Cases So Far Each test relates a particular input to a particular output. (test (bound-ids (with 'x (id 'y) (id 'x))) '(x)) (test (binding-ids (with 'x (id 'y) (id 'x))) '(x))

More information

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes

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

Breakout YEAH hours. Brahm Capoor & Jared Wolens

Breakout YEAH hours. Brahm Capoor & Jared Wolens Breakout YEAH hours Brahm Capoor & Jared Wolens Road Map YEAH hour schedule Deadline: Due Wednesday, February 8th Lecture Review Using the debugger Assignment Overview Q&A! YEAH hours this quarter Assignment

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

Functions. Functions. nofill(); point(20, 30); float angle = map(i, 0, 10, -2, 2); parameters return values

Functions. Functions. nofill(); point(20, 30); float angle = map(i, 0, 10, -2, 2); parameters return values Functions parameters return values 06 Functions 1 Functions Code that is packaged so it can be run by name Often has parameters to change how the function works (but not always) Often performs some computation

More information

CS32 Discussion Week 3

CS32 Discussion Week 3 CS32 Discussion Week 3 Muhao Chen muhaochen@ucla.edu http://yellowstone.cs.ucla.edu/~muhao/ 1 Outline Doubly Linked List Sorted Linked List Reverse a Linked List 2 Doubly Linked List A linked list where

More information

MD2 format/ Interesting Worlds. CS116A Chris Pollett Nov. 10, 2004.

MD2 format/ Interesting Worlds. CS116A Chris Pollett Nov. 10, 2004. MD2 format/ Interesting Worlds CS116A Chris Pollett Nov. 10, 2004. Outline MD2 file format Pop and Quake Ballworld Game MD2 and MD3 file formats Used in projects based on the id software s Quake engine.

More information

CISC 1600, Lab 3.2: Interactivity in Processing

CISC 1600, Lab 3.2: Interactivity in Processing CISC 1600, Lab 3.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using OpenProcessing, a site for building processing sketches online using processing.js. 1.1.

More information

Computational Geometry TOPICS Preliminaries Point in a Polygon Polygon Construction Convex Hulls

Computational Geometry TOPICS Preliminaries Point in a Polygon Polygon Construction Convex Hulls Computational Geometry TOPICS Preliminaries Point in a Polygon Polygon Construction Convex Hulls CSE5311 Kumar 1 Geometric Algorithms Geometric Algorithms find applications in such areas as Computer Graphics

More information

CoderDojo Activity Cards: The Cards (Animation2.html): How to use: Student comes to mentor, and together they choose a card to do next.

CoderDojo Activity Cards: The Cards (Animation2.html): How to use: Student comes to mentor, and together they choose a card to do next. CoderDojo Activity Cards: How to use: Student comes to mentor, and together they choose a card to do next. The idea is always to choose a card that is interesting, and at the right level for the moment,

More information

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations

More information

Chapter 6: The Assembler The Assembler Hack Assembly-to-Binary Translation Specification

Chapter 6: The Assembler The Assembler Hack Assembly-to-Binary Translation Specification Chapter 6: The Assembler 1 1. Introduction Work in progress. 6. The Assembler 1 2. Hack Assembly-to-Binary Translation Specification This section gives a complete specification of the translation between

More information

l Without collision detection (CD), it is practically impossible to construct e.g., games, movie production tools (e.g., Avatar)

l Without collision detection (CD), it is practically impossible to construct e.g., games, movie production tools (e.g., Avatar) Collision Detection Originally created by Tomas Akenine-Möller Updated by Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Introduction l Without collision detection (CD),

More information

Introduction. Create a New Project. Create the Main Form. Assignment 1 Lights Out! in C# GUI Programming 10 points

Introduction. Create a New Project. Create the Main Form. Assignment 1 Lights Out! in C# GUI Programming 10 points Assignment 1 Lights Out! in C# GUI Programming 10 points Introduction In this lab you will create a simple C# application with a menu, some buttons, and an About dialog box. You will learn how to create

More information

All Blocks of Scratch

All Blocks of Scratch All Blocks of Scratch Scratch has over 100 coding blocks, and each one has a unique use. They are all colour-coded into 9 different categories as seen below: You can also create your own block under More

More information