2019-11-22C语言实战开发——猜数字小游戏

一. 需完成的操作


  • 产生不重复的随机数
  • 设置阅读时间
  • 进行随机数的销毁
  • 请用户输入
  • 判断输入是否正确;正确->继续;错误->退出;
  • 产生多一位的随机数
  • 重复上述的编程过程

二. 编程过程


#include 
#include 
#include 
#include 

int main(){
    int count = 3; //记录每次生成多少个随机数
    unsigned int seed = time(NULL); //1000
    //设置随机数的种子
    srand(seed); 
    for(int i = 0; i < count; i++){
        //生成一个随机数 
        int temp = rand() % 9 + 1;
        printf("%d ", temp); 
    } 
    printf("\n");
    
    // 延时2s
    Sleep(2000);
    //for(int i = 0; i < 10000000000/15*2; i++);
    
    //刷新屏幕 
    system("cls");
    /*  mac 
    for(int i = 0; i < 20; i++){
        printf("\n");
    } 
    */ 
    int temp;
    printf("请输入:");
    
    //重新设种子和之前生成时的种子一样
    srand(seed);
     
    //接收用户输入 一个一个接收 
    // 1 2 3
    // 1 2 4
    for(int i = 0; i < count; i++){
        scanf("%d", &temp);
        
        //获取对应的生成的随机数
        int old = rand() % 9 + 1;
        
        //比较输入的和随机数是否相同 
        printf("old:%d\n", old);
        if (temp != old){
            printf("错误 退出!\n");
            exit(EXIT_SUCCESS); 
        } 
    }
    
    printf("正确!\n"); 
    
    return 0;
}

三. 新的知识点


  • 产生随机数

1.利用rand函数输出随机数,导入头文件;利用srand()来记录随机数。
但这样取的随机数,当我们进行下一次循环,再去取随机数的时候会取到相同的随机数,这时就要去设置一个种子,以时间为种子,用srand()函数去记录产生的种子,由于每次产生随机数的时间都不相同,致使不会产生相同的随机数。

2.上面的程序设置了两个种子,这样的设置是为了程序之中的判断操作,
由于两个种子之间的时间间隔很小,使得两个种子取的随机数相同,再
将第二个种子,再将第二个种子和用户输入的数进行比较,可进行判断
操作

注意:若两个种子之间之间的程序太多;就会使得两个生随机数不同,这时就要使得我们所设置的时间变量统一,即初始化时就定义变量,即:
unsigned int seed = time(NULL);
srand(seed);  
使得两种子之间无时间差距,自然取得的随机数就会相同

  • 延时设置

1.利用Sleep()函数来进行睡眠,要输入头文件
如:

#include
Sleep(2000);

此时就表示睡眠2秒

注意:‘Sleep’中S要大写

2.也可以利用for循环来实现
如:

for(i=0;i<10000000000/15;i++);

表示睡眠1秒钟


  • 刷屏的设置

采用了\n和for循环的使用使得当睡眠时间结束的时候,开始执行for循环连续进行换行操作

for(int i=0;i<100;i++){
    printf("\n");
}

就会连续进行换行100次;


  • 退出操作

利用exit(EXIT_SUCCESS);输入头文件
这样的操作表示安全退出;


请各位多多指教!谢谢!

你可能感兴趣的:(2019-11-22C语言实战开发——猜数字小游戏)