Asked by:
Challenge of the Month  December 2015
General discussion

These challenges are intended for people who are learning to program for the first time or for those returning to programming who want to start using Small Basic. Some will be easy, some will be hard  but they will all make you think, and more importantly be GREAT FUN!
Please post your solutions / partial solutions / questions / feedback etc. into this thread that will remain 'sticky' for the month. The only rule is that your solution must use standard Small Basic methods (no extensions).
It would be good if people could post their problems with these challenges so that a discussion can start so that everyone can learn from each other.We may extend these challenges over into a second month if solutions and questions are still coming in.
Also post feedback on the kind of challenges that you want to see more of in the future.
Small Challenges
 Use the Turtle to follow your mouse.
 Write a program to draw a tree in the GraphicsWindow.
 Write a program to input and sum 5 numbers input by a user.
 Write a program to spell check the words in a sentense (use the Dictionary object).
 Write a program to play a few lines from your national anthem (use the Sound.PlayMusic method).
Maths Challenges  Project Euler
We had some of these challenges several years ago, but here are the first 5 again. The full set (some very hard) can be found https://projecteuler.net/archives.

1] Multiples of 3 and 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
 2] Even Fibonacci numbers
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the evenvalued terms.
 3] Largest prime factor
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
 4] Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3digit numbers.
 5] Smallest multiple
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is divisible with no remainder "evenly divisible" by all of the numbers from 1 to 20?
Community Suggestion (By JetFire3201)
 Could we do a stickman running animation challenge?
 Suggestion  Create an animated stickman that can run and jump with animated limbs reacting to key presses.
Community Suggestions (By Zock77)
Advanced Artificial Intelligence (AI)
This is a facinating, but pretty tough challenge by Zock77.
 Check this out! It is so cool!
https://www.youtube.com/watch?v=qv6UVOQ0F44
 Suggestion  Perhaps create a simple Artificial Neural Net (ANN) program that can be trained to a simple task like approximating an equation curve.
More Challenges
 Find the square root without using Math.SquareRoot (or any Math object methods if you can).
 Draw an ellipse using lines. (easy)
 Or for something more challenging: Make a filled ellipse without using ellipse methods.
 Write a program to find the GCF (Greatest Common Factor) of two numbers.
Community Suggestions (By Jibba Jabba)
We have a whole set of progressive graphical challenges by Jibba Jabba. Complete these and you will be right up there!
Use a Main loop for these and try nuzzling them into game loop structure.
Basic Motion
 Make a square shape move from left to right of screen at a constant speed.
 Using arrays, place 2 more shapes on top of this shape and have them move in tandem.
 Make a circular shape move from the top to bottom of the GW at a constant speed.
 Now make this shape move on the same path from a standing start under the influence of gravity
 Now add friction/drag to this.
 Make a shape move horizontally across the screen bouncing off the edges with constant speed.
 Make a shape bounce from top to bottom from a standing start under the influence of gravity.
 Now add friction to this. Eventually the shape should stop.
 Make a shape move randomly all over the screen at a constant speed.
 Maybe apply some acceleration to this.
 Make a shape move in a circular path around a stationary shape placed in the centre.
 Add a satellite to this orbiting body.
 Have a go at changing the orbit to an elliptical path
 Add a continuous random barrage of asteroids that respond to any collisions

 Make a step up game where a ball bounces up a set of steps. User can move the ball left and right.
 Make a calculator. For a nice GUI check out Nonki's website.
 Make some interesting Backgrounds. There was a recent blog on this by Nonki.
 Also make some interesting gradient backgrounds, can use RGB, random or constant fills for this. The backgrounds don't have to be full window. If you make them extensible they can become part of your own code library.

 For advanced collision model some random balls colliding into each other.
Do you have an idea for a future challenge? Please post it here!
 Edited by litdevModerator Tuesday, December 1, 2015 8:59 PM extra Zock challenge added
All replies

