C语言实战:小游戏“记忆随机数”

引言:随机生成四个0-9的正整数,然后操作者在提示下输入刚刚看见的四个数,如果正确,系统就提示正确,否则就错误并退出程序。

一、先来搞定头文件

#include <stdio.h>
#include <stdlib.h> //引入函数:exit() srand() system()
#include <time.h> // 引入函数:time()
#include <windows.h> // 引入函数:Sleep()

如图注释的文字说明,各个头文件分别对这个程序所需要的函数的对应关系。

二、基本的随机数生成

int main(){
int count = 4; //记录每次生成多少个随机数

while(1){
    unsigned int seed = time(NULL); //1000
    
    //设置随机数的种子
    srand(seed); 
    for(int i = 0; i < count; i++){
        //生成一个随机数 
        int temp2 = rand() % 9 + 1;
        printf("%d ",temp2); 
    } 
    printf("\n");

随机数的生成,死循环whlie(1)使其能够一直反反复复的生成随机数,执行整个过程。srand(seed);是用来播种随机数种子的,for循环用来生成四个随机数,随机数temp2=rand()%9+1表示生成的随机数是1-9之间的正整数。

三、关于随机数延时(即停留时间)和刷新屏幕

    // 延时2s
    Sleep(2000);
    //for(int i = 0; i < 10000000000/15*2; i++);

    //刷新屏幕 
    system("cls");
    /*  
    mac 
    for(int i = 0; i < 20; i++){
        printf("\n");
    } 
    */ 

Sleep函数用来停留延时,而system函数用来刷新屏幕。

四、核心操作

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;

}

重新播种是为了让下一次的随机数与上一次不同,同样for循环控制输入的四个数并判断是否与之前显示的相等,正确就执行下一次循环,否则就由exit控制退出程序。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容