This week's featured sample of the week comes from mcleod_ideafix. This is a fun little point and shoot game, involving the Turtle in a clever way.
'Point-and-shoot '(C)1989 McLeod/IdeaFix. http://www.zxprojects.com 'Target size TargetSize=30 winner=0 wanttoplay=1 'A vector-screen style window GraphicsWindow.BackgroundColor="Black" GraphicsWindow.PenColor="Green" GraphicsWindow.Clear() Game() Sub Game While (wanttoplay=1) GetRnd() DrawTarget() Turtle.PenUp() 'Game loop While (winner=0) Shoot() EndWhile winner=0 TextWindow.Write("Another game? (y/n) ") answ = TextWindow.Read() If (Text.StartsWith(Text.ConvertToLowerCase(answ),"n")) Then wanttoplay=0 Else GraphicsWindow.Clear() Turtle.PenDown() GraphicsWindow.PenColor="Green" EndIf EndWhile EndSub Sub Shoot TextWindow.Write("Angle? ") ang=TextWindow.ReadNumber() TextWindow.Write("Distance? ") dist=TextWindow.ReadNumber() Turtle.Turn(ang) Turtle.Move(dist) Turtle.Turn(-ang) xs=dist*Math.Cos(Math.GetRadians(ang)) ys=dist*Math.Sin(Math.GetRadians(ang)) If (xs>=xmin And xs<=xmax And ys>=ymin And ys<=ymax) Then Sound.PlayChimes() Turtle.Speed=100 Turtle.Move(-15) Turtle.PenDown() 'The boom! visual effect For n=1 To 36 GraphicsWindow.PenColor=GraphicsWindow.GetRandomColor() Turtle.Move(30) Turtle.Turn(150) EndFor Turtle.PenUp() Turtle.Move(15) Turtle.Turn(ang) Turtle.Move(-dist) Turtle.Turn(-ang) Turtle.Hide() TextWindow.WriteLine("Target cleared!! You WIN") winner=1 Else TextWindow.Write("Target failed!! Try again (press RETURN)") TextWindow.Read() Turtle.Speed=100 Turtle.Turn(ang) Turtle.Move(-dist) Turtle.Turn(-ang) Turtle.Speed=7 winner=0 EndIf EndSub Sub GetRnd 'These variables should store the current Height and Width of 'GraphicsWindow, but it seems not to work he=480 wi=640 If (he < wi) Then distance=40+Math.GetRandomNumber(he/2-TargetSize-40) Else distance=40+Math.GetRandomNumber(wi/2-TargetSize-40) EndIf angle=Math.GetRandomNumber(360) xmin=distance*Math.Cos(Math.GetRadians(angle)) ymin=distance*Math.Sin(Math.GetRadians(angle)) xmax=xmin+TargetSize ymax=ymin+TargetSize EndSub Sub DrawTarget Turtle.Speed=100 Turtle.PenUp() Turtle.Turn(angle) Turtle.Move(distance) Turtle.Turn(-angle) Turtle.PenDown() For n=1 To 4 Turtle.Move(TargetSize) Turtle.TurnRight() EndFor Turtle.PenUp() Turtle.Turn(angle) Turtle.Move(-distance) Turtle.Turn(-angle) Turtle.PenDown() Turtle.Speed=7 EndSub
And here's the screenshot.
Do you want your samples to be featured here? Post them in our forums and we'll pick one each week.