Shorter of two objects and changing color V2 Functions, events and setting the color in sequence and randomly This is a modification of the Changing Color.

Slides:



Advertisements
Similar presentations
Visual Lists By Chris Brown under Prof. Susan Rodger Duke University July 2012.
Advertisements

Repetition everywhere – comparing while in a method and as an event Susan Rodger Duke University July 2010 modified July 2011.
Coloring Randomly: Random Selection in Alice By Jenna Hayes under the direction of Professor Susan Rodger Duke University July 2008.
How Tall Are You? Introducing Functions By Jenna Hayes under the direction of Professor Susan Rodger Duke University July 2008 Updates made June 2014 by.
Using Functions in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University July 2008.
Lets Play Catch! Keeping Score in Alice By Francine Wolfe Duke University Professor Susan Rodger May 2010.
Using Functions in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University July 2008.
Class-Level Variables in Alice By Jenna Hayes Under the direction of Professor Rodger Duke University, July 2008.
Wizard Game: Class-Level Variables in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University, July
Creating a 3D Interactive Story Prof. Susan Rodger Duke University Feb. 24, 2007.
Calvin and Hobbes Teach Properties and Functions Created by Daniel MacDonald under the direction of Professor Susan Rodger Duke University June 2013.
Methods Tutorial: Part One By Deborah Nelson Duke University Under the direction of Professor Susan Rodger June 9, 2008.
Creating Functions Deborah Nelson Duke University Professor Susan Rodger July 22, 2008.
1 Quiz Template: Click on the match By Deborah Nelson Duke University Under the direction of Professor Susan Rodger July 2009.
Shorter of two objects and changing color Functions, events and setting the color Susan Rodger, Duke University June 2008.
Checking for Collisions Ellen Yuan Under the direction of Professor Susan Rodger at Duke University June 2014.
Distributing (Fun + Learning): The Distributive Property By: Peggy Li Under the direction of Professor Susan Rodger Duke University, June
Line up By Melissa Dalis Professor Susan Rodger Duke University June 2011.
Working with Numbers in Alice - Converting to integers and to strings - Rounding numbers. - Truncating Numbers Samantha Huerta under the direction of Professor.
by Chris Brown under Prof. Susan Rodger Duke University June 2012
Getting Started With Alice By Ruthie Tucker under the direction of Prof. Susan Rodger Duke University, July
Making a Boat Racing Game in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University, July 2010.
Nonvisual Arrays and Recursion by Chris Brown under Prof. Susan Rodger Duke University June 2012.
Checking for Collisions: Alternative Method Erin Taylor Under the Direction of Susan Rodger July 2015 Duke University.
Changing Color, Using Text Objects, and Random Selection in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University, July 2008.
Teaching a character to walk in more than one world: Parameters and Inheritance. By Lana Dyck under the direction of Professor Susan Rodger Duke University.
Methods Tutorial: Part Two By Deborah Nelson Duke University Professor Susan Rodger June 16, 2008.
Tutorial on Kangaroo visiting his animal friends - parameters, events.
Distributing (Fun + Learning): The Distributive Property By: Peggy Li Under the direction of Professor Susan Rodger Duke University, June
By Melissa Dalis Professor Susan Rodger Duke University June 2011 Multiplication Table.
A Simple Quiz: Ask User Functions. By Lana Dyck under the direction of Professor Susan Rodger Duke University June 2009, added Part 2 July 2011.
Making a Timer in Alice By Jenna Hayes under the direction of Professor Susan Rodger Duke University July
Piñata Game: Keeping Score in Alice By Maggie Bashford Professor Susan Rodger Duke University July
1 ball, 2 ball, red ball, blue ball By Melissa Dalis Professor Susan Rodger Duke University June 2011.
Bunny Eat Broccoli Repetition – Simple loops and Conditional loops Susan Rodger Duke University July 2011.
Can I get your number? By Melissa Dalis Professor Susan Rodger Duke University June 2011.
Distributing (Fun + Learning): The Distributive Property 1 Peggy Li Under the direction of Professor Susan Rodger Duke University, July 2011.
The Essentials of Alice (Bunny) By Jenna Hayes under the direction of Professor Susan Rodger Duke University July 2008.
Illuminating Computer Science CCIT 4-6Sep
1 Quiz Template: Using the ‘ask user’ functions By Deborah Nelson Duke University Under the direction of Professor Susan Rodger July 2009.
Balancing the scales: Inequalities By Melissa Dalis Professor Susan Rodger Duke University June 2011.
Nonvisual Arrays by Chris Brown under Prof. Susan Rodger Duke University June 2012.
Simple Collision Detection By David Yan Under the direction of Professor Susan Rodger and Chari Distler Duke University, June 2015.
Ready, SET, go! By Melissa Dalis Professor Susan Rodger Duke University July 2011.
Creating a 3D Interactive Story Prof. Susan Rodger Duke University July 19, 2007.
Tutorial on Kangaroo visiting his animal friends - parameters, events Susan Rodger Duke University June 2009.
An Introduction to Alice By Jenna Hayes under the direction of Professor Susan Rodger Duke University, June 2009 Updated June 2014 by Ellen Yuan.
CompSci 4 Chap 6 Sec 2 Sep 30, 2010 Prof. Susan Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were not a Flutterbudget.
Repetition everywhere – comparing while in a method and as an event Susan Rodger Duke University July 2010.
Illuminating Computer Science CCIT 4-6Sep
Creating a Fancier Chicken to use in several worlds - Inheritance Susan Rodger Duke University June 2009.
How Tall Are You? Introducing Functions for Alice 3 By Jenna Hayes under the direction of Professor Susan Rodger Duke University July 2008 Updates made.
The Essentials of Alice By Jenna Hayes under the direction of Professor Susan Rodger Duke University May 2009.
Making Billboards By Deborah Nelson Duke University, Under the direction of Professor Susan Rodger, July 14, 2008.
Tutorial on Bunny visiting his animal friends - parameters, events for Alice 3 Susan Rodger Duke University June 2009 Updated by Yossra Hamid on October.
Under the direction of Susan Rodger
By Melissa Dalis Professor Susan Rodger Duke University June 2011
A Simple Quiz for Alice 3.2:
Comparing objects and changing color
Making a Timer This is an modification of the July 2008 timer tutorial by Jenna Hayes By Natalie Huffman Under the direction of Susan Rodger Duke University.
Changing Color, Using Text Objects, and Random Selection in Alice
Tutorial on Kangaroo visiting his animal friends - parameters, events
Let's Race! Typing on the Home Row
A Simple Quiz for Alice 3.2:
Checking for Collisions: Using Functions in Alice
How Tall Are You? Introducing Functions
under the direction of Professor Susan Rodger
Restricting Events Creating Conditional Events in Alice By Henry Qin
Presentation transcript:

