这是对之前发布的第一个资源的一个讲解,大家感兴趣可以作更改,但是要声明一点,如果你改的代码带来了不太好的后果,与本人无关,大家要合理的运用知识,遵守道德。
那我们开始今天的话题。
猜数字游戏关机版本:
1. 猜数字(要会随机数)
2. 电脑关机
3. 结合
一、需要会的小版块
1.随机数
首先由于rand();是一个伪随机数,每次生成的随机数是一样的,所以我们要用srand();函数生成随机数种子,而只有时间是一直变化的,因此随机数我们可以写成
srand((unsigned int)time(NULL));
//这样继续用rand();函数每一次就是不一样的随机数了
PS:这里用到的头文件为 #include <stdlib.h> 和 #include <time.h>
2.电脑关机
这个相当于系统自带的,一般这样写关机的倒计时
system("shutdown -s -t 30");
//这里的30是指关机的倒计时
PS: 这里用到的头文件为 #include <windows.h>
3.字符比较
(这个是为了添加游戏的恶趣味性,比如说等到电脑倒计时关机的时候,要想开始游戏,必须输入一句话“我是猪”这样的)
一般要用到如下:
strcmp();函数
4.猜数字的小游戏
我们可以写到一个函数里面,这样的话会很方便
5.游戏菜单
这里可以看三字棋的讲解,是一样的道理
二、代码参考
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
void menu()
{
printf("####### START GAME ########\n");
printf("####### 1 . play ########\n");
printf("####### 0 . exit ########\n");
}
void game()
{
int num = rand() % 100 + 1;
int guess = 0;
while (1)
{
printf("猜数字喔,别忘了猜不对,时间到了会关机,嘿嘿嘿\n");
scanf("%d",&guess);
if (guess < num)
{
printf("猜小了\n");
}
else if (guess > num)
{
printf("猜大了\n");
}
else
{
printf("游戏成功,已给猪取消关机\n要继续玩儿吗,嘿嘿嘿,猪同学\n");
break;
}
}
}
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 30");
int choose = 0;
srand((unsigned int)time(NULL));
while(1)
{
printf("请输入“我是猪”,否则不到半分钟就关机,气死你,嘿嘿嘿\n");
scanf("%s",input);
if (strcmp(input,"我是猪") == 0)
{
printf("你是猪,哈哈哈,你真的信了\n");
printf("在剩余时间内玩儿猜数字游戏,猜对就不关机,这次保真\n");
//写猜数字的代码
do
{
menu();
printf("请选择:\n");
scanf("%d",&choose);
switch (choose)
{
case 1:
game();
system("shutdown -a");
break;
case 0:
printf("想离开?门都没有!!!\n");
printf("乖乖给我玩儿游戏吧!");
game();
system("shutdown -a");
break;
default:
printf("看来你这猪还有点智商,不选不就行了,哈哈哈哈哈\n");
system("shutdown -a");
break;
}
}while (choose);
}
}
return 0;
}
讲一下我这个代码就是猜数字,因为菜单是0离开,1结束,但是其实刚开始运行就会关机倒计时,所以0是离开没有什么用,不管选择0或者1都会进行游戏,但是你可以选择0和1以外的数字,这样你就可以跳过猜数字,直接取消关机了
今天的代码蛮有意思,希望和大家共勉~~~