• 学习 C 语言丨编写一个简单的猜数字游戏


    当你学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序。下面是如何用 C 语言来编写它。

    练习编程的最佳方法是编写示例程序,它能帮助你练习新知识。

    “猜数字”游戏的伟大之处在于它践行了几个编程概念:如何使用变量、如何比较值、如何打印输出以及如何读取输入。

    电脑从 1 到 100 中随机挑选一个数字,你必须通过猜测来算出来。我听到了很多人都在学习 C 语言的消息。所以,我想接着用 C 语言写一个“猜数字”的游戏。

    去取一个随机数

    从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。

    因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 maxval 之间的一个随机数:

    #include <stdio.h>
    
    #include <sys/random.h>
    
    int randnum(int maxval)
    
    {
    
      /* pick a random number from 1 to maxval */
    
      int randval;
    
      getrandom(&randval, sizeof(int), GRND_NONBLOCK);
    
      /* could be negative, so ensure it's positive */
    
      if (randval < 0) {
    
        return (-1 * randval % maxval + 1);
    
      }
    
      else {
    
        return (randval % maxval + 1);
    
      }
    
    }

    该函数使用 Linux 的系统调用getrandom来生成一系列随机数。

    你可以在手册页中了解关于这个系统调用的更多信息,但请注意,getrandom将用随机的 0 和 1 填充变量。这意味着最终值可以是正的,也可以是负的,因此你需要在之后进行测试,以确保randnum函数的结果是正值。

     

    编写程序

    你可以用这个函数来写你的“猜数字”程序:

    #include <stdio.h>
    
    #include <sys/random.h>
    
    int randnum(int maxval)
    
    {
    
      ...
    
    }
    
    int main(void)
    
    {
    
      int number;
    
      int guess;
    
      number = randnum(100);
    
      puts("Guess a number between 1 and 100");
    
      do {
    
        scanf("%d", &guess);
    
        if (guess < number)
    
       {
    
          puts("Too low");
    
        }
    
        else if (guess > number)
    
        {
    
          puts("Too high");
    
        }
    
      } while (guess != number);
    
      puts("That's right!");
    
      return 0;
    
    }

    程序首先使用randnum函数从 1 到 100 之间选择一个随机数。在向用户输出一个提示后,程序进入一个do-while循环,以便用户可以猜测数字。

    在循环的每次迭代中,程序测试用户的猜测的数值。如果用户的猜测小于随机数,程序将输出“Too low”,如果猜测大于随机数,程序将输出“Too high”。循环继续,直到用户的猜测与随机数相同。

    当循环退出时,程序输出 “That's right!”,然后立即结束:

    $ gcc -o guess -Wall guess.c
    
    $ ./guess
    
    Guess a number between 1 and 100
    
    50
    
    Too high
    
    30
    
    Too low
    
    40
    
    Too low
    
    45
    
    Too high
    
    42
    
    Too low
    
    43
    
    Too low
    
    44
    
    That's right!

    尝试动手

    在学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序,因为它以一种非常直接的方式练习了几个常见的编程概念。

    通过用不同的编程语言实现这个简单的游戏,你可以演示一些核心概念,并比较每种语言的细节。

    你有最喜欢的编程语言吗?你会如何用它来编写“猜数字”游戏呢?关注本系列文章,查看你可能感兴趣的其他编程语言的示例。


    - End -

    —————————————

    不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~

    【值得关注】我的 编 程 学 习 交 流 俱 乐 部 !【点击进入】

    C语言入门资料(网盘链接免费分享):


     

    C语言推荐书籍(PDF免费分享):


     
  • 相关阅读:
    [saiku] 系统登录成功后查询Cubes
    216. Combination Sum III
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    211. Add and Search Word
    210. Course Schedule II
    分硬币问题
    开始学习Python
  • 原文地址:https://www.cnblogs.com/huya-edu/p/15206372.html
Copyright © 2020-2023  润新知