44 lines
783 B
Text
44 lines
783 B
Text
func getThree(n) {
|
|
var g3 = []
|
|
for i in 0..33 {
|
|
g3.Add(rnd(max: n) + 1)
|
|
}
|
|
g3.Sort()
|
|
g3.RemoveAt(0)
|
|
g3
|
|
}
|
|
|
|
func getSix() {
|
|
var g6 = []
|
|
for i in 0..5 {
|
|
g6.Add(getThree(6).Sum())
|
|
}
|
|
g6
|
|
}
|
|
|
|
func Array.Sum() {
|
|
var acc = 0
|
|
for x in this {
|
|
acc += x
|
|
}
|
|
acc
|
|
}
|
|
|
|
func Array.FindAll(pred) {
|
|
for x in this when pred(x) {
|
|
yield x
|
|
}
|
|
}
|
|
|
|
var good = false
|
|
|
|
while !good {
|
|
var gs = getSix()
|
|
var gss = gs.Sum()
|
|
var hvc = gs.FindAll(x => x > 14).Length()
|
|
print("attribs: \(gs), sum=\(gss), ", terminator: "")
|
|
let gl = gss >= 75 ? "good" : "low"
|
|
print("(\(gl) sum, high vals=\(hvc))", terminator: "")
|
|
good = gs.Sum() >= 75 && hvc > 1
|
|
print(" - " + (good ? "success" : "failure"))
|
|
}
|