1.自动生成一个1-100之间的随机整数
2.猜数字:a.对,提示猜对了,游戏结束
b.错,提示猜大了或猜小了,游戏继续,直至猜对
3. 不会自动退出游戏,除非选择退出
先来写一个简单的菜单和游戏本体~
#define _CRT_SECURE_NO_WARNINGS//第一行是为了让scanf正常使用不报错
using namespace std;//这样不用写 std::cin 和 std::cout 了
//添加一些需要用到的头文件
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<time.h>
void menu()//创建一个简单的菜单
{
cout << "****************" << endl;
cout << "*****1.play*****" << endl;
cout << "*****0.exit*****" << endl;
cout << "****************" << endl;
}
void game()//游戏本体:实现生成随机数和猜数字
{
int n = rand() % 100 + 1;//将生成随机数字的范围定在1-100
//因为%100后的结果是0-99所以+1
int g;
while (1)//永真
{
cout << "请输入您猜的数字:>";//懒得用printf了orz
cin >> g;//懒得用scanf了
if (g < n)
cout << "猜小了!"<<endl;
else if (g > n)
cout << "猜大了!"<<endl;
else
{
cout << "猜对了!游戏结束" << endl;
break;
}
}
}
再写一下主函数:
//因为rand函数只会返回3-32767这个范围里的数字,且会重复
//所以使用srand函数,以系统时间作为种子产生随机数
//放在主函数中不放在game函数中是因为srand函数只需要调用一次
//如果放在game函数中的话,每次产生的随机数就会离得很近
int main()//主函数
{
srand((unsigned int)time(NULL));//因为rand函数只会返回3-32767这个范围里的数字,且会重复
//所以使用srand函数,以系统时间作为种子产生随机数
//放在主函数中不放在game函数中是因为srand函数只需要调用一次
//如果放在game函数中的话,每次产生的随机数就会离得很近
int input = 0;
do
{
menu();
cout << "请选择:>";
cin >> input;
switch (input)
{
case 1:
game();
break;
case 0:
cout << "退出游戏";
break;
default:
cout << "error,请输入1或0";
break;
}
}
while (input);//使用do while 循环让第一次先玩了
return 0;
}
演示效果:
受不了这倒霉催的运气了,结果就跟第一次猜的差1 ,笑死我了
****************
*****1.play*****
*****0.exit*****
****************
请选择:>1
请输入您猜的数字:>50
猜小了!
请输入您猜的数字:>75
猜大了!
请输入您猜的数字:>62
猜大了!
请输入您猜的数字:>56
猜大了!
请输入您猜的数字:>53
猜大了!
请输入您猜的数字:>52
猜大了!
请输入您猜的数字:>51
猜对了!游戏结束
****************
*****1.play*****
*****0.exit*****
****************
请选择:>0
退出游戏