You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#数字猜谜游戏如何实现猜测值与目标值远近提示及重新输入功能

C#猜数字程序功能修改方案

实现思路

  • 新增lastDiff变量存储上一次有效猜测与目标值的绝对差值,用于对比两次猜测的距离变化
  • 替换int.Parse为int.TryParse校验输入合法性,避免用户输入非数字时程序崩溃
  • 有效猜测未命中时,先提示猜测值偏大还是偏小;从第二次有效猜测开始,额外对比两次差值,提示距离目标偏近还是偏远
  • 增加清屏前的停顿操作,保证用户能完整看到提示信息
  • 原有while循环天然支持重复输入,仅在猜对时才退出循环

修改后完整代码

using System;

namespace higherlower_guesser
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int randomNumber = rnd.Next(0, 100);

            bool answerCheck = false;
            int guessAttempts = 0;
            // 记录上一次猜测的差值,初始设为-1标识还没有历史猜测
            int lastDiff = -1;
            
            while (!answerCheck)
            {
                Console.Clear();
                Console.WriteLine("请输入0-99之间的整数进行猜测");
                string input = Console.ReadLine();
                // 校验输入合法性
                if (!int.TryParse(input, out int enteredValue) || enteredValue < 0 || enteredValue >= 100)
                {
                    Console.WriteLine("输入无效,请输入0到99之间的整数");
                    Console.ReadKey();
                    continue;
                }
                // 有效猜测才累计次数
                guessAttempts++;
                // 计算当前猜测的绝对差值
                int currentDiff = Math.Abs(enteredValue - randomNumber);
                
                if (enteredValue == randomNumber) 
                {
                    Console.WriteLine("恭喜你猜对了!目标数字是{0},你总共猜了{1}次", randomNumber, guessAttempts);
                    answerCheck = true;
                }
                else
                {
                    // 先提示偏大还是偏小
                    if (enteredValue > randomNumber)
                    {
                        Console.Write("你猜的数偏大");
                    }
                    else
                    {
                        Console.Write("你猜的数偏小");
                    }
                    // 不是第一次猜测的话提示距离变化
                    if (lastDiff != -1)
                    {
                        if (currentDiff < lastDiff)
                        {
                            Console.WriteLine(",相比上一次更接近目标了");
                        }
                        else if (currentDiff > lastDiff)
                        {
                            Console.WriteLine(",相比上一次离目标更远了");
                        }
                        else
                        {
                            Console.WriteLine(",和上一次距离目标的距离一样");
                        }
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    // 更新上一次差值
                    lastDiff = currentDiff;
                    Console.WriteLine("按任意键继续重试");
                    Console.ReadKey();
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Mindo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:06:03