首页 > 其他分享 >C语言猜数字游戏完整版

C语言猜数字游戏完整版

时间:2024-05-28 22:58:35浏览次数:24  
标签:guess 游戏 int C语言 break printf input 完整版 函数

在这里插入图片描述

题目:电脑随机生成1~100的随机数;玩家猜数字过程中,根据猜测数据的大小给出或多或少的反馈,直到猜对,游戏结束。

首先,随机数的生成:①rand函数可以生成随机数,rand 函数会返回一个伪随机数,这个随机数的范围是0~RANDMAX之间;②srand函数:用来初始化随机数的生成器;③time函数:在程序中,我们一般使用程序运行时间作为种子,因为时间在时刻变化,time函数用于获得时间;④注意本次需要用到的头文件:<stdio.h>,<stdlib.h>(rand函数,srand函数),<time.h>(time函数) 。

一、简单版猜数字。

首先是主函数,三个版本只有调用函数有区别。
先看主函数:

int main()
{
	int input = 0;
	//设置随机数的起点
	//整个工程只调用一次该函数
	srand((unsigned int)time(NULL));


	//使用一个do-while循环让猜对数字后重新进入
	do
	{
		menu();//做一个进入游戏的菜单,可以选择进入或者不进入

		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);

	return 0;
}

主函数的话,三个版本都没有改变哦
接下来看完整的代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu()
{
	printf("*************************\n");
	printf("*******1.play************\n");
	printf("*******0.exit************\n");
	printf("*************************\n");
}
void game()
{
	int r = rand() % 100 + 1;
	int guess = 0;
	while (1)
	{
		printf("请猜数字:\n");
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("猜大了\n");
		}
		else if (guess < r)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了\n");
			break;
		}
	
	}
}


int main()
{
	int input = 0;
	//设置随机数的起点
	//整个工程只调用一次该函数
	srand((unsigned int)time(NULL));


	//使用一个do-while循环让猜对数字后重新进入
	do
	{
		menu();//做一个进入游戏的菜单,可以选择进入或者不进入

		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);

	return 0;
}

输出结果是这样的:
在这里插入图片描述

是不是很有趣呢,这个猜数字游戏,咱们可以用来当真心话大冒险的骰子,输入数字让系统帮你找一下幸运儿是谁呢。那这个都这么好玩了,如果咱们再加上限制的次数呢?咱们一起来看看

二、加次数版的猜数字游戏

话不多说,咱们只要在调用的函数上面加上一个count就可以啦,看到这里,有想要自己动脑的宝宝,可以想一下在哪里加呢。话不多说,直接丢代码啦:

#define  _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<time.h>
#include<stdlib.h>


void game()
{
	int r = rand() % 100 + 1;
	int guess = 0;
	int count = 5;
	while (count)
	{
		printf("您还剩%d次机会\n",count);
		printf("请猜数字:\n");
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("猜大了\n");

		}
		else if ("guess<r")
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了!\n");
			break;
		}
		count--;
	}
		if (count == 0)
		{
			printf("用完了所有机会,猜数字失败,正确值为%d\n",r);
		}

	
}
void menu()
{
	printf("*********************\n");
	printf("*******1. play*******\n");
	printf("*******0. exit*******\n");
	printf("*********************\n");
}