Shorter of two objects and changing color V2 Functions, events and setting the color in sequence and randomly This is a modification of the Changing Color tutorial by Susan Rodger in July 2009 By Erin Taylor and David Yan Under the direction of Susan Rodger Duke University June 2015

What this tutorial shows You’ve used built-in functions. Now you will write your own functions. NOTES: Not all objects can change color. The chicken and snowman can change color, which is why we use them. The bunny cannot change color, the object was just designed that way.

Parts Part 1: Create a “world” function that returns the shorter of two objects – make it a world function because it uses two different objects Part 2: Create a chicken function that returns a color (cycling through 4 colors) and use the function to change the color of the chicken Part 3: Create a snowman function that returns a random color and use the function to change the color of the snowman randomly Part 4: Create a snowman function to return the color as a word and use the function to have the snowman say what color it is.

Part 1: Start Alice world with sand and add in chicken, snowman, bunny, and joey

Create World function “ObjectThatIsShorter” – select Type as Object

The new function appears – notice the “Obj” – means this function returns an object

What this function will do A function computes an answer and returns the answer. The function ObjectThatIsShorter will compare the chicken and the snowman in height and the answer is the one that is shorter. The function returns the shorter object. Since the function type is “object” the function must return an “object”

Drag up if/else

Compare chicken and snowman’s heights – from world functions, drag over the “a<b” into the “true” and enter 1’s

Now click on Chicken, then functions, and drag “Chicken’s height” over twice Click on the second “Chicken” and change to “snowman”

Compute the answer If the chicken’s height is less than the snowman’s height, then we know the answer is the Chicken. The “answer” is put in the line after the “if” and before the “else” (see the next slide) To return the answer, drag up “Return” from the bottom of the window (see the next slide)

Drag up “return” and select Chicken

If Chicken is taller than snowman Then the answer (or shortest object) is snowman After the “else” return snowman

Note that the answer is either the “chicken” or the “snowman”, but not both. Only one of the two is returned.

Now try out the function, use it where there is an object. In myFirstMethod, put this code…

Replace “chicken” with new function – in World Functions, drag over the function “objectThatIsShorter” (that returns an object) over Chicken. objectThatIsShorter can be used in place of any object.

Click Play Only the Chicken and snowman’s height are compared and the one that is shorter (the chicken) says “I’m shorter!” Does your function really work? Resize the chicken so it is larger than the snowman and then play again. This time the snowman should say “I’m shorter!”

