使用Haskell编写一个简单的游戏
发布时间:2023-12-09 22:28:51
下面是一个使用Haskell编写的简单猜数字游戏,命名为"GuessNumber.hs"。游戏的规则是计算机随机生成一个1到100之间的数字,玩家需要根据提示猜测出这个数字是多少。游戏会根据玩家的猜测情况给出相应的提示,直到玩家猜中为止。下面是代码的具体实现:
import System.Random
-- 生成1到100之间的随机数
getRandomNum :: IO Int
getRandomNum = randomRIO (1, 100)
-- 比较玩家猜测与随机数的大小,给出相应的提示
compareGuess :: Int -> Int -> String
compareGuess number guess
| guess == number = "猜对了!"
| guess < number = "猜小了,请继续猜测:"
| guess > number = "猜大了,请继续猜测:"
-- 游戏主函数
gameLoop :: Int -> IO ()
gameLoop number = do
putStrLn "请输入一个1到100之间的数字:"
guess <- readLn :: IO Int
putStrLn (compareGuess number guess)
case guess == number of
True -> return ()
False -> gameLoop number
-- 开始游戏
main :: IO ()
main = do
randomNum <- getRandomNum
putStrLn "欢迎来到猜数字游戏!"
gameLoop randomNum
使用例子:
欢迎来到猜数字游戏! 请输入一个1到100之间的数字: 50 猜小了,请继续猜测: 75 猜大了,请继续猜测: 60 猜大了,请继续猜测: 55 猜小了,请继续猜测: 57 猜小了,请继续猜测: 58 猜大了,请继续猜测: 56 猜对了!
在游戏开始时,计算机会生成一个1到100之间的随机数。玩家需要输入一个1到100之间的数字进行猜测,然后根据提示继续猜测,直到猜中为止。每一次猜测后,程序会根据玩家猜测与随机数的大小关系给出相应的提示。当玩家猜对时,游戏结束。
