Number reversal game: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: changed a comment.)
m (Added Egel Language example to Number Reversal Game)
Line 867: Line 867:


You took 9 attempts.</pre>
You took 9 attempts.</pre>

=={{header|Egel}}==
<lang Egel>
import "prelude.eg"
import "io.ego"
import "random.ego"

using System
using IO
using List
using Math

def swap =
[ I, J, XX -> insert I (nth J XX) (insert J (nth I XX) XX) ]

def shuffle =
[ XX ->
let INDICES = reverse (fromto 0 ((length XX) - 1)) in
let SWAPS = map [ I -> I (between 0 I) ] INDICES in
foldr [I J -> swap I J] XX SWAPS ]

def prompt =
[ XX, TURN ->
let _ = print TURN ". " in
let _ = map [ X -> print X " " ] XX in
let _ = print " : " in
toint getline ]

def game =
[ GOAL, SHUFFLE, TURN ->
if SHUFFLE == GOAL then
let _ = print "the goal was " in
let _ = map [ X -> print X " " ] GOAL in
print "\nit took you " TURN " turns\n"
else
let N = prompt SHUFFLE TURN in
let YY = (reverse (take N SHUFFLE)) ++ (drop N SHUFFLE) in
game GOAL YY (TURN + 1) ]

def main =
let XX = fromto 1 9 in game XX (shuffle XX) 0
</lang>


=={{header|Eiffel}}==
=={{header|Eiffel}}==