int main()
{
	int input = 0;
	srand  ((unsigned int)time(NULL));

	do
	{
		menu();

		printf("请选择:");
		scanf("%d", &input);

		switch(input)
		{
		case 1:
			game();
		case 0:
			printf("退出游戏\n");
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);

	return 0;

}

输出结果如下:
在这里插入图片描述
这么看的话,是不是很简单,只是加了个次数,那如果在捣蛋一点呢,咱们想要恶搞朋友,也可以让朋友在限定时间内没有猜对,就会关机,哈哈哈哈哈是不是听起来很有趣呢,接下来咱们来看看是怎么样的吧。

三、会关机版猜数字游戏

首先要加一点补充:用代码关机,咱们要先认识系统的关机命令、取消关机命令:①shutdown -s -t 60 这是关系命令,这里的60是指电脑会在60秒后关机;②shutdown -a 取消关机命令

看到这里的下伙伴可以动脑想想应该把它放在那里呢,主函数还是跟前面两个一样呢,只是调用的函数里头加了一些语句,不妨想想呢。

话不多说,放上代码:

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu()
{
	printf("********************\n");
	printf("*****1. play********\n");
	printf("*****0. exit********\n");
	printf("********************\n");

}

void game()
{
	int r = rand() % 20 + 1;//这里的数字可以设置小一点,避免猜不到正确的数字
	int guess = 0;
	printf("只有60秒内选择到正确的数字,才能避免关机!\n");
	while (1)
	{
		system("shutdown -s -t 60");//用system函数使用系统命令
		printf("请猜数字\n");
		scanf("%d", &guess);

		if (guess > r)
		{
			printf("猜大了\n");
		}
		else if (guess < r)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜您,猜对了!\n");
			system("shutdown -a");
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择:\n");
		scanf("%d", &input);
		switch(input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}

	} while (input);
	return 0;
}

运行图我就不放啦,自己可以去试试呢。学了这几个猜数字游戏,是不是觉得很有趣呢,不妨自己再去试试看,C语言真的太有趣了哈哈哈哈哈。有什么建议的话,欢迎在评论区留言,谢谢大家看到这里。

在这里插入图片描述

标签:guess,游戏,int,C语言,break,printf,input,完整版,函数
From: https://blog.csdn.net/2401_84538476/article/details/139278514

相关文章

  • 游戏开发:集群配置管理
    跨机集群的核心实现:开启跨机消息管理服务,节点内所有需要跨进程投递的消息都通过此服务转发,通过网络送达集群内目标节点。实现:每个进程开启服务,服务内缓存集群节点的配置信息,与每个节点建立通信连接,负责当前节点和集群内节点之间的消息通信;根据当前节点配置监听集群消息入口(ip+......
  • 数据结构-单向链表的实现(c语言)
    链表的定义:链表是由一系列的结点组成的,每个结点包含两个域,分别是指针域(*next)与数据域(data)。单向链表的实现//.h文件#ifndeDXLB_H#defineDXLB_H//定义结点结构体typedefstructLINKNODE{structLINKNODE*next;//指向下一个结点的指针intdata;......
  • C语言中strncpy、strncat、memcpy、memmove函数的详解与比较
    目录目录C语言中strncpy、strncat、memcpy、memmove函数的详解与比较一、strncpy函数二、strncat函数三、memcpy函数四、memmove函数C语言中strncpy、strncat、memcpy、memmove函数的详解与比较一、strncpy函数strncpy是C语言标准库中的一个函数,用于将字符串src复制到字符串d......
  • 算法题模版(C语言)
    自用总结一、最大公约数(gcd)函数法:递归法(最简):二、最小公倍数(lcm)函数法:算出最大公约数后无需递归三、斐波那契数列(fibonacci)(fib)递归法(最简):    ......
  • python——拼图游戏
    目录前言一、拼图游戏介绍二、游戏设计思路三、程序设计步骤3.1Python处理图片切割3.2游戏逻辑的实现3.3全部代码 总结前言利用python,通过将一幅图片分割成若干拼块并将它们顺序随机打乱来编写拼图小游戏。一、拼图游戏介绍拼图游戏是将一幅图片分......
  • Steam游戏搬砖:靠谱吗,详细版说下搬砖中的核心内容!
    可能大家也比较关注国外Steam游戏搬砖这个项目,最近单独找我了解的也比较多,其实也正常,因为现在市面上的项目很多都很鸡肋,而且很多都是一片红海,内卷太过严重,所以对于Steam的关注度也高很多,更何况Steam搬砖无需引流,时间也自由,综合来看,确实是不错的项目。但是,也有点不足,那就是利......
  • 游戏服务器租用带宽选择
    游戏服务器租用时选择合适的带宽至关重要,因为带宽直接影响游戏的延迟、流畅度和玩家体验。以下是几个选择带宽时需要考虑的因素:游戏类型:实时竞技类游戏(如FPS、MOBA)对延迟非常敏感,需要较低的ping值保证游戏公平性,因此可能需要更高的带宽来支持更多的并发连接。非实时游戏......
  • C语言学习——break语句,continue语句,signed与unsigned,再论数据类型
    目录一、break语句二、continue语句 三、signed与unsigned1.当程序运行时,如果发生了越界:2.有符号与无符号 四、再论数据类型1.C语言中的sizeof关键字2.C语言中的奇葩整型(long)3.数据类型的本质区别一、break语句1、break语句可以结束当前循环的执行2、执行完brea......
  • C语言:结构体和共用体
    一.简述结构体和共用体是C语言中两种重要的用户自定义数据类型,用于将不同类型的数据组合在一起。它们在内存布局、用途和访问方式上都有显著的区别和一些相似点。以下是详细的介绍:Ⅰ结构体定义structExample{    inta;    floatb;    charc;};......
  • 数据结构的直接插入排序(C语言版)
    一.直接插入排序的基本概念1.直接插入排序的基本思想将数组分为已排序和未排序两部分。每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。重复步骤2,直到整个数组有序。2.排序的工作原理假设前i-1个元素已经有序,现在要将......