My first program for the AI program.
I am pretty sure I did this wrong, so if Litdev or Nonki or someone could look it over thad be great.
GraphicsWindow.Height = 475 GraphicsWindow.Width = 650 GraphicsWindow.BrushColor = "Black" Target[1] = 23 Target[2] = 30 InputValue[1] = 80 InputValue[2] = 24 InputValue[3] = 60 NumberGenomes = 50 GenerationNum = 1 MinError = 1000000 FitnessText = Shapes.AddText("Fitness: ") Shapes.Move(FitnessText,100,380) MaxFitnessText = Shapes.AddText("Max Fitness: ") Shapes.Move(MaxFitnessText,100,400) GenerationText = Shapes.AddText("Generation: ") Shapes.Move(GenerationText,100,420) GenomeText = Shapes.AddText("Genome: ") Shapes.Move(GenomeText,100,440) For i = 1 To 3 For u = 1 To 3 Synapse[i][u][1] = Shapes.AddLine(125,(u*100)+25,325,(i*100)+25) SynapseWeight[i][u][1] = Math.GetRandomNumber(10)/10 EndFor For o = 1 To 2 Synapse[i][o][2] = Shapes.AddLine(525,(o*100)+75,325,(i*100)+25) SynapseWeight[i][o][2] = Math.GetRandomNumber(10)/10 EndFor NueronShape[i] = Shapes.AddEllipse(50,50) Shapes.Move(NueronShape[i],300,i*100) LDShapes.BrushColour(NueronShape[i],"Cyan") NueronText[i] = Shapes.AddText("15") Shapes.Move(NueronText[i],300+18,(i*100)+18) EndFor For i = 1 To 3 InputShape[i] = Shapes.AddEllipse(50,50) Shapes.Move(InputShape[i],100,i*100) LDShapes.BrushColour(InputShape[i],"Yellow") InputText[i] = Shapes.AddText(InputValue[i]) Shapes.Move(InputText[i],100+18,(i*100)+18) EndFor For i = 1 To 2 OutputShape[i] = Shapes.AddEllipse(50,50) Shapes.Move(OutputShape[i],500,(i*100)+50) LDShapes.BrushColour(OutputShape[i],"White") OutputText[i] = Shapes.AddText("15") Shapes.Move(OutputText[i],500+18,(i*100)+68) EndFor While MinError <> 0 Program.Delay(15) OutputValue[1] = "" OutputValue[2] = "" NueronValue[1] = "" NueronValue[2] = "" NueronValue[3] = "" GenomeNum = GenomeNum + 1 If GenomeNum > NumberGenomes Then GenomeNum = 1 GenerationNum = GenerationNum + 1 SynapseWeight = SynapseData EndIf For i = 1 To 3 For u = 1 To 3 CalculateError() If CalcSynapse Then SynapseWeight[i][u][1] = Math.GetRandomNumber(10)/10 EndIf LDShapes.PenWidth(Synapse[i][u][1],2+(SynapseWeight[i][u][1]*6)) NueronRawValue[i][u] = InputValue[u] * SynapseWeight[i][u][1] NueronValue[i] = NueronValue[i] + NueronRawValue[i][u] EndFor NueronValue[i] = Math.Round(NueronValue[i] / 3) For o = 1 To 2 CalculateError() If CalcSynapse Then SynapseWeight[i][o][2] = Math.GetRandomNumber(10)/10 EndIf LDShapes.PenWidth(Synapse[i][o][2],2+(SynapseWeight[i][o][2]*6)) OutputRawValue[i][o] = NueronValue[i] * SynapseWeight[i][o][2] OutputValue[o] = OutputValue[o] + OutputRawValue[i][o] EndFor Shapes.SetText(NueronText[i],NueronValue[i]) EndFor TotalError = "" For r = 1 To 2 OutputValue[r] = Math.Round(OutputValue[r]/3) Shapes.SetText(OutputText[r],OutputValue[r]) ErrorDist[r] = Math.Abs(OutputValue[r]Target[r]) TotalError = TotalError + ErrorDist[r] EndFor If TotalError < MinError Then MinError = TotalError BestGenome = GenomeNum SynapseData[BestGenome] = SynapseWeight ErrorPercent = 100((MinError/200)*100) SynapseData = SynapseWeight EndIf Shapes.SetText(FitnessText, "Fitness: " + TotalError) Shapes.SetText(MaxFitnessText, "MaxFitness: " + MinError) Shapes.SetText(GenerationText, "Generation: " + GenerationNum) Shapes.SetText(GenomeText, "Genome: " + GenomeNum) EndWhile Sub CalculateError Rand = Math.GetRandomNumber(100) If ErrorPercent < Rand Then CalcSynapse = "True" Else CalcSynapse = "False" EndIf EndSub
Oh yeah. I also used LDShapes, but its only for the visualization, and not for function.
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11


