欢迎访问宙启技术站
智能推送

使用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之间的数字进行猜测,然后根据提示继续猜测,直到猜中为止。每一次猜测后,程序会根据玩家猜测与随机数的大小关系给出相应的提示。当玩家猜对时,游戏结束。