首页 > 其他分享 >猜数游戏(基于两种随机方法)

猜数游戏(基于两种随机方法)

时间:2024-04-06 22:33:53浏览次数:27  
标签:guess magic 游戏 猜数 int counter 随机 printf reply

基本程序实现由电脑随机生成一个位于1~100的数,用户输入开始猜数(最多猜十次),猜对了就退出程序并询问用户是否再来一局,猜大了,报错输出too big,猜小了,报错输出too small。最多猜十次,十次过后没猜出来则结束,并询问用户是否再来一局。

一.基于输入随机数种子生成随机数。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdlib.h>//引用rand函数
int main()
{
    int magic;
    int guess;
    int ret;//用于保存函数scanf()的返回值
    int counter = 0;
    char reply;
    unsigned int seed;//定义一个无符号整形变量
    do {
        counter = 0;
        printf("please enter seed:");
        scanf("%u", &seed);
        srand(seed);//为函数rand()设置随机数种子(为了得到随机数组)
        magic = rand() % 100 + 1;//使随机数的范围在1~100间
        do {
            printf("please guess a magic numble:");
            ret = scanf("%d", &guess);
            while (ret != 1)//若输入非法字符则重新输入
            {
                while (getchar() != '\n');//清除输入缓冲区的非法字符
                printf("please guess a magic number:");
                ret = scanf("%d", &guess);
            }
            counter++;
            if (guess < magic)
            {
                printf("wrong,too small\n");
            }
            else if (guess > magic)
            {
                printf("wrong,too big\n");
            }
            else
            {
                printf("right\n");
            }
        } while (guess != magic && counter < 10);//判断退出条件最多猜十次和猜对的时候退出)
        printf("counter=%d\n", counter);
        printf("do you want to continue(Y/N or y/n)?");
        scanf(" %c", &reply);//%c前面有个空格(避免前面输入到缓冲区的回车键被当成有效字符赋给reply)
    } while (reply == 'Y' || reply == 'y');
    return 0;
}

二.利用时间time()函数实现对随机数的选用。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdlib.h>//引用rand函数
#include<time.h>

int main()
{
    int magic;
    int guess;
    int ret;//用于保存函数scanf()的返回值
    int counter = 0;
    char reply;

    do {
        counter = 0;
        printf("please enter seed:");
        srand(time(NULL));//l利用电脑时间为函数rand()设置随机数种子(为了得到随机数组)
        magic = rand() % 100 + 1;//使随机数的范围在1~100间
        do {
            printf("please guess a magic numble:");
            ret = scanf("%d", &guess);
            while (ret != 1)//若输入非法字符则重新输入
            {
                while (getchar() != '\n');//清除输入缓冲区的非法字符
                printf("please guess a magic number:");
                ret = scanf("%d", &guess);
            }
            counter++;
            if (guess < magic)
            {
                printf("wrong,too small\n");
            }
            else if (guess > magic)
            {
                printf("wrong,too big\n");
            }
            else
            {
                printf("right\n");
            }
        } while (guess != magic && counter < 10);//判断退出条件最多猜十次和猜对的时候退出)
        printf("counter=%d\n", counter);
        printf("do you want to continue(Y/N or y/n)?");
        scanf(" %c", &reply);//%c前面有个空格(避免前面输入到缓冲区的回车键被当成有效字符赋给reply)
    } while (reply == 'Y' || reply == 'y');
    return 0;
}

标签:guess,magic,游戏,猜数,int,counter,随机,printf,reply
From: https://blog.csdn.net/hlqlk0052/article/details/137287938

相关文章

  • 游戏找不到EMP.dll或EMP.dll丢失的多个不同解决方法分享
    电脑游戏中,动态链接库(DLL)文件扮演着重要的角色。其中,EMP.dll是许多游戏所必需的一个组件。然而,由于各种原因,EMP.dll文件可能会丢失或损坏,这给玩家带来了一系列的问题和困扰。本文将探讨EMP.dll丢失对电脑游戏的影响以及该文件的属性总结以及电脑出现找不到EMP.dll或EMP.dll丢失......
  • 从像素游戏到 3A 大作的游戏引擎/框架
    Bevy——Rust构建的游戏引擎Bevy是一款由Rust语言构建且简单明了的数据驱动的游戏引擎,并将永远保持开源且免费。Mach——Zig游戏引擎和图形工具包Mach是一个Zig游戏引擎和图形工具包,用于构建高性能、真正跨平台、健壮且模块化的游戏,可视化和桌面/移动图形用......
  • [C++] 小游戏 斗破苍穹2.8.1版本 zty出品
    前言大家好,今天zty带来的是首次增加调试角色的版本,2.8.1版本主要更新了调试角色(感觉没啥用)。先赞后看 养成习惯点赞过100一天更3次正文#include<stdio.h>#include<iostream>#include<ctime>#include<bits/stdc++.h>#include<time.h>//suiji#include<windows.h>/......
  • 【Mathematical Model】基于Python实现随机森林回归算法&特征重要性评估&线性拟合
    ​    前段时间在做遥感的定量反演,所以研究了一下回归算法,由于之前发的几篇博文都是定义好基础方程进行拟合的,不太满足我的需求。所以研究了一下随机森林回归的算法,之前使用随机森林都是做分类,这次做了回归算法也算是补全了RF算法的空缺了。今天抽空给大家分享一下使用P......
  • 17.C结构化程序 猜数字游戏
    ////猜数字游戏#include<stdio.h>#include<stdlib.h>#include<time.h>//产生一个0~RAND_MAX之间的伪随机数//intrand=rand();错误//rand()函数是标准库中的一个函数,用于生成一个伪随机数//而rand是一个变量名,当你使用intrand=...;时//你实际上是在尝试定义......
  • 游戏攻略|基于Springboot和vue的游戏分享平台系统设计与实现(源码+数据库+文档)
    游戏攻略分享平台目录基于Springboot的在线考试管理系统设计与实现一、前言二、系统设计三、系统功能设计 1、前台:2、后台5.2.1管理员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道......
  • HJ3 明明的随机数
    利用容器的自排序API方法Collections.sort()注意list也有list.contains()方法importjava.util.Scanner;importjava.util.*;//注意类名必须为Main,不要有任何packagexxx信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin......
  • 洛谷P1000超级玛丽游戏C++
    题目描述超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。********************####....#.#..###.....##....###.......############......
  • 2024年4月5日-UE5-怪物被击中会停止移动,流星火雨,引导施法技能制作、随机数
    在角色总类的蓝图里,创建一个变量 然后在怪物总类这里,设置受到伤害则设置为被击中状态,先停止移动,然后播放动画完毕,取消被击中状态 然后行为树里也要修改,没有死亡,没有被击中状态才执行行为树,使用个OR命令 现在开始制作流星火雨技能效果在输入这里新建一个流星火雨 ......
  • 2-35. 构建游戏的时间系统
    创建TimeManager在Update里面更新时间对时间进行赋值添加枚举修改Settings项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240405_2007......