Inventory sequence: Difference between revisions

Added Wren
(Added Wren)
Line 215:
 
[[File:Inventory-raku.png|400px|thumb|left|]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=={{header|Wren}}==
{{libheader|DOME}}
{{libheader|Wren-plot}}
{{libheader|Wren-iterate}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascript">import "dome" for Window
import "graphics" for Canvas, Color
import "./plot" for Axes
import "./iterate" for Stepped
import "./fmt" for Fmt
 
var max = 10000
var inv = [0]
var counts = List.filled(max + 100, 0) // say
counts[0] = 1
var lower = 100
var upper = 1000
var done = false
var ix = 0
while (!done) {
var i = 0
while(true) {
var j = counts[i]
if (inv.count < max) inv.add(j)
counts[j] = counts[j] + 1
ix = ix + 1
if (inv.count >= lower) {
System.print("Inventory sequence, first 100 elements:")
Fmt.tprint("$2d", inv[0..99], 20)
System.print()
lower = max + 1
}
if (j == 0) break
if (j >= upper) {
Fmt.print("First element >= $,6d is $,6d at index $,7d", upper, j, ix)
if (j >= max) {
done = true
break
}
upper = upper + 1000
}
i = i + 1
}
}
 
// generate points for the plot
var Pts = (0...max).map { |i| [i, inv[i]] }.toList
 
class Main {
construct new() {
Window.title = "Inventory sequence - first 10,000 elements."
Canvas.resize(1000, 600)
Window.resize(1000, 600)
Canvas.cls(Color.white)
var axes = Axes.new(100, 500, 800, 400, 0..10000, 0..450)
axes.draw(Color.black, 2)
var xMarks = Stepped.new(0..10000, 500)
var yMarks = Stepped.new(0..400, 50)
axes.mark(xMarks, yMarks, Color.black, 2)
var xMarks2 = Stepped.new(0..10000, 1000)
var yMarks2 = Stepped.new(0..400, 100)
axes.label(xMarks2, yMarks2, Color.black, 2, Color.black)
axes.lineGraph(Pts, Color.blue, 2)
}
 
init() {}
 
update() {}
 
draw(alpha) {}
}
 
var Game = Main.new()</syntaxhighlight>
 
{{out}}
Terminal output:
<pre>
Inventory sequence, first 100 elements:
0 1 1 0 2 2 2 0 3 2 4 1 1 0 4 4 4 1 4 0
5 5 4 1 6 2 1 0 6 7 5 1 6 3 3 1 0 7 9 5
3 6 4 4 2 0 8 9 6 4 9 4 5 2 1 3 0 9 10 7
5 10 6 6 3 1 4 2 0 10 11 8 6 11 6 9 3 2 5 3
2 0 11 11 10 8 11 7 9 4 3 6 4 5 0 12 11 10 9 13
 
First element >= 1,000 is 1,001 at index 24,255
First element >= 2,000 is 2,009 at index 43,301
First element >= 3,000 is 3,001 at index 61,708
First element >= 4,000 is 4,003 at index 81,456
First element >= 5,000 is 5,021 at index 98,704
First element >= 6,000 is 6,009 at index 121,342
First element >= 7,000 is 7,035 at index 151,756
First element >= 8,000 is 8,036 at index 168,804
First element >= 9,000 is 9,014 at index 184,428
First element >= 10,000 is 10,007 at index 201,788
</pre>
 
[[File:Inventory-wren.png|500px|thumb|left]]
9,486

edits