加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

通过编写一 个有趣的游戏学习 C 语言

发布时间:2022-12-06 12:41:53 所属栏目:语言 来源:
导读:  从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 1 到 100 之

  从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 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”。循环继续,直到用户的猜测与随机数相同。
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!