Or with three outputs: NKZ435
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11
Your program works well and clearly can find the 'hidden layer' wieghts required to linearly combine 3 input values to find 3 outputs using a genetic algorithm type optimiser. Often there is not an exact optimal solution (yours actually has several exact solutions) so you may want to terminate the optimiser when we are quite close or see little improvement for a lot of exra work.
How about trying to solve the 'travelling salesman' problem.
Nice work.

Advertimized here:
Ed Price, Azure & Power BI Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)
Answer an interesting question? Create a wiki article about it! 
Here's my solution to the Step Up game: Step Up to Level 10
I coded this last year and it's a personal favourite because it's progressively challenging and simple. It reminds me a bit of Flappy Birds but not as hard and short.
I've hung it in the gallery because I plan on upgrading it.
 Edited by Jibba jModerator Monday, December 7, 2015 8:28 PM

 Edited by Jibba jModerator Monday, December 7, 2015 8:18 PM

Hi JJ, how about (same for TB):
TextWindow.WriteLine(1 * "string") ' > 0
TextWindow.WriteLine("string" + 0) ' compare Len vs. Len("string")Zock's challenge: Make a filled ellipse without using ellipse methods. If 'DrawLine' is allowed, eg.:
a = 350 ' 200
b = 200 ' 350
'GraphicsWindow.PenWidth = 1
GraphicsWindow.PenColor = "Red"
For x = 0 To a
y = b * Math.SquareRoot(1  x*x/a/a)
GraphicsWindow.DrawLine(a+x,by, a+x,b+y) ' right side
GraphicsWindow.DrawLine(ax,by, ax,b+y) ' left side
EndForditto for Hyperbel ID: WXM333 and Parabel ID: FTZ689
 Edited by Pappa LapubEditor Tuesday, December 8, 2015 5:33 PM

Hey yeah. Thanks PL
tb = Controls.AddTextBox(10, 10) btn = Controls.AddButton(" ", 10, 40) Controls.ButtonClicked = BC Sub BC If Text.GetLength(Controls.GetTextBoxText(tb) + 0) = Text.GetLength(Controls.GetTextBoxText(tb)) Then GraphicsWindow.ShowMessage("is num" "") Else GraphicsWindow.ShowMessage("is string" "") EndIf EndSub

GCD challenge:
TextWindow.Write("Enter the first number: ") Num1 = TextWindow.Read() TextWindow.Write("Enter the second number: ") Num2 = TextWindow.Read() For i = 1 To Math.Max(Num1,Num2) If Math.Remainder(Math.Max(Num1,Num2),i) = 0 Then If Math.Remainder(Math.Min(Num1,Num2),i) = 0 Then GCD = i EndIf EndIf EndFor TextWindow.WriteLine("The greatest common denomonator is " + GCD)
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11

Fill ellipse:
Width = 100 Height = 50 GraphicsWindow.PenColor = "Red" For i = 0 To 314 DX = Math.Cos((i+314)/100) * Width DY = Math.Sin((i+314)/100) * Height X = Math.Cos(i/100) * Width Y = Math.Sin(i/100) * Height GraphicsWindow.DrawLine(x+200,y+200,DX+200,DY+200) EndFor
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11

GCD challenge (from LDCall function collection):
arrNum = "1=1155;2=1296;" ' < 2 numbers here
TextWindow.Write("gcd for '"+ arrNum +"' = ")
gcdCalc()
TextWindow.WriteLine(return)
TextWindow.WriteLine("")
Sub gcdCalc ' ggTCalc
gcdCnt = Array.GetItemCount(arrNum)
If gcdCnt > 1 Then
While (arrNum[1] <> arrNum[2])
If arrNum[1] > arrNum[2] Then
arrNum[1] = arrNum[1]  arrNum[2]
Else
arrNum[2] = arrNum[2]  arrNum[1]
EndIf
EndWhile
return = arrNum[1]
Else
return = "Error! At least 2 integers needed."
EndIf
gcdCnt = ""
EndSub Edited by Pappa LapubEditor Monday, December 7, 2015 11:06 PM

