趣味增强性猜数字(猜错关机)

最近重新开始学习C语言,必做节目之一就是写一个睿智的猜数字小游戏。

既然是重新学,就要玩点花样:>

最近学到了如何利用控制台shutdown计算机,现在来试试能不能内嵌到猜数字的睿智代码里。

下面先介绍一下必要函数

猜数字小游戏的精华是如何生成随机数。当然,我们知道,既然是由固定代码生成的数字,那肯定不是真的随机数,利用rand函数生成的函数叫伪随机数。

在这里插入图片描述

在C Library中查询,我们可以发现,rand函数的返回值是一个psuedo-random integral(伪随机整数),意味着rand函数需要一个seed来驱动它来产生一个伪随机数。现在我们来试试。

在VS 2019中写下如下代码

在这里插入图片描述

有趣的事情发生了,Ctrl +F5代码走一波以后
在这里插入图片描述

不论何时何地,rand生成的整型数都是42,和我们想象的好像不大一样。

继续阅读c plus plus我们发现,在使用rand函数前,我们需要使用srand将rand初始化。

查询srand
在这里插入图片描述

如文章所言,两个相同的seed初始化后,rand会产生相同的值,于是,我们需要想到一个能够不停地产生不同数字的函数,time函数是最好的选择,time函数能够显示时间,而不同时刻时间自然是不同的。
在这里插入图片描述

根据函数的定义,写出srand函数,注意,需要有一个类型转换将time的return value从time_t类型转换为unsigned int类型。

在这里插入图片描述

现在,我们就掌握了如何生成伪随机数!

😃

那么,如何shutdown我们的计算机呢?

老规矩,菜就要多查,打开c plus plus,搜索system函数

在这里插入图片描述

system是stdlib库下的一个函数,可以执行所给命令

常见的有

system(“cls”);

system(“dir”);

等等

如果要执行shutdown

可以执行以下代码

system(“shutdown -s -t 60”);

在命令提示符中输入shutdown -s -t 60后,会出现以下情况

在这里插入图片描述

当然,你也可以输入shutdown -a关闭这一命令

同样地,你也可以输入shutdown -p立马执行

秉着提高可玩性的精神,我们可以在猜数字中加入这些元素,学习不同函数的同时增加可玩性,代码呈现如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
void menu()
{
	printf("********************************\n");
	printf("*******     1. play      *******\n");
	printf("*******     0. exit      *******\n");
	printf("********************************\n");
}
void game()
{
	int n_rand = rand() % 100 + 1, i;
	int guess = 0;
	int cnt = 0;
	while(1)
	{
		printf("请猜一个1 ~ 100的数字:>\n");
		scanf("%d", &guess);
		if(guess == n_rand)
		{
			printf("恭喜你猜对了!\n");
			if(cnt >= 5)
			{
				printf("SYSTEM SHUTDOWN TERMINATED\n");
				system("shutdown -a"); 
			}
			break; 
		}
		else
		{
			cnt ++;
			if(guess > n_rand)
				printf("你猜的数字比答案大,还剩%d次机会\n", 10 - cnt);
			else
				printf("你猜的数字比答案小,还剩%d次机会\n", 10 - cnt);	
		}
		if(cnt >= 5 && cnt <= 10)
		{
			
			system("shutdown -s -t 60");
			for(i = 0;i < cnt;i ++)
			{
				Sleep(500);
				printf("SYSTEM SHUTDOWN T-MINUS SIXTY SECONDS\n");
			}
		}
		else if(cnt >= 10)
		{
			printf("啊哦!你的次数用光了呢!真是难办呢!我走了!拜拜!\n");
			system("shutdown -p");
			while(1)
			{
				Sleep(1000);
				printf("SYSTEM SHUTDOWN!!!!!!!!!\n"); 
			}
			break; 
		}
	}
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("玩耍请按1 :>,离开请按0 :<\n");
		scanf("%d", &input);
		switch(input)
		{
			case 0:
				printf("下次再玩叭 :<\n");
				break;
			case 1:
				game();
				break;
			default:
				printf("选错了,再想想\n");
				break;
		}
	}while(input);
	return 0;
} 

(文章来自博主公众号玉米酥)
就这样,一个猜错让电脑关机的程序就写完了。内容很简单,希望你能看有所获。如有错误,还请谅解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值