我是靠谱客的博主 欣喜路灯,最近开发中收集的这篇文章主要介绍C语言猜数字小游戏---详解+源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学了一些基础的C语言语法后我们就可以开始试着写一些小程序或者小游戏了,今天我就给大家用C语言写一个简单的猜数字小游戏。

源代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("**************************************n");
	printf("************  1.开始游戏  ************n");
	printf("************  0.退出游戏  ************n");
	printf("**************************************n");
}
void play()
{
	int n = rand() % 101;
	while (1)
	{
		int i = 0;
		printf("请猜一个0-100的数字n");
		scanf("%d", &i);
		if (i > n)
		{
			printf("猜大了,重新猜");
		}
		else if (i < n)
		{
			printf("猜小了,重新猜n");
		}
		else
		{
			printf("******恭喜你猜对了******n");
			break;
		}
	}

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

	return 0;
}
 

魔改版:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("**************************************n");
	printf("************  1.开始游戏  ************n");
	printf("************  0.退出游戏  ************n");
	printf("**************************************n");
}
void play()
{
	int n = rand() % 101;
	while (1)
	{
		int i = 0;
		printf("请猜一个0-100的数字n");
		scanf("%d", &i);
		if (i > n)
		{
			printf("猜大了,惩罚4秒钟n");
			Sleep(4000);  //每次猜错惩罚时间
		}
		else if (i < n)
		{
			printf("猜小了,惩罚3秒钟n");
			Sleep(3000);//每次猜错惩罚时间
		}
		else
		{
			printf("******恭喜你猜对了******n");
			printf(" 解除关机n");

			system("shutdown -a"); //取消关机
			break;
		}
	}

}
int main()
 {
	srand((unsigned int)time(NULL));
	good:                             //防止玩家退出游戏,goto解决
	system("shutdown -s -t 60");     //关机时间设置60秒
	printf("游戏开始,计算机还有60秒关机n");
	int input = 0;
	 
	do
	{
		menu();
		 
		scanf("%d", &input);
		 system("cls");  //清空屏幕
		switch (input)
		{
		case 1:
			 
			play();
			break;
		case 0:
			printf("退出游戏不可能,今天你必须玩n");
			goto good;
			break;
		default:
			printf("选择错误,重新输入n");
			break;
		}
	} while (input);

	return 0;
}
 

写代码之前我们一定要养成先构思逻辑再写代码的习惯,我们把游戏逻辑可以列成下面几个步骤:

1.创建一个简单的游戏菜单;

2.创建一个分支结构,玩家的选择决定程序的执行;

3.实现游戏过程,创建一个随机数(0-100);

4.玩家输入一个数(0-100),判断玩家输入的数字大于还是小于随机数,大于则提示猜大了,小于则提示猜小了,然后重新让玩家猜一个数字,如果等于则恭喜玩家猜对了,游戏结束;

1.创建菜单:

我们可以用printf函数就能实现一个简易的游戏菜单,我们创建一个menu函数实现它

void menu()
{
	printf("**************************************n");
	printf("************  1.开始游戏  ************n");
	printf("************  0.退出游戏  ************n");
	printf("**************************************n");
}

2.让玩家选择游戏选项,我们使用switch语句实现:


        switch (input)

		{
		case 1:
			menu();
			 
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("选择错误,重新输入n");
			break;
		}

但是这样每次我们只能玩一次游戏就要重新执行程序,所以我们优化一下代码,给它写上一个do  while循环语句:

    int input = 0;
    do
	{
		menu();
		 
		scanf("%d", &input);
		 system("cls");
		switch (input)
		{
		case 1:
			menu();
			 
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("选择错误,重新输入n");
			break;
		}
	} while (input);

3.游戏最主要的问题,如何实现一个随机数:

C语言中有一个函数叫rand,它能随机生成一个0到RAND_MAX之间的数字,RAND_MAX 的值是32767

 使用rand需要用srand设置随机数种子,不然它的值是固定不变的

srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或getpid(0)的返回值作为seed。

我们只需要在主函数中设置一次种子即可

int main()
{
srand((unsigned int)time(NULL));


}

我们需要的随机数是0-100,但是rand范围在0-32767,所以我们直接利用%取模即可

int n = rand()%101;//n的值取模后就在0-100之间

4.实现游戏过程,判断玩家输入值:

我们创建一个play函数来实现游戏的过程

void play()
{
    int n = rand() % 101;           //创建随机值n
    while (1)
    {
        int i = 0;
        printf("请猜一个0-100的数字n");
        scanf("%d", &i);
        if (i > n)
        {
            printf("猜大了,重新猜");
        }
        else if (i < n)
        {
            printf("猜小了,重新猜n");
        }
        else
        {
            printf("******恭喜你猜对了******n");
            break;
        }
    }

}

 

最后

以上就是欣喜路灯为你收集整理的C语言猜数字小游戏---详解+源码的全部内容,希望文章能够帮你解决C语言猜数字小游戏---详解+源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部