My solution of GCF (modified Zock77 version)
A= TextWindow.Readnumber()' 1155
B= TextWindow.Readnumber()' 1296
sqv= Math.Round(Math.SquareRoot(Math.Max(a,B)))
For i= 2 To sqv
If Math.Remainder(A,i)=0 and Math.Remainder(B,i)=0 Then
max= Math.Max(max,i)
EndIf
EndFor
TextWindow.WriteLine("GCF= "+max) Edited by NaochanONEditor Tuesday, December 8, 2015 3:03 AM code changed


My solution for the largest prime number:
number=600851475143 TextWindow.Write("Factors of "+number+" : ") i=3 While i<99999999 while Math.Remainder(number,i)=0 number=number/i TextWindow.Write(" "+i) Endwhile If number=1 then i=99999999 endif i=i+2 endwhile TextWindow.WriteLine("")
At first I tried to generate an array of primes to test on the given large number. That worked but was slow, The slowest part was the generation of the array. The checking of all the values was so quick, that I decided to test all odd numbers, as in the above program. That was the quickest.
Jan [ WhTurner ] The Netherlands


Yep! I have an idea for a challenge: Write a pathmapping program. If you want to do a hard one, you might try to use the Astar algorithm, or for something a little easier, the Breadthfirst algorithm.
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11



