Alice Community Lab 3

chickentree
Super Moderator

Status: Offline
Posts: 250
Join Date: Dec 2012
Location: Frosno, Ca
07-30-2015, 09:35 AM

Quote:
 Originally Posted by Petit Suisse Another question. How did you guys make it so the ring would stay solid? Right now it sort of goes through the cone, instead of being caught on it as a solid object.
All objects in Alice behave this way, there is no provision for making something solid, so you have to fake it. The easiest way I can think of would be to use Dummy objects set a dummy on the cone and have the ring move to it when it "lands" on the cone.

Hints:
1. Set the vehicle of the dummy object to the cone. This way if the cone moves you will not have to reposition all your dummy objects.
2. Name the dummy objects so that you can keep track of which dummy is paired with which ring.
3. The ring must move down from above the cone to look right. If you just move the ring to the dummy object from anywhere it will go through the cone.

Mark

Mark Henwood
mhenwood@ieee.org

Petit Suisse
Member

Status: Offline
Posts: 46
Join Date: Jul 2015
07-30-2015, 10:33 PM

Quote:
 Originally Posted by chickentree All objects in Alice behave this way, there is no provision for making something solid, so you have to fake it. The easiest way I can think of would be to use Dummy objects set a dummy on the cone and have the ring move to it when it "lands" on the cone. Hints:Set the vehicle of the dummy object to the cone. This way if the cone moves you will not have to reposition all your dummy objects. Name the dummy objects so that you can keep track of which dummy is paired with which ring. The ring must move down from above the cone to look right. If you just move the ring to the dummy object from anywhere it will go through the cone. Mark
Thank you very much for your help and time Mark. You've been very good with us. With the deadline that is definitely something I want to try, however since it would be ok for the ring to go through the cone, I will keep it simple for now. I did try setting the rings vehicle to cone in one of my attempts (not quite the right effect hehe), but dummy will be something to look at later.

chickentree
Super Moderator

Status: Offline
Posts: 250
Join Date: Dec 2012
Location: Frosno, Ca
08-02-2015, 12:30 PM

Quote:
 Originally Posted by Petit Suisse Thank you very much for your help and time Mark. You've been very good with us. With the deadline that is definitely something I want to try, however since it would be ok for the ring to go through the cone, I will keep it simple for now. I did try setting the rings vehicle to cone in one of my attempts (not quite the right effect hehe), but dummy will be something to look at later.
It is not the ring's vehicle you want to set to the cone. That would cause the ring to move whenever the cone does. You want to set the dummy object, which is basically your target for a ring on the cone, to the cone. So that if the cone moves during the movie, or you have to move it while building the movie, the dummy will still be in the correct position relative to the cone.

Mark Henwood
mhenwood@ieee.org

 Lab 3
Member

Status: Offline
Posts: 17
Join Date: Jul 2015
Lab 3 - 08-05-2015, 12:19 PM

I can get the cone to catch the ring but my program does not repeat after the ring is caught. Do you think you can help me with this? I've included my program.
Attached Files
 Lab3-WL.a2w (178.9 KB, 5 views)

chickentree
Super Moderator

Status: Offline
Posts: 250
Join Date: Dec 2012
Location: Frosno, Ca
08-06-2015, 12:24 PM

Quote:
 Originally Posted by shaolinkidd I can get the cone to catch the ring but my program does not repeat after the ring is caught. Do you think you can help me with this? I've included my program.
I am not sure of the exact requirements for this project so I am shooting from the hip.
In order to drop another ring ask yourself what has to happen. In the general case this can be broken down into the following:
Initialize the movie
Set the items, variables etc to their initial values.
In a great many cases you can do this in the Alice IDE (while you are authoring the movie.)
Start the looping part.
Make sure things are initialized (objects in their proper place, variables have the correct values.) Remember the instructions will be repeated so the movie will probably not be in the same configuration when it starts through the loop on the second or subsequent runs.
Do the instructions you want to repeat.
In the general programming case one or more of these instructions will result in changes that will cause the loop to end. Alice’s interactive nature provides other options, like the one demonstrated in the attached movie.
Check the conditions to see if the loop is done
Continue with the rest of the program.

In general any loop whether a ‘for’ loop, a ‘while’ loop or some other more exotic type has to accomplish a couple of things. It must repeatedly perform the operations it was designed to do. And it must have a way to end when it has repeated ‘enough’ times.
In a lot of cases we know (or can calculate) how many times the loop will need to repeat and in these cases a ‘for’ loop is great. But what if we do not know how many times the operations must be repeated? In that case we need to do something different. This is where the ‘while’ loop comes in. The while loop uses a Boolean value (called a monitor) to determine whether to run the loop and if so when to stop. The key here is that this value (the monitor) must initially be true, or the instructions within the while loop will never be run, and some action must be capable of changing the monitor from true to false in order to end the loop. This action can be something within the loop that signals the the desired condition has been met or it can be an ‘external’ event that changes the value the monitor is using to tell whether to continue.
In the movie I have attached the loop is controlled by an outside event (clicking on the rabbit.)
Using the logic operators and object properties and functions you can make the continuation of your while loop depend on one or several conditions being true or false so you have a lot of control over whether the loop continues or not.
Be aware that if you are looping you may need to set things up each time the loop repeats. In your case, if the cone and ring are not moved back to their starting positions at the beginning of the loop, they will be wherever they were when the last loop ended.

Hope this helps.
Mark
Attached Files
 whileExample.a2w (336.7 KB, 3 views)

Mark Henwood
mhenwood@ieee.org

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is Off Forum Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Announcements     Community News and Announcements Alice 3     How Do I?     Works In Progress     Share Your World     Share Custom Classes     Bugs and Trouble Shooting     Suggestion Box Alice 2     How do I...?     Works-In-Progress     Share Worlds     Share Objects     Bugs and Troubleshooting     Suggestion Box Educators     Teaching with Alice     Teaching Using Alice 3     Teaching Using Alice 2     CS Principles and Alice     AP CSA and Intro to Java and Alice     Workshops General Discussion     Questions and Comments     The Lounge