Adding Flexibility We wrote the function to compare the chicken and snowman’s heights. For Example, notice that with the “move” command, it is flexible in that you get to pick the direction and the distance to move. To make this function more flexible, we will add two parameters (choices, so you can pick the two objects to compare).

Click on “create new parameter”

Enter the name “object1” and select type “Object”

Add another parameter named “object2” of type “Object”

Click and drag “object1” over both Chickens a

Click and drag object2 on top of both of the snowman’s

Now let’s Test the method Back in myfirstmethod, note that now you have to choose two objects to compare in the function objectThatIsShorter. Select two animals and Play. Then select two different animals and play again

Resize objects to make some taller, and click Play again

Part 2: Change the color of the chicken from “no color” to “blue” to “red” to “green” and cycle through again

Create Chicken Function “changeColor” Click on Chicken, then functions, then “create new function”, type “changeColor” as name, and type “Color”

The new function appears – notice the color wheel – this function returns a new color

Returning new Chicken color - Idea If the chicken color is “no color” then we want to return the new color “blue” Else, if the chicken color is “blue”, then we want to return the new color “red” Else, if the chicken color is “red”, then we want to return the new color “green” Else if the chicken color is “green”, then we want to return the new color “no color”

First Drag up the if/else. Then select “Chicken”, “properties”. Then drag over the color property into “true” and select “Chicken.color == no color”

The “no color” when dropped looks like white. Now drag up “return”, drop in after the if, and select “Blue”

Under the “else” part, drag in another if/else, and repeat the second if (if the color is blue, return red)

Resulting in:

Now continue with two more colors If the chicken color is red, return green Else, return “no color”

Here is the final code… with three nested if’s

Now, let’s use the new function Chicken.changeColor. When we click on a Chicken we will change its color to the new color returned from this function. First create an event.

First, select Chicken to click on, then drag over color property and under expressions, pick the color returned by the function chicken.changeColor

Here is the final event

Now click Play and then click on the chicken several times.

Part 3 Now we will write a function to return a random color and use that color to change the color of the snowman.

Click on Snowman, functions, then create new function, with name changeColorRandom and type color

How to change color randomly Generate a random integer in Alice between 1 and 4 (inclusive) If the number is 1, return color “red” Else, if the number is 2, return “blue” Else if the number is 3, return “green” Else if the number is 4, return “no color”

First, create a “local variable” called colorNumber to store the random number, this is like a “property” for the function. Make sure to select Type: number

1. The local variable appears 2. Drag it down to the code and set its value to 1.

Select “world”, then “functions” to find “random number”, and drag it over the “1”

Click on “more” to add minimum set to 1 and maximum set to 5. colorNumber stores the random number generated so we can refer to it.

Now click on “more,” select integerOnly, and change it to true. This will now randomly generate integers instead of decimals. *Note that the only values you will get are 1, 2, 3, or 4 because lower bound is inclusive and the upper bound is exclusive.

Drag up an if/else

Check colorNumber for red case: If colorNumber ==1 from “world”, “functions”, drag over a==b, then fill in with “colorNumber” == “1”

Drag up the return, and select the color red

Drag another if/else into the else, and drag in code for the “blue” case.

Add “green” and “no color” cases

Create and event for clicking on snowman, then drag snowman’s color property over.

Click “Play” and click on the snowman and he randomly selects one of the four colors.

How do you know if it is working correctly? Drag up print to see the colorNumber value. Select Object, camera

Drag colorNumber over “camera”.

Click on down white arrow and type in text: “Value of colorNumber is “

Now play, click on snowman and you can see the value of colorNumbers to see if the colors match its corresponding integer

Part 4 Write a function to return the current color of the snowman, as a word. We will use the word to have the snowman say what color he is.

Create getNameOfColor Click on “snowman”, then “functions” tab, then “create new function”. Enter the name “getNameOfColor” and select type “String”

Resulting function... Note return type is “ABC” for a word (or String)

Drag up an if-else Then click on “snowman”, then properties tab. Drag over the “color” into the “true” and select “snowman’s color == red”

Result is:

Drag up “Return” tab from the bottom and enter the value “red”

Add additional if’s for the other three color cases – here is the Blue case

Here is the code after adding the green and white (default) cases

Now let’s use the new function Let’s change the event To this: By copying the “snowman set color” line to the clipboard, then drop in a “do inorder”, paste the “snowman set color back in”

Now drag in “snowman say” And have the snowman say “I’m the color “ and make sure you put a blank after the word color.

Join in the name of the color Click on “world” “functions” and drag over the “a joined with b”, and drop that on what the snowman is saying, select “expressions” and the “getNameOfColor” function

Resulting code. Now Play and click on snowman, he tells you his color!