Hier meine Lösung in Ruby:
//edit Gerade in bearbeitung wegen nachfolgenden Posts
//edit 2
hier die berichtigte Lösung:
Code:
puts "\n\nGeben Sie nacheinander 6 Zahlen zwischen 1 und 49 ein:\n\n"
a = []; i = 1; k = 0
while i <= 6
k = 0
puts "#{i}. Zahl:"; b = gets.to_i
a.each { |part|
if b == part
k = 1
end
}
if k == 1
puts "Diese Zahl wurde schon einmal genannt"
elsif b > 1 && b < 49
a.push(b); i+= 1
else
puts "Diese Zahl liegt nicht im vorgegebenen Zahlenraum"
end
end
i = 0; j = 1; c = 0; b = []
while a != b
b = []; j = 1
while j <= 6
k = 0; c = (rand(49)+1)
b.each { |part|
if part == c
k = 1
end
}
if k != 1
b.push(c); j += 1
end
end
puts b.join("\n"); puts "------------"; i += 1
end
puts "Nach #{i} Versuchen hat es geklappt! Gewinnchance: 1/#{i}*100=#{(1/i.to_f)*100}" Dauert lange, bis 6 richtige herauskommen. Die Zahlenkolonne, die angezeigt wird, sagt nur, dass das Programm läuft, ansonsten würde nichts passieren bis die Lösung gefunden ist, und da weiß man nie, obs noch arbeitet.