Ymw2.0 Englishprojectsize[744 426]turtles-have[]globals[]globals-list[globals-vars]76shapesK[0 moon]((2 '6ETcx(@R^jv/>M\kz [2 sun]40 ?iV(3@?FZ\ ^ Y :  C x ww{x{ww{xxw{{xxxxwxxw{x`oxxxwwxxx `o~~~`o`o{`ox`o`o~`o~`o~`o~x{x{`o`o~`o~{~{~{~`o~ww{x{`o~{~{~{~{~{~`o~xww~`o~~{~{~{~{~{y~yx{wwx`o~{`o~`o{{~{{`o~{yxxx~`o{~{{~{`o{~{~`o~~y~xxwwx~`o{~{ {~{~{y{y~`o~w`o~{~ `oc{~{y~`oxwwx`o~`o cxxow`o~~{y~y~xwx~`o~xox{oxx8s`o~{y~xwww{x `o~~`o`oxw {xx{~{~wx~{~xox{wwxo{`o~yxx`o~{`oxw{{{x{~{x{x`o~{~ wx{{{{wxx{~y~xwx`o~`o~`oo{{{{oc~{~`oxw{o~`o~x{{{{{{x~xwwx~{`ox{{{{ w~`o~{~`oxwwx~`ow{{{{{{x`o{~y~x{x~{x{{{{wxc~{~`o~`oxw{x{{{x~{y~x wx`o~`oxo{{{{x`o~`oxoxwx~ `ox{{{xy~xww `o~~xxw{{{x x`o~`owwwwx~{~`ocx{{xxc`o{~xw{x`o~{xxxx{{~ywx `o~{~{xoxwxxx{~{~w{x~{~`oxx xoxc`o~{~`ow{x`o~`oxx{{~{`o~xw {~`o~{~`o~`o~`o~xwx ~y~{~`o`o`o~{~`o~`oxww~`o~y~y~{`o~`o`o`o~{{~y~xwx~{~{y~{~{~{~{~`o~wxwxw{x~~~{y~y{~`o~y~{~ww{wxwxw{x~`o~{~y~`o~{~w {xoxwwx~~{wwxxww`o~x{w{ w{w{{x~wwwxwwxwxwx{s[3 star]((Z *9HWfu!0?N]l{ &A\w[12 CH]((n $0<HT`lx&2>JVbnz.[13 a](( !$'*3<KZcl{ 2DJVbqt7[14 n]((  !$'*-09HW`ir&5DSbq[15 ||]((n '09BKT]fo~ )8GVet[28 ||](( $9Xv*Kl)PK`````````````````````````````````````````````````````````````[29 moon1]((q "/<Pm+X&5J_s;f{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{P{{PP{{P{PP{{P{PP{{P{PP{{PP{P{P{{P{P{P{P{P{{P{PP{P{PP{P{P{{P{PP{P{PP{P{P{{P{P{P{P{P{P{P{{P{P{P{P{P{P{P{{P{P{P{P{P{P{P{P{P{{P{P{P{P{P{P{P{{P{M[30 stop]((3 ,9Qp  (6ETcr"=FUpBsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[31 hannah](( !$'*9HWl{8} #&),/258;>#[44 to.hannah](( 3Nm)>k+k:OXa%[45 Dear.hannah]((-<KZix%=WZ]`cfix7w(IXav#proceduresg#text{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fswiss Arial;}{\f2\fswiss\fprq2 Arial;}{\f3\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green128\blue128;\red255\green0\blue255;\red0\green0\blue255;} \viewkind4\uc1\pard\cf1\f0\fs20 ; Purpose: An interactive letter to Hannah \par ; Copyright \lang3081\'a9\lang1033 2004 by Rupert Russell \par ; e-mail: r.russell@ballarat.edu.au \par ; URL: http://velorum.ballarat.edu.au/~rrussell/microworlds/index.html \par ; Created: May 11, 1999 \par ; Modified: August 19, 2004 \par ; \par ; This program is free software; you can redistribute it and/or modify \par ; it under the terms of the GNU General Public License as published by \par ; the Free Software Foundation; either version 2 of the License, or \par ; (at your option) any later version. \par ; \par ; This program is distributed in the hope that it will be useful, \par ; but WITHOUT ANY WARRANTY; without even the implied warranty of \par ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \par ; GNU General Public License for more details. \par ; \par ; You should have received a copy of the GNU General Public License \par ; along with this program; if not, write to the Free Software \par ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. \par ; ---------------------------------------------------------------------------\cf0 \par \f1 \par \b\f2 to reset\b0 \par \cf2 ; this puts all the letters in the same spot (in the middle of the screen)\cf0 \par \f1 talkto \f3 [\f1 h1 a1\f3 \f1 n1 n2 a\f3 2 \f1 h2\f3 ] \par home\f1 \par \b\f2 end\b0 \par \f1 \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to move\b0 \par \cf2 ; this points each letter in a random direction \cf0 \par seth heading + random 10 \par \par \cf2 ; this moves each letter forward a random amount\cf0 \par fd random 10 \par \b end\b0 \par \par \f1 ------------------------------------------------------------------------------------------------------------------------------------\f2 \par \par \b to move.all\b0\f1 \par \cf2 ; this tells each letter to move around \cf0 \par \cf2 ; this tells each letter to move around \cf0 \par talkto "h1 move \par talkto "a1 move \par talkto "n1 move \par talkto "n2 move \par talkto "a2 move \par talkto "h2 move \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to go\b0\f1 \par \cf2 ;\f3 \f1 this hides the letter I wrote to you\cf0 \par set "letter "visible? "false \par \par \cf2 ;\f3 \f1 this tells each letter to move\cf0 \par move.all \par \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to Hannah\b0\f1 \par \cf2 ;\f3 \f1 this hides the letter I wrote to you\cf0 \par set "letter "visible? "false \par \par \cf2 ;\f3 \f1 this places each letter in the correct place to spell Hannah\cf0 \par talkto "h1 setx -153 sety 0 \par talkto "a1 setx -130 sety 0 \par talkto "n1 setx -93 sety 0 \par talkto "n2 setx -66 sety 0 \par talkto "a2 setx -38 sety 0 \par talkto "h2 setx 0 sety 0 \par \b\f2 end \par \b0\f1 \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to go.to.hannah\b0\f1 \par \cf2 ;\f3 \f1 this hides the letter I wrote to you\cf0 \par set "letter "visible? "false \par \cf2 \par ;\f3 \f1 start all the letters moving towards their home at once\cf0 \par launch [h1.x.home] \par launch [h1.y.home] \par \par launch [a1.x.home] \par launch [a1.y.home] \par \par launch [n1.x.home] \par launch [n1.y.home] \par \par launch [n2.x.home] \par launch [n2.y.home] \par \par launch [a2.x.home] \par launch [a2.y.home] \par \par launch [hh2.x.home] \par launch [hh2.y.home] \par \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to h1.x.home \par \cf2\b0\f1 \f3 \f1 ;\f3 \f1 the following commands are for the letter h1 only \par \cf0 talkto "h1 \par \par \cf2 ;\f3 \f1 find out if the letter h1 is to the right of its home if it is move it back home\cf0 \par if xcor > -153 [repeat xcor + 153 [setx xcor - 1]] \par \par \cf2 ;\f3 \f1 find out if the letter h1 is to the left of its home if it is move it back home\cf0 \par if xcor < -153 [repeat -153 - xcor [setx xcor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \cf2 ; the same procedure is used for each other letter. \par \cf0 \par \b\f2 to h1.y.home\b0\f1 \par talkto "h1 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat abs ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to hh2.x.home\b0\f1 \par talkto "h2 \par if xcor > 0 [repeat xcor [setx xcor - 1]] \par if xcor < 0 [repeat abs xcor [setx xcor + 1]] \par \b\f2 end \b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to hh2.y.home\b0\f1 \par talkto "h2 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat abs ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to a1.x.home\b0\f1 \par talkto "a1 \par if xcor > -130 [repeat xcor + 130 [setx xcor - 1]] \par if xcor < -130 [repeat -130 - xcor [setx xcor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to a1.y.home\b0\f1 \par talkto "a1 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat abs ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to a2.x.home\b0\f1 \par talkto "a2 \par if xcor > -38 [repeat xcor + 38 [setx xcor - 1]] \par if xcor < -38 [repeat -38 - xcor [setx xcor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \b\f2 \par to a2.y.home\b0\f1 \par talkto "a2 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat abs ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to n1.x.home\b0\f1 \par talkto "n1 \par if xcor > -93 [repeat xcor + 93 [setx xcor - 1]] \par if xcor < -93 [repeat -93 - xcor [setx xcor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \cf2 \par ;; I use abs to convert a negative number to its positive value or \b\f2 abs\b0\f1 olute value\cf0 \par \par \b\f2 to n1.y.home\b0\f1 \par talkto "n1 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat \cf3 abs\cf0 ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \b\f2 to n2.x.home\b0\f1 \par talkto "n2 \par if xcor > -66 [repeat xcor + 66 [setx xcor - 1]] \par if xcor < -66 [repeat -66 - xcor [setx xcor + 1]] \par \b\f2 end\b0\f1 \par \par ------------------------------------------------------------------------------------------------------------------------------------ \par \par \cf2 ; I use abs to convert a negative number to its positive value or \b\f2 abs\b0\f1 olute value\cf0 \par \par \b\f2 to n2.y.home\b0\f1 \par talkto "n2 \par if ycor > 0 [repeat ycor [sety ycor - 1]] \par if ycor < 0 [repeat \cf3 abs\cf0 ycor [sety ycor + 1]] \par \b\f2 end\b0\f1 \par } A6page"namer.russell@ballarat.edu.aucurturtleh2curtextlettertransition0Dturtle-deamons[[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []]Cmouse-deamons[[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []]bg0$buffer$$6HZl~ 2DVhz .@Rdv*<N`r&8J\n"4FXj| 0BTfx,>Pbt(:L^p  $ 6 H Z l ~  2 D V h z  . @ R d v   * < N ` r   & 8 J \ n "4FXj| 0BTfx,>Pbt(:L^p$6HZl~ 2DVhz .@Rdv*<N`r&8J\n"4FXj| 0BTfx,>Pbt(:L^p$6HZl~ 2DVhz .@Rdvobject typet nameh1locked?falsexpos218.933692ypos212.117715 shape13penstate0 size40pencolor0heading34 pensize1shown?true fcn[] kind1shapein13have-list[has] colorin9object typet namea1locked?falsexpos242.629527ypos213.312902 shape14penstate0 size40pencolor0heading218 pensize1shown?true fcn[] kind1shapein14have-list[has] colorin9object typet namen1locked?falsexpos278.61264ypos212.759314 shape15penstate0 size40pencolor0heading145 pensize1shown?true fcn[] kind1shapein15have-list[has] colorin9object typet namea2locked?falsexpos334.88022ypos212.757777 shape14penstate0 size40pencolor0heading118 pensize1shown?true fcn[] kind1shapein14have-list[has] colorin9object typet nameh2locked?falsexpos372.695377ypos213.911797 shape16penstate0 size40pencolor0heading192 pensize1shown?true fcn[] kind1shapein16have-list[has] colorin9object typet namet1locked?false xpos70 ypos316 shape3penstate0 size40pencolor0 heading0 pensize1shown?truefcn[repeat 300 [go]] kind1 shapein3have-list[has] colorin9object typet namet2locked?false xpos169 ypos319 shape1penstate0 size40pencolor0 heading0 pensize1shown?truefcn[reset] kind1 shapein1have-list[has] colorin9object typet namet3locked?false xpos70 ypos364 shape29penstate0 size40pencolor0 heading0 pensize1shown?true fcn[go] kind0shapein29have-list[has] colorin9object typet namet4locked?false xpos169 ypos364 shape30penstate0 size40pencolor0 heading0 pensize1shown?truefcn[reset] kind1shapein30have-list[has] colorin9object typet namet5locked?false xpos116 ypos316 shape4penstate0 size40pencolor0 heading0 pensize1shown?truefcn[stopall] kind1 shapein4have-list[has] colorin9object typet namet6locked?false xpos121 ypos364 shape31penstate0 size40pencolor0 heading0 pensize1shown?truefcn[stopall] kind1shapein31have-list[has] colorin9object typet namen2locked?falsexpos305.402981ypos212.059113 shape15penstate0 size40pencolor0heading98 pensize1shown?true fcn[] kind1shapein15have-list[has] colorin9bobject typetextnameletterrect[22 25 458 234]show-name?falselocked?falsevisible?falsesnaped?falsetext{\rtf1\ansi\deff0\deflang1033{\fonttbl{\f0\fswiss Arial;}} {\colortbl ;\red255\green0\blue255;} \viewkind4\uc1\pard\f0\fs20 \par \par Dear Hannah, \par \par I hope you like this project. I had fun designing it. \par \cf1 \cf0 If you press CTRL + F you will be able to see how I did it. \par \par \cf1 To run the program click on the Sun.\cf0 \par \par Rupert. \par \par } object typet namet7locked?false xpos221 ypos364 shape32penstate0 size40pencolor0 heading0 pensize1shown?truefcn[hannah] kind1shapein32have-list[has] colorin9object typet namet8locked?false xpos274 ypos364 shape45penstate0 size40pencolor0 heading0 pensize1shown?truefcn[go.to.hannah] kind1shapein45have-list[has] colorin9object typet namet9locked?false xpos335 ypos364 shape46penstate0 size40pencolor0 heading0 pensize1shown?true2fcn[go.to.hannah set "letter "visible? "true] kind1shapein46have-list[has] colorin9