public void my_first_method ( ) {
Object[] skaters = ; Number skaterNumber = 1 ; |
| |
// Randomly select a skater to skate. |
| skaterNumber .set( value , ( Random.nextDouble() minimum = 1 maximum = 4 integerOnly = true ) ); |
| world.skate ( ( skaters [ skaterNumber ] ) ); |
| // Have all the skaters turn consecutively. |
| For all skaters , one item_from_skaters at a time { |
| |
item_from_skaters .turn( LEFT , 1 revolution ); |
| } |
| // Remove the 1st skater from the list. |
| skaters .remove( 0 ); |
| // Have the right 3 skaters turn simultaneously. |
| For all skaters , every item_from_skaters together { |
| |
item_from_skaters .turn( LEFT , 1 revolution ); |
| } |
| } |
public void skate ( Object whichSkater) {
Object skatersLeftLeg = <None> ; Object skatersRightLeg = <None> ; |
| |
// Get the skater's 2 legs and save them in variables. |
| // Notice that if this method is passed an object that is not a skater, like the beach chair, the Alice world will crash with a "null" error. |
| skatersLeftLeg .set( value , ( whichSkater .partNamed( leftLeg ) ) ); |
| skatersRightLeg .set( value , ( whichSkater .partNamed( rightLeg ) ) ); |
| // Take a skating stroke pushing with the left leg |
| doTogether { |
| |
whichSkater .move( FORWARD , 1 meter ); duration = 2 seconds |
| doInOrder { |
| |
doTogether { |
| |
skatersLeftLeg .turn( FORWARD , 0.12 revolutions ); |
| skatersLeftLeg .roll( RIGHT , 0.12 revolutions ); |
| } |
| doTogether { |
| |
skatersLeftLeg .turn( BACKWARD , 0.12 revolutions ); |
| skatersLeftLeg .roll( LEFT , 0.12 revolutions ); |
| } |
| } |
| } |
| // Take a skating stroke pushing with the right leg |
| doTogether { |
| |
whichSkater .move( FORWARD , 1 meter ); duration = 2 seconds |
| doInOrder { |
| |
doTogether { |
| |
skatersRightLeg .turn( FORWARD , 0.12 revolutions ); |
| skatersRightLeg .roll( LEFT , 0.12 revolutions ); |
| } |
| doTogether { |
| |
skatersRightLeg .turn( BACKWARD , 0.12 revolutions ); |
| skatersRightLeg .roll( RIGHT , 0.12 revolutions ); |
| } |
| } |
| } |
| } |