alice-teacher Passing an object to a method doesn't appear to work completely in Alice 2.3.2

Marty Schultz schultz_marty at hotmail.com
Sun Apr 14 21:48:31 EDT 2013


Does anyone have a solution for this (I've included pseudo line numbers to
make it clear):

 

Function world.whoGotHit (returns type OBJECT) ends with:

                10 print "world.whoGotHit" 

                11 print tiger.name

                12 return tiger

 

 

Method world.keepScore looks similar to:

                20 Local variable animalThatWasHit (type=OBJECT, initial
value set to paintball)

 

                22 animalThatWasHit set value to world.whoGotHit

                23 print animalThatWasHit

                24 world.whenHit target=animalThatWasHit

 

Method world.whenHit 

                30 parameter target (type=OBJECT)

                32 print "world.whenHit"

                33 print target

 

 

When I PLAY this program, the PRINT statements show:

                world.whoGotHit (from line number 10)

                tiger (from line number 11)

                the value of world.keepScore.animalThatWasHit is tiger (from
line 23 - this is expected)

                world.whenHit (from line 32)

                the value of world.whenHit.target is paintball (from line
33- this seems WRONG - it should be "tiger")

 

What appears to be happening is that even though the value of
animalThatWasHit is "tiger" in the world.keepScore method, when the
world.whenHit method is called, the value reverts back to the initial value,
not the value shown in the parent (world.keepScore) method.

 

 

 

                

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/alice-teachers/attachments/20130414/692c0ede/attachment.html 


More information about the alice-teachers mailing list