C语言猜数字升级版

本文介绍了如何使用C语言实现一个简单的猜数字游戏,涉及用户输入验证、随机数生成、游戏流程控制以及使用system函数实现特定操作。同时展示了爱心关机的输出样式。
摘要由CSDN通过智能技术生成
  • 题目概述

猜数字是一种益智游戏,既可以两个人一起玩,也可以与电脑一起玩。现在我们需要将这个游戏移到电脑上,让电脑与我们一起玩猜数字游戏.

  • 需求分析
  1. 用户输入:确定用户输入的数据是否正确
  2. 游戏过程:保证计算机能正确选定一个随机数字,并能够正常与用户互动
  3. 次数限制:让计算机能够一直让用户猜测下去,直到用户回答正确
  4. 结果输出:确保用户的答案是否计算机提供的随机数相等
  • 总体设计
  1. 主函数:负责程序的主要运行,包括用户输入,游戏过程,输出结果
  2. 随机数生成:一个函数负责指定范围内的随机数
  3. 判定:一个函数负责处理用户的输入并判定
  4. 输出:负责输出游戏结果

原版猜数字可以看之前文章这里就不作过多的展示。

我们这里主要就都了两个点,

  1. system;c语言中的system()函数主要用于发出一个DOS命令,该函数已经收录在标准c库中,可以直接调用。使用时包含头文件<stdlib.h>.shutdown -s -t关机指令.
  2. 爱心的打印:printf ("%*s", 10, s); //意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf ("%10s", s); %.*s: *用来指定宽度,对应一个整数.然后在网上搜的参数,去实现的爱心
  3. 关机就不做演示了,源代码直接放下面了
  4. #include<stdio.h>
    #include<time.h>
    #include<string.h>
    #include <stdlib.h>
    void CJ()
    {   
    int n = 0;
    printf("         请选择        \n");
    printf("*****1.()*******2.()***\n");
    printf("***********************\n");
    printf("***********************\n");
    printf("*****3.()*******4.()***\n");
    printf("***********************\n");
    scanf_s("%d", &n);
    switch (n)
    {
    case 1:
    printf("遗憾关机吧你\n");
    system("shutdown -s -t 0");
    break;
    case 2:
    printf("遗憾关机吧你\n");
    system("shutdown -s -t 0");
    break;
    case 3:
    printf("欧皇啊,让你在玩一次\n");
    break;
    case 4:
    printf("遗憾关机吧你\n");
                               system("shutdown -s -t 0");
                               break;
    }
     
    }
    void GC()
    {
    char a[] = "conjjgratulations on your success!conjjgratulations on your success!";
    printf("\n\n\n");
    printf("%*.*s\n", 58, 21, "**********");
    printf("%*.*s\n", 61, 25, "conjjgratulations on your success!");
    printf("%*.*s\n", 63, 29, "conjjgratulations on your success!");
    printf("%*.*s\n", 65, 33, a);
    printf("%*.*s\n", 66, 35, a);
    printf("%*.*s\n", 66, 35, a);
    printf("%*.*s\n", 65, 33, a);
    printf("%*.*s\n", 64, 31, a);
    printf("%*.*s\n", 63, 29, a);
    printf("%*.*s\n", 61, 25, a);
    printf("%*.*s\n", 59, 21, a);
    printf("%*.*s\n", 57, 17, a);
    printf("%*.*s\n", 55, 13, a);
    printf("%*.*s\n", 53, 9, a);
    printf("%*.*s\n", 51, 5, a);
    printf("%*.*s\n", 50, 3, a);
    printf("%*.*s\n", 49, 1, a);
     
    }
     
    void menu()
    {
    printf("***********************\n");
    printf("*****1.play 0.exit*****\n");
    printf("***********************\n");
    }
    void game()
    {
    int ret = 0;
    int guess = 0;
    ret = rand() % 100 + 1;
    int i = 0;
    for(i=1;i<=5;i++)
    {
    printf("请猜数字:>");
    scanf_s("%d", &guess);
    if (guess > ret)
    {
    printf("猜大了\n");
    }
    else if (guess < ret)
    {
    printf("猜小了\n");
    }
    else
    {
    printf("猜对了\n");
    GC();
    break;
    }
    if (i == 5)
    {
    printf("5次都没猜出\n");
    printf("让你来抽奖,抽不中就关机\n");
    CJ();
     
    }
     
     
    }
    }
    int main()
    {
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
    menu();
    printf("请选择>:");
    scanf_s("%d", &input);
    switch (input)
    {
    case 1:
    game();
    break;
    case 0:
    printf("退出游戏\n");
    break;
    default:
    printf("选择错误\n");
    break;
    }
     
    } while (input)
  • 39
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaNzikinh篮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值