🐸 青蛙编程网
首页 / C# / C# 基础 / 8. 综合练习

综合练习:文字小游戏

这是什么:一个完整可玩的猜数字小游戏——电脑悄悄想一个 1~100 的数,你来猜,它只告诉你"大了"还是"小了"。

为什么用:零件都齐了:变量、循环、方法、Random、用户输入,可它们还各干各的。这一章把它们拼成一个完整程序,让你第一次看到"学过的知识能变成能玩的东西"。

如何用:先把游戏拆成五步流程,再用循环、条件和方法把每一步写成代码。

破题:把游戏拆成步骤

别急着看代码,先想想自己玩这个游戏的流程:

  1. 电脑想一个数 → random.Next(1, 101)
  2. 玩家输入一个数 → Console.ReadLine()
  3. 输入的不是数字?提示重来 → int.TryParse + continue
  4. 比大小给提示 → GetHint 方法
  5. 猜中就结束 → if + break

把人话翻译成代码,就是编程的全部秘密——下面的代码不过是把这五步排好队。

完整代码

新建项目 dotnet new console -o GuessNumber,把 Program.cs 整个替换成:

var random = new Random();
int answer = random.Next(1, 101);   // 想一个 1~100 的数
int count = 0;                      // 记录猜了几次

Console.WriteLine("我想好了一个 1~100 的数,猜猜看!");

while (true)
{
    Console.Write("你猜:");
    string? input = Console.ReadLine();

    if (!int.TryParse(input, out int guess))
    {
        Console.WriteLine("请输入一个整数哦~");
        continue;                   // 这轮不算,回到"你猜:"
    }

    count++;
    Console.WriteLine(GetHint(guess, answer));

    if (guess == answer)
    {
        Console.WriteLine($"答对了!你一共猜了 {count} 次。");
        break;                      // 猜中,跳出循环
    }
}

string GetHint(int guess, int answer)
{
    if (guess < answer) return "小了,往大猜!";
    if (guess > answer) return "大了,往小猜!";
    return "猜对了!🎉";
}

运行效果

我想好了一个 1~100 的数,猜猜看!
你猜:abc
请输入一个整数哦~
你猜:50
小了,往大猜!
你猜:75
大了,往小猜!
你猜:62
猜对了!🎉
答对了!你一共猜了 3 次。

(随机数每次不同,你的过程和次数会和上面不一样。)

代码里都是老朋友

代码 哪章学的 干什么
random.Next(1, 101) 常用类库 随机想一个 1~100 的数
while (true) + break 流程控制 一直猜,直到猜中才停
int.TryParse(input, out int guess) 数组与方法 转换失败不报错,用 out 带出结果
GetHint(...) 数组与方法 把"给提示"装进方法,主流程更清爽
continue 流程控制 跳过本轮,直接回到"你猜:"

string? 里的 ? 表示"用户可能什么都没输",配合 TryParse 正好稳稳接住,不会崩。看不懂哪一行,就回对应章节再看一眼——代码不是背出来的,是查出来的。

记忆口诀

Random 想数,while 死循环;TryParse 挡乱输,GetHint 管提示,break 定输赢。

动手改

  1. 把范围改成 1~1000,试试你的"对半猜"要几轮
  2. 加机会限制:最多猜 7 次,超了就公布答案并结束
  3. 猜中后问"再来一局吗?(y/n)",输入 y 就重开一局

C# 基础毕业 🎉 下一站 面向对象,让代码学会"造东西"——类与对象是 C# 的灵魂 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。