Hi getting there with nimprogram well have it working in different areas.
 
The last part is where the most trouble is

import Control.Monad

import System.Random

 

initNim :: IO [Int]

initNim = replicateM 3 $ randomRIO (1,10)--- This get the random numbers

 

 

data PileName = A | B | C deriving (Show, Eq, Read)

 

typeOfMove :: (PileName, Int) -> [Int] -> [Int]

typeOfMove (A, x) xs = zipWith (-) xs [x,0,0]

typeOfMove (B, x) xs = zipWith (-) xs [0,x,0]

typeOfMove (C, x) xs = zipWith (-) xs [0,0,x]

 

main :: IO ()

main = do

    putStrLn "Which pile A, B, or C ?"

    x <- readLn

    putStrLn "How many stones?"

    y <- readLn

    let z = typeOfMove (x,y) [9,9,9]-- cannot get the random numbers here

    putStrLn . show $ z

 

 

 This is where the main problem is I 'm trying to run the game?

play nim = do

  z <- getLine

             newAnswer <- return (diff z)

if newAnswer == [0,0,1]||[0,1,0]||[1,0,0]

                 then putStrn "You win"

                 else play nim newAnswer

 

diff z ws hs =[ if z==w then w else h]-- trying to return different list here

 

 

John