week 7 friday what did we talk about last time array
play

Week 7 - Friday What did we talk about last time? Array examples - PowerPoint PPT Presentation

Week 7 - Friday What did we talk about last time? Array examples We can represent a deck of cards as an array of 52 items One easy way is to make each item a String giving the name of the card We can extend the lab with cards


  1. Week 7 - Friday

  2.  What did we talk about last time?  Array examples

  3.  We can represent a deck of cards as an array of 52 items  One easy way is to make each item a String giving the name of the card  We can extend the lab with cards and store each of these names in an array

  4.  Swapping the values of two variables is a fundamental operation in programming  It is going to become more important in arrays because now the order of variables has become important  The simplest way to swap two variables involves using a third variable as a temporary location

  5.  Here is an example of swapping two String s indexed i and j in an array of String s called array int i = in.nextInt(); int j = in.nextInt(); String temp = array[i]; array[i] = array[j]; array[j] = temp;

  6.  Using the swap code, we can do a random shuffling of a deck  To do so, we go through each element of the array, and randomly swap it with any of the later elements for(int i = 0; i < deck.length; ++i) { int exchange = i + (int)(Math.random() * (deck.length - i)); temp = deck[i]; deck[i] = deck[exchange]; deck[exchange] = temp; }

  7.  Searching through an array is an important operation  The simplest way to do so is just linear search: check every element in the array  Searching and sorting are really key to all kinds of problems  We'll cover both topics in depth in a few weeks

  8.  StdDraw is a library of Java code developed by Robert Sedgewick and Kevin Wayne  StdDraw allows you to draw output on the screen easily  You can draw points, lines, and polygons in various colors  You can clear and resize the drawing area and even save the results  StdDraw is not standard Java that everyone uses, but it's a nice tool for graphics

  9.  The simplest things you can draw with StdDraw are lines and points  The first thing you should be aware of is that the canvas is drawn like Quadrant I of a Cartesian plane (0,1) (1,1) (0,0) (1,0)

  10.  The following methods can be used to draw lines and points Method Use void line(double x0, double y0, Draw a line from (x0,y0) to double x1, double y1) (x1,y1) void point(double x, double y) Draw a point at (x,y)

  11.  Let's draw a box then divide it into two halves, like so:

  12.  There are built in commands for drawing:  Circles  Squares  Arbitrary polygons  Filled versions of each one of these  We won't bother with the arbitrary polygons  It is also possible to set the color

  13.  Here are some methods for drawing circles and squares and setting the color for doing so: Method Use void circle(double x, double y, double r) Draw a circle centered at (x,y) with radius r void filledCircle(double x, double y, Draw a filled circle centered at (x,y) double r) with radius r void square(double x, double y, double r) Draw a square centered at (x,y) with edges 2r void filledSquare(double x, double y, Draw a filled square centered at double r) (x,y) with edges 2r void setPenColor(Color c) Start drawing with color c

  14.  Eventually you will be able to define your own colors  For now you are limited to 13 presets BLACK BLUE CYAN DARK_GRAY GRAY GREEN LIGHT_GRAY MAGENTA ORANGE PINK RED WHITE YELLOW  For example, to make something magenta, you would use the value StdDraw.MAGENTA

  15.  Let's write some code for making 100 circles at random locations with random sizes and random colors  Location is easy  Size is easy, we just decide on the range of sizes we want and do some math  Color is more painful  We need a switch statement with 13 choices

  16.  We just want to make a pattern of black and white squares on the screen  Hint: We need two loops

  17.  A number of methods are given to give us more control over the display Method Use void setXscale(double x0, double x1) Set the x scale void setYscale(double y0, double y1) Set the y scale void setPenRadius(double r) Set the pen radius void setCanvasSize(int w, int h) Set canvas size void clear() Clear canvas to white void clear(Color c) Clear canvas to color c void pause(int delay) Delay for delay ms

  18.  As you have seen, the default scale of the canvas is in the range [0,1] for both x and y  We can use the setXscale() method to set the minimum and maximum x values  We can use the setYscale() method to set the minimum and maximum y values  Useful for plotting functions

  19.  Note that changing the scale doesn't change the size of the window, just what is shown in it  If you want to change the size of the window, use the setCanvasSize() method to set the width and the height of the canvas in terms of screen pixels

  20.  The pause() method lets you specify a delay in milliseconds before things are drawn on the screen  You can use it to slow down or speed up animations  To use it right, you need to first call StdDraw.enableDoubleBuffering()  Then, whenever you want to actually show all the drawing that's been done, you call StdDraw.show()  Doing so draws everything off-screen and then shows it all at once, which is both more efficient and more attractive for animations

  21.  Finish StdDraw examples  Static methods

  22.  Read Chapter 8 of the textbook  Keep working on Project 3  It's harder than the previous two!

Recommend


More recommend