Hi,
Here is my Challenge on Small basic Program
1) Simple Car Animation Program http://smallbasic.com/program/?HGP255
1) Simple Small Basic Painting Tool Small Baci Painting Tool  program id  BFM797
Small Basic Car Animation Complete Code
'Set the Graphics Window size and sow with your title GraphicsWindow.Show() GraphicsWindow.Title = "My Simple Animation" GraphicsWindow.Height = 600 GraphicsWindow.Width = 600 ''Set the global variable for draing car for animation xval=20 yval=160 carWidth=150 carHeight=40 ' redraw the car for every time delay up: ' to Draw the road GraphicsWindow.BrushColor = "black" GraphicsWindow.PenWidth = 2 GraphicsWindow.FillRectangle(0, yval60, GraphicsWindow.Width, yval+carHeight) GraphicsWindow.PenColor = "Black" GraphicsWindow.PenWidth = 2 'for adding the Top Part of Car GraphicsWindow.DrawRectangle(xval+carWidth/4, yvalcarHeight+10, carWidth/2, carHeight10) GraphicsWindow.BrushColor = "Orange" GraphicsWindow.FillRectangle(xval+carWidth/4, yvalcarHeight+10, carWidth/2, carHeight10) 'for adding the Main Part of Car GraphicsWindow.DrawRectangle(xval, yval, carWidth, carHeight) GraphicsWindow.BrushColor = "Orange" GraphicsWindow.FillRectangle(xval, yval, carWidth, carHeight) '' for Draw Back Wheel GraphicsWindow.BrushColor = "black" GraphicsWindow.DrawEllipse(xval+carWidth/12, yval+carHeight, 34, 34) GraphicsWindow.BrushColor = "gray" GraphicsWindow.FillEllipse(xval+carWidth/12, yval+carHeight, 34, 34) '' for Draw Front Wheel GraphicsWindow.BrushColor = "black" GraphicsWindow.DrawEllipse(xval+(carWidth46), yval+carHeight, 34, 34) GraphicsWindow.BrushColor = "gray" GraphicsWindow.FillEllipse(xval+(carWidth46), yval+carHeight, 34, 34) 'for the timer we use this delay Program.Delay(1000) 'after the delay time we clear all the graphics GraphicsWindow.Clear() 'using Goto we will again redraw the graphics with new xval position If xval+carWidth <=GraphicsWindow.Width Then xval=xval+20 Else xval=20 EndIf Goto up
Small Basic Simple Painting Tool
'Set the Graphics Window size and sow with your title GraphicsWindow.Show() GraphicsWindow.CanResize = "False" GraphicsWindow.Title = "SHANU SmallBasic Drawing Tool" GraphicsWindow.Height = 800 GraphicsWindow.Width = 800 'Draw Toolbar GraphicsWindow.PenColor = "Black" GraphicsWindow.PenWidth = 1 titles="SHANU SmallBasic Drawing Tool" GraphicsWindow.DrawBoundText(6, 4, GraphicsWindow.Width, titles) GraphicsWindow.DrawRectangle(6, 26, GraphicsWindow.Width12, 70) drawType=0 'Draw the buttons at the toolbar drawButtons() Controls.ButtonClicked = ButtonEvents Sub drawButtons clearAll = Controls.AddButton("ClearALL", 20, 44) Controls.SetSize(clearAll, 80, 40) freePen = Controls.AddButton("Free PEN Draw", 104, 44) Controls.SetSize(freePen, 120, 40) drawImage = Controls.AddButton("Image",228, 44) Controls.SetSize(drawImage, 80, 40) drawRectangle = Controls.AddButton("Rectangle",310, 44) Controls.SetSize(drawRectangle, 80, 40) fillRectangle = Controls.AddButton("FillRectangle",394, 44) Controls.SetSize(fillRectangle, 80, 40) drawCircle = Controls.AddButton("Circle",478, 44) Controls.SetSize(drawCircle, 80, 40) fillCircle = Controls.AddButton("Fill Circle",564, 44) Controls.SetSize(fillCircle, 80, 40) EndSub ''set the Drwaing Area Starting Xval,Yval and width and Height drawXval=20 drawYval=140 drawWidth=GraphicsWindow.Width60 drawHeight=GraphicsWindow.Height200 '' Draw the Draw Area inside this area we will draw GraphicsWindow.DrawRectangle(drawXval, drawYval, drawWidth, drawHeight) '' Check for the button clieked event and perform the action Sub ButtonEvents buttonText = Controls.GetButtonCaption(Controls.LastClickedButton) If buttonText = "ClearALL" Then ' Clear the draw Area for redraw drawType=1 GraphicsWindow.BrushColor="white" GraphicsWindow.FillRectangle(drawXval, drawYval, drawWidth, drawHeight) ElseIf buttonText = "Free PEN Draw" Then ' Draw the Free Pen drawType=2 ElseIf buttonText = "Image" Then ' Add Image in draw area drawType=3 ElseIf buttonText = "Rectangle" Then ' Draw Rectangle in draw area drawType=4 ElseIf buttonText = "FillRectangle" Then ' Fill Rectangle in draw area drawType=5 ElseIf buttonText = "Circle" Then ' Draw Circle in draw area drawType=6 ElseIf buttonText = "Fill Circle" Then ' Draw Circle in draw area drawType=7 EndIf EndSub 'Mouse Click Events 'here we check for draw type and if the dray type is GraphicsWindow.MouseDown = MouseClick Sub MouseClick OrgX = GraphicsWindow.MouseX OrgY = GraphicsWindow.MouseY ' If the Drawtype is 3 then its for Image Add If drawType=3 Then if OrgX >drawXval And OrgX<drawWidth Then if OrgY >drawYval And OrgY<drawHeight+drawYval6 Then image2 = "C:\ShanuICON.jpg" GraphicsWindow.DrawResizedImage(image2, OrgX, OrgY, 80, 80) EndIf EndIf ' end Draw Image ' to Draw Rectangle ElseIf drawType=4 Then if OrgX >drawXval And OrgX<drawWidth Then if OrgY >drawYval And OrgY<drawHeight+drawYval6 Then GraphicsWindow.DrawRectangle(OrgX, OrgY, 60, 60) EndIf EndIf ' to Fill Rectangle ElseIf drawType=5 Then if OrgX >drawXval And OrgX<drawWidth Then if OrgY >drawYval And OrgY<drawHeight+drawYval6 Then GraphicsWindow.FillRectangle(OrgX, OrgY, 60, 60) EndIf EndIf ' to Draw Circle ElseIf drawType=6 Then if OrgX >drawXval And OrgX<drawWidth Then if OrgY >drawYval And OrgY<drawHeight+drawYval6 Then GraphicsWindow.DrawEllipse(OrgX, OrgY, 60, 60) EndIf EndIf ' to Fill Circle ElseIf drawType=7 Then if OrgX >drawXval And OrgX<drawWidth Then if OrgY >drawYval And OrgY<drawHeight+drawYval6 Then GraphicsWindow.FillEllipse(OrgX, OrgY, 60, 60) EndIf EndIf EndIf EndSub 'Mouse Move event is used to draw the free pen GraphicsWindow.MouseMove = MouseDrag Sub MouseDrag x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY 'If the drawtype is 2 then for Free Pen draw here we will draw the colors with random If drawType=2 Then If (Mouse.IsLeftButtonDown) then if x >drawXval And x<drawWidth Then if y >drawYval And y<drawHeight+drawYval6 Then GraphicsWindow.FillEllipse(x, y, 6, 6) EndIf EndIf Endif EndIf ' fre pen EndSub '' used for free pen for fill random colors GraphicsWindow.MouseUp = MouseUp Sub MouseUp GraphicsWindow.BrushColor=GraphicsWindow.GetRandomColor() EndSub
Link for Technet Article http://social.technet.microsoft.com/wiki/contents/articles/32902.microsoftsmallbasicpaintingtoolusinggraphicswindow.aspx
 Edited by SYEDSHANU  MVPMVP Monday, December 14, 2015 4:41 AM



