Small Basic 随机彩色物体自行排序?
Small Basic random colored objects order themselves?
我正在尝试为我的 Small Basic 程序提供随机背景:
If File.ReadContents(Program.Directory + "\Turtle.settings") = "" Then
Reset()
EndIf
Background = File.ReadLine(Program.Directory + "\Turtle.settings", 1)
Color = File.ReadLine(Program.Directory + "\Turtle.settings", 2)
Distance = File.ReadLine(Program.Directory + "\Turtle.settings", 3)
Mode = File.ReadLine(Program.Directory + "\Turtle.settings", 4)
Speed = File.ReadLine(Program.Directory + "\Turtle.settings", 5)
Width = File.ReadLine(Program.Directory + "\Turtle.settings", 6)
Controls.ButtonClicked = ButtonClicked
GraphicsWindow.KeyDown = KeyDown
GraphicsWindow.PenColor = Color
GraphicsWindow.PenWidth = Width
GraphicsWindow.Title = "Turtle"
Turtle.Speed = Speed
TextBoxOne = Controls.AddTextBox(10, 10)
Controls.SetTextBoxText(TextBoxOne, "Maximize the window")
Start = Controls.AddButton ("OK", 180, 8)
Sub KeyDown
EndSub
Sub ButtonClicked
If Controls.LastClickedButton = Start Then
Controls.Remove(TextBoxOne)
Controls.Remove(Start)
Turtle.X = GraphicsWindow.Width / 2
Turtle.Y = GraphicsWindow.Height / 2
Turtle.Show()
If Background = 1 Then
For I = 1 To 400
X = Math.GetRandomNumber(GraphicsWindow.Width)
Y = Math.GetRandomNumber(GraphicsWindow.Height)
Z = Math.GetRandomNumber(1)
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
GraphicsWindow.FillEllipse(X, Y, 20, 20)
EndFor
EndIf
Menu()
EndIf
EndSub
Sub Reset
File.WriteLine(Program.Directory + "\Turtle.settings", 1, "1")
File.WriteLine(Program.Directory + "\Turtle.settings", 2, "#000000")
File.WriteLine(Program.Directory + "\Turtle.settings", 3, "100")
File.WriteLine(Program.Directory + "\Turtle.settings", 4, "0")
File.WriteLine(Program.Directory + "\Turtle.settings", 5, "10")
File.WriteLine(Program.Directory + "\Turtle.settings", 6, "3")
EndSub
Sub Menu
EndSub
这些是结果:
如您所见,有时点的位置是随机的,但其他时候点是按颜色排序的。我没有对中间的代码做任何更改。
将 Z = Math.GetRandomNumber(1)
更改为 Z = 1
可防止点出现顺序,即使 Z
的值保持不变。
删除所有 File.ReadLine()
命令也有效。如果我删除命令,这些点总是随机放置的。不过,我仍然想使用这些,所以我需要另一种解决方案。
删除Turtle.Y = GraphicsWindow.Height / 2
或将其移到后台制作代码后,也确保了点的随机放置。我会将其保留为临时解决方案,但我仍在寻找真正的解决方案。
如果我在后台制作代码前后加上Turtle.Y = GraphicsWindow.Height / 2
,程序会崩溃。我假设这是由于 Small Basic 本身的错误,这也是导致我出现问题的原因。
错误是由Small Basic本身的问题引起的。因此,不编辑程序就不可能修正它。唯一可能的解决方案是删除 Turtle.Y = GraphicsWindow.Height / 2
或将其移至后台制作代码。
我正在尝试为我的 Small Basic 程序提供随机背景:
If File.ReadContents(Program.Directory + "\Turtle.settings") = "" Then
Reset()
EndIf
Background = File.ReadLine(Program.Directory + "\Turtle.settings", 1)
Color = File.ReadLine(Program.Directory + "\Turtle.settings", 2)
Distance = File.ReadLine(Program.Directory + "\Turtle.settings", 3)
Mode = File.ReadLine(Program.Directory + "\Turtle.settings", 4)
Speed = File.ReadLine(Program.Directory + "\Turtle.settings", 5)
Width = File.ReadLine(Program.Directory + "\Turtle.settings", 6)
Controls.ButtonClicked = ButtonClicked
GraphicsWindow.KeyDown = KeyDown
GraphicsWindow.PenColor = Color
GraphicsWindow.PenWidth = Width
GraphicsWindow.Title = "Turtle"
Turtle.Speed = Speed
TextBoxOne = Controls.AddTextBox(10, 10)
Controls.SetTextBoxText(TextBoxOne, "Maximize the window")
Start = Controls.AddButton ("OK", 180, 8)
Sub KeyDown
EndSub
Sub ButtonClicked
If Controls.LastClickedButton = Start Then
Controls.Remove(TextBoxOne)
Controls.Remove(Start)
Turtle.X = GraphicsWindow.Width / 2
Turtle.Y = GraphicsWindow.Height / 2
Turtle.Show()
If Background = 1 Then
For I = 1 To 400
X = Math.GetRandomNumber(GraphicsWindow.Width)
Y = Math.GetRandomNumber(GraphicsWindow.Height)
Z = Math.GetRandomNumber(1)
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
GraphicsWindow.FillEllipse(X, Y, 20, 20)
EndFor
EndIf
Menu()
EndIf
EndSub
Sub Reset
File.WriteLine(Program.Directory + "\Turtle.settings", 1, "1")
File.WriteLine(Program.Directory + "\Turtle.settings", 2, "#000000")
File.WriteLine(Program.Directory + "\Turtle.settings", 3, "100")
File.WriteLine(Program.Directory + "\Turtle.settings", 4, "0")
File.WriteLine(Program.Directory + "\Turtle.settings", 5, "10")
File.WriteLine(Program.Directory + "\Turtle.settings", 6, "3")
EndSub
Sub Menu
EndSub
这些是结果:
如您所见,有时点的位置是随机的,但其他时候点是按颜色排序的。我没有对中间的代码做任何更改。
将 Z = Math.GetRandomNumber(1)
更改为 Z = 1
可防止点出现顺序,即使 Z
的值保持不变。
删除所有 File.ReadLine()
命令也有效。如果我删除命令,这些点总是随机放置的。不过,我仍然想使用这些,所以我需要另一种解决方案。
删除Turtle.Y = GraphicsWindow.Height / 2
或将其移到后台制作代码后,也确保了点的随机放置。我会将其保留为临时解决方案,但我仍在寻找真正的解决方案。
如果我在后台制作代码前后加上Turtle.Y = GraphicsWindow.Height / 2
,程序会崩溃。我假设这是由于 Small Basic 本身的错误,这也是导致我出现问题的原因。
错误是由Small Basic本身的问题引起的。因此,不编辑程序就不可能修正它。唯一可能的解决方案是删除 Turtle.Y = GraphicsWindow.Height / 2
或将其移至后台制作代码。