Download presentation
Presentation is loading. Please wait.
1
COS 260 DAY 13 Tony Gauvin
2
Agenda Mini-quiz Five Graded Fixed Size Collections Ok results
Questions Assignment 3 posted Due Oct 20 Assignment 4 posted Due 0ct 31 Mini-quiz Five Graded Ok results Fixed Size Collections
3
Capstone Project Capstone Project Description Fall 2017.pdf
October Proposal Due ed to Tony in Blackboard October 27 Progress Report ed to Tony in Blackboard November 16 Progress Report ed to Tony in Blackboard November Progress Report ed to Tony in Blackboard December All Deliverables & Presentation Due Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling
4
Fixed-sized collections
Objects First with Java Fixed-sized collections Introduction to arrays 6.0 © David J. Barnes and Michael Kölling
5
for loop with bigger step
Objects First with Java for loop with bigger step // Print multiples of 3 that are below 40. for(int num = 3; num < 40; num = num + 3) { System.out.println(num); } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling
6
for loop and Iterator No post-body action required.
for(Iterator<Track> it = tracks.iterator(); it.hasNext(); ) { Track track = it.next(); if(track.getArtist().equals(artist)) { it.remove(); } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
7
Objects First with Java
Review Arrays are appropriate where a fixed-size collection is required. Arrays use a special syntax. For loops are used when an index variable is required. For loops offer an alternative to while loops when the number of repetitions is known. Used with a regular step size. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling
8
The automaton project An array of ‘cells’.
Each cell maintains a simple state. Usually a small numerical value. E.g., on/off or alive/dead. The states change according to simple rules. Changes affected by neighboring states. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
9
Cell states – blank cells are in state 0
A simple automaton nextState[i] = (state[i-1] + state[i] + state[i+1]) % 2; Odd-even Step Cell states – blank cells are in state 0 + 1 2 3 4 5 6 © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
10
Automation-V1 Exercise 7.24, 7.25, 7.26, 7.27
Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling
11
The conditional operator
Choose between two values: condition ? value1 : value1 for(int cellValue : state) { System.out.print(cellValue == 1 ? ‘*' : ' '); } System.out.println(); Ex 7.28 , 7.29, 7.30 © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
12
Further advanced material
13
Arrays of more than one dimension
Array syntax supports multiple dimensions. E.g., 2D array to represent a game board, or a grid of cells. Can be thought of as an array of arrays. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
14
The brain project Cell[][] cells; ...
cells = new Cell[numRows][numCols]; for(int row = 0; row < numRows; row++) { for(int col = 0; col < numCols; col++) { cells[row][col] = new Cell(); } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
15
Alternative iteration
for(int row = 0; row < cells.length; row++) { Cell[] nextRow = cells[row]; for(int col = 0; col < nextRow.length; col++) { nextRow[col] = new Cell(); } ‘Array of array’ style. Requires no access to numRows and numCols. Works with irregular shape arrays, which are supported in Java. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
16
Brain Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling
17
Update Rules for Brain Rules to update a cell
A cell that is alive changes its state to dying A cell that is dying changes its state to dead A cell that is dead changes to alive if exactly two of its neighbors are alive, otherwise it remains dead Alive = 0, Dead = 1, Dying = 2 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling
18
The Game of Life- Ex 7.68 https://bitstorm.org/gameoflife/ New rules
Count neighbors that are alive If dead and 3 neighbors are alive, then change to alive If alive and < 2 or > 3 neighbors are alive, then dead Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling
19
Arrays and Streams java.util.Arrays has several stream() methods that return a Stream based on an array. IntStream is a Stream of int values. Instream.range() creates a sequential IntStream. toArray returns an array from a Stream. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.