Number reversal game: Difference between revisions
Content added Content deleted
(rearranges in order of the language.) |
(Added Elixir) |
||
Line 1,010: | Line 1,010: | ||
console writeLine:"You took ":tries:" attempts to put the digits in order!" readChar. |
console writeLine:"You took ":tries:" attempts to put the digits in order!" readChar. |
||
].</lang> |
].</lang> |
||
=={{header|Elixir}}== |
|||
{{trans|Erlang}} |
|||
<lang elixir>defmodule Number_reversal_game do |
|||
def start( n ) when n > 1 do |
|||
IO.puts "Usage: #{usage(n)}" |
|||
targets = Enum.to_list( 1..n ) |
|||
jumbleds = Enum.shuffle(targets) |
|||
attempt = loop( targets, jumbleds, 0 ) |
|||
IO.puts "Numbers sorted in #{attempt} atttempts" |
|||
end |
|||
defp loop( targets, targets, attempt ), do: attempt |
|||
defp loop( targets, jumbleds, attempt ) do |
|||
IO.inspect jumbleds |
|||
{n,_} = IO.gets("How many digits from the left to reverse? ") |> Integer.parse |
|||
loop( targets, Enum.reverse_slice(jumbleds, 0, n), attempt+1 ) |
|||
end |
|||
defp usage(n), do: "Given a jumbled list of the numbers 1 to #{n} that are definitely not in ascending order, show the list then ask the player how many digits from the left to reverse. Reverse those digits, then ask again, until all the digits end up in ascending order." |
|||
end |
|||
Number_reversal_game.start( 9 )</lang> |
|||
{{out}} |
|||
<pre> |
|||
Usage: Given a jumbled list of the numbers 1 to 9 that are definitely not in ascending order, show the list then ask the player how many digits from the left to reverse. Reverse those digits, then ask again, until all he digits end up in ascending order. |
|||
[3, 9, 4, 7, 6, 5, 1, 2, 8] |
|||
How many digits from the left to reverse? 2 |
|||
[9, 3, 4, 7, 6, 5, 1, 2, 8] |
|||
How many digits from the left to reverse? 9 |
|||
[8, 2, 1, 5, 6, 7, 4, 3, 9] |
|||
How many digits from the left to reverse? 8 |
|||
[3, 4, 7, 6, 5, 1, 2, 8, 9] |
|||
How many digits from the left to reverse? 3 |
|||
[7, 4, 3, 6, 5, 1, 2, 8, 9] |
|||
How many digits from the left to reverse? 7 |
|||
[2, 1, 5, 6, 3, 4, 7, 8, 9] |
|||
How many digits from the left to reverse? 4 |
|||
[6, 5, 1, 2, 3, 4, 7, 8, 9] |
|||
How many digits from the left to reverse? 6 |
|||
[4, 3, 2, 1, 5, 6, 7, 8, 9] |
|||
How many digits from the left to reverse? 4 |
|||
Numbers sorted in 8 atttempts |
|||
</pre> |
|||
=={{header|Erlang}}== |
=={{header|Erlang}}== |