Number reversal game: Difference between revisions

Add Seed7 example
(Added Erlang)
(Add Seed7 example)
Line 2,119:
goto [loop]
end</lang>
 
=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
 
const proc: main is func
local
const array integer: sortedList is [] ( 1, 2, 3, 4, 5, 6, 7, 8, 9);
var array integer: list is 0 times 0;
var array integer: reversedList is 0 times 0;
var integer: score is 0;
var integer: index is 0;
var integer: number is 0;
var integer: reverse is 0;
begin
for number range sortedList do
index := rand(1, succ(length(list)));
list := list[.. pred(index)] & [] (number) & list[index ..];
end for;
repeat
write("Current list: ");
for number range list do
write(number <& " ");
end for;
repeat
write(" Digits to reverse? ");
readln(reverse);
if reverse < 2 or reverse > 9 then
write("Please enter a value between 2 and 9.");
end if;
until reverse >= 2 and reverse <= 9;
incr(score);
reversedList := 0 times 0;
for index range reverse downto 1 do
reversedList &:= list[index];
end for;
list := reversedList & list[succ(reverse) ..];
until list = sortedList;
writeln("Congratulations, you sorted the list in " <& score <& " reversals.");
end func;</lang>
 
{{out}}
<pre>
Current list: 7 6 2 9 1 3 4 5 8 Digits to reverse? 4
Current list: 9 2 6 7 1 3 4 5 8 Digits to reverse? 9
Current list: 8 5 4 3 1 7 6 2 9 Digits to reverse? 8
Current list: 2 6 7 1 3 4 5 8 9 Digits to reverse? 3
Current list: 7 6 2 1 3 4 5 8 9 Digits to reverse? 7
Current list: 5 4 3 1 2 6 7 8 9 Digits to reverse? 5
Current list: 2 1 3 4 5 6 7 8 9 Digits to reverse? 2
Congratulations, you sorted the list in 7 reversals.
</pre>
 
=={{header|Tcl}}==