写一个猜数字游戏
1.模块
主函数调用函数(自己按照模块写的函数)
2.打印:欢迎来到猜数字游戏void menu()
3.登录界面:输入错误三次则自动退出
4.游戏要求void game()
- 自动产生1-100之间的随机数
- 猜数字
a.猜对了,恭喜你,游戏结束
b.猜错了,会告诉你大了还是小了,然后继续猜- 游戏可以一直玩,除非退出游戏
一、game.h
#pragma once
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void menu();
void MENU();
void login();
void game();
二、test.c
#define _CRT_SECURE_NO_WARNINGS
#include "game.h"
void menu()
{
printf("*****欢迎来到猜数字小游戏*****\n");
return 0;
}
void login()
{
//假设密码为123456
int password[20] = {0};
int i = 0;
int flag = 0;
//输对则开始玩游戏,输错三次则跳出程序
for (i = 0; i < 3; i++)
{
printf("请输入密码:\n");
scanf("%s", &password);
if (strcmp(password, "123456") == 0)
{
printf("登陆成功");
flag = 1;
break;//跳出循环
}
else
{
printf("第%d次输入错误", i + 1);
}
}
if (flag == 0)
{
printf("输入三次都输入错误,退出程序。\n");
}
}
void MENU()
{
printf("**************************\n");
printf("******** 1. play *********\n");
printf("******** 0. exit *********\n");
printf("**************************\n");
}
void game()
{
printf("**********开始游戏**********\n");
//生成1-100的随机数
int ret = rand() % 101;//对应主函数的srand
int num = 0;
while (1)//无限循环
{
printf("请猜数字:\n");
scanf("%d", &num);
if(ret>num)
{
printf("输入太小,请重新输入");
}
else if (ret < num)
{
printf("输入太大,请重新输入");
}
else
{
printf("输入正确");
break;
}
}
return 0;
}
三、mian1.c
#define _CRT_SECURE_NO_WARNINGS
#include "game.h"
int main()
{
int input = 0;
menu();
login();
srand((unsigned int)time(NULL));
do
{
MENU();
printf("请选择(0或1):\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
default:
printf("选择错误,重新选择\n");
break;
}
} while (input);
return 0;
}