A solution for the "Follow the Mouse" Challenge. I have had this one on hand for quite some time. It one took me a while to get the math right.
'Follow the mouse  (C)opyright Matthew L. Parets aka codingCat  No Rights Reserved. :) Timer.Interval = 50 Timer.Tick = tock Turtle.Speed = 6 Sub tock chgY = GraphicsWindow.MouseY  Turtle.y chgX = GraphicsWindow.MouseX  Turtle.x angl = 90 + Math.GetDegrees(Math.ArcTan( (chgy) / (chgX))) If GraphicsWindow.MouseXTurtle.x < 0 Then angl = angl + 180 EndIf Turtle.Angle = angl Turtle.Move(10) EndSub


Here's my solution to Basic Motion 9: "Make a shape move randomly all over the screen at a constant speed."
Has anyone got some pseudo code thoughts on how I could do collision detection for the balls hitting each other and what to do with them when they collide?


Basically since all your collisions will be head on, you can use a formula like this:
OldDx = Dx[Ball1] Dx[Ball1] = Dx[Ball2] Dx[Ball2] = OldDx OldDy = Dy[Ball1] Dy[Ball1] = Dy[Ball2] Dy[Ball2] = OldDy
Or if you want to take restitution into account:
OldDx = Dx[Ball1] Dx[Ball1] = Dx[Ball2]*restitution Dx[Ball2] = OldDx*restitution OldDy = Dy[Ball1] Dy[Ball1] = Dy[Ball2]*restitution Dy[Ball2] = OldDy*restitution
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11


I programmed a calculator a few weeks ago and published it on TechNet Gallery. Actually I just found out that this is part of this months challenge.
The calculator can be found here: 123 Calculator.



2 really good programs Bluegrams.
If it's ok with Bluegrams maybe someone team in and apply some gradients to the turtle Xmas tree. We did some back in August with Naochans Swimming Shark: with Sardines


Hey Zock,
if too cluncy in WVB556, you could consider eg.
Dx[i] = 2 * Math.GetRandomNumber(2)  3 ' always returns 1 OR +1
Dy[i] = 2 * Math.GetRandomNumber(2)  3 ' or = Dx[i]
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11

Thought I'd post an image of my Xmas tree.
It's basically just 1 line drawn top to bottom in the centre of the gw.
As line goes down the penwidth increases and pencolor changes using GraphicsWindow.GetColorFromRGB().
The moon is simply a ")" in a wide font.
 Edited by Jibba jModerator Tuesday, December 29, 2015 5:30 AM

2 really good programs Bluegrams.
If it's ok with Bluegrams maybe someone team in and apply some gradients to the turtle Xmas tree. We did some back in August with Naochans Swimming Shark: with Sardines
Jibba Jabba, could you feature some of these on the blog?
I got one up for today. So maybe tomorrow or later.
Thanks!
Ed Price, Azure & Power BI Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)
Answer an interesting question? Create a wiki article about it! 



 Edited by NaochanONEditor Monday, January 11, 2016 12:58 PM
