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}}== |