- 题目概述
猜数字是一种益智游戏,既可以两个人一起玩,也可以与电脑一起玩。现在我们需要将这个游戏移到电脑上,让电脑与我们一起玩猜数字游戏.
- 需求分析
- 用户输入:确定用户输入的数据是否正确
- 游戏过程:保证计算机能正确选定一个随机数字,并能够正常与用户互动
- 次数限制:让计算机能够一直让用户猜测下去,直到用户回答正确
- 结果输出:确保用户的答案是否计算机提供的随机数相等
- 总体设计
- 主函数:负责程序的主要运行,包括用户输入,游戏过程,输出结果
- 随机数生成:一个函数负责指定范围内的随机数
- 判定:一个函数负责处理用户的输入并判定
- 输出:负责输出游戏结果
原版猜数字可以看之前文章这里就不作过多的展示。
我们这里主要就都了两个点,
- system;c语言中的system()函数主要用于发出一个DOS命令,该函数已经收录在标准c库中,可以直接调用。使用时包含头文件<stdlib.h>.shutdown -s -t关机指令.
- 爱心的打印:printf ("%*s", 10, s); //意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf ("%10s", s); %.*s: *用来指定宽度,对应一个整数.然后在网上搜的参数,去实现的爱心
- 关机就不做演示了,源代码直接放下面了
- #include<stdio.h>
#include<time.h>
#include<string.h>
#include <stdlib.h>
void CJ()
{
int n = 0;
printf(" 请选择 \n");
printf("*****1.()*******2.()***\n");
printf("***********************\n");
printf("***********************\n");
printf("*****3.()*******4.()***\n");
printf("***********************\n");
scanf_s("%d", &n);
switch (n)
{
case 1:
printf("遗憾关机吧你\n");
system("shutdown -s -t 0");
break;
case 2:
printf("遗憾关机吧你\n");
system("shutdown -s -t 0");
break;
case 3:
printf("欧皇啊,让你在玩一次\n");
break;
case 4:
printf("遗憾关机吧你\n");
system("shutdown -s -t 0");
break;
}
}
void GC()
{
char a[] = "conjjgratulations on your success!conjjgratulations on your success!";
printf("\n\n\n");
printf("%*.*s\n", 58, 21, "**********");
printf("%*.*s\n", 61, 25, "conjjgratulations on your success!");
printf("%*.*s\n", 63, 29, "conjjgratulations on your success!");
printf("%*.*s\n", 65, 33, a);
printf("%*.*s\n", 66, 35, a);
printf("%*.*s\n", 66, 35, a);
printf("%*.*s\n", 65, 33, a);
printf("%*.*s\n", 64, 31, a);
printf("%*.*s\n", 63, 29, a);
printf("%*.*s\n", 61, 25, a);
printf("%*.*s\n", 59, 21, a);
printf("%*.*s\n", 57, 17, a);
printf("%*.*s\n", 55, 13, a);
printf("%*.*s\n", 53, 9, a);
printf("%*.*s\n", 51, 5, a);
printf("%*.*s\n", 50, 3, a);
printf("%*.*s\n", 49, 1, a);
}
void menu()
{
printf("***********************\n");
printf("*****1.play 0.exit*****\n");
printf("***********************\n");
}
void game()
{
int ret = 0;
int guess = 0;
ret = rand() % 100 + 1;
int i = 0;
for(i=1;i<=5;i++)
{
printf("请猜数字:>");
scanf_s("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("猜对了\n");
GC();
break;
}
if (i == 5)
{
printf("5次都没猜出\n");
printf("让你来抽奖,抽不中就关机\n");
CJ();
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择>:");
scanf_s("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
} while (input)