当前位置: 首页 > news >正文

C++实现简单的猜数字小游戏


 猜数字


小游戏介绍:猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了,还是小了,相等表示猜到了。如果猜到,则结束程序。


小游戏实现的功能:

1.设置随机数生成1到100的随机数

2.精美的菜单让用户明白怎么操作游戏

3.五次猜机会只有五次猜数字的机会

4.游戏登入页面输入密码登入小游戏

5.自行选择操作用户自行选择玩游戏或者退出游戏


 首先来到我们的头文件:

#include<iostream>//标准输入输出流
#include<malloc.h>//动态开辟内存
#include<assert.h>//断言
#include <Windows.h>//改变字体颜色
#include<ctime>//使用time函数
#include<conio.h>//使用getch函数

枚举常量:

enum Menu
{Quit = 0,Play = 1
};

小游戏的登入系统 :

void menu2()
{int input = 0, count = 0, i = 0;char mima[20] = "123";char shuru[20] = { 0 };system("color F4");cout << "\t\t\t     **************************************" << endl;cout << "\t\t\t     |       *欢迎来到猜数字小游戏*       |" << endl;cout << "\t\t\t     |           *            *           |" << endl;cout << "\t\t\t      ------------------------------------ " << endl;cout<<"请输入登入密码:"<<endl;while ((count = _getch()) != '\r'){if (count == '\b'){i--;cout << "\b \b" << endl;}else{shuru[i++] = count;cout<<"*"<<flush;  //flush不换行的输出流}}shuru[i++] = '\0';if (strcmp(mima, shuru) == 0)//比较字符串的大小{cout << "\n密码正确,您已进入系统!" << endl;}else{cout << "密码错误,请重新输入!" << endl;exit(0);//关闭当前文件}system("pause");system("cls");
}

我们的游戏环节:

void game()
{int r = rand() % 100 + 1;//生成1到100之间的随机数int* ptr = (int*)malloc(sizeof(int));assert(ptr);//判断ptr的动态内存有没有开辟成功int count = 5;while (count--){cout << "请输入你喜欢的数字>:" <<endl;cin >> *ptr;if (*ptr > r){cout << "你还有" << count << "次机会" << endl;cout << "猜大啦!" << endl;}else{cout << "你还有" << count << "次机会" << endl;cout << "猜小啦!" << endl;}if (*ptr == r){cout << "恭喜你,猜对了!" << endl;break;}if (count == 0){cout << "很遗憾,失败了,正确的值为" << r << endl;}}free(ptr);//释放空间ptr = NULL;
}

我们的操作菜单:

void menu1()
{system("color F4");cout << "|----------------------------------|" << endl;cout << "|----------*猜数字游戏*------------|" << endl;cout << "|------------1.Play----------------|" << endl;cout << "|------------0.Quit----------------|" << endl;cout << "|----------------------------------|" << endl;
}

我们的main函数:

int main()
{menu2();srand((unsigned int)time(NULL));//添加随机数种子,利用当前时间作为随机数,防止每次随机数都一样int* input = (int*)malloc(sizeof(int));assert(input);//判断input的动态内存有没有开辟成功do {system("cls");//清空控制台menu1();cout << "请输入当前操作:" << endl;cin >> *input;switch (*input){case Quit://枚举类型美化选项cout << "--------*您已退出游戏*--------" << endl;system("pause");break;case Play:game();system("pause");break;default:cout << "-----------*输入错误,重新输入*-----------" << endl;cin >> *input;system("pause");}} while (*input);free(input);//释放空间input = NULL;return 0;
}

以下就是我们猜数字小游戏的整个代码啦:


#include<iostream>
#include<malloc.h>
#include<assert.h>
#include <Windows.h>
#include<ctime>
#include<conio.h>
using namespace std;
enum Menu
{Quit = 0,Play = 1
};
void menu2()
{int input = 0, count = 0, i = 0;char mima[20] = "123";char shuru[20] = { 0 };system("color F4");cout << "\t\t\t     **************************************" << endl;cout << "\t\t\t     |       *欢迎来到猜数字小游戏*       |" << endl;cout << "\t\t\t     |           *            *           |" << endl;cout << "\t\t\t      ------------------------------------ " << endl;cout<<"请输入登入密码:"<<endl;while ((count = _getch()) != '\r'){if (count == '\b'){i--;cout << "\b \b" << endl;}else{shuru[i++] = count;cout<<"*"<<flush;}}shuru[i++] = '\0';if (strcmp(mima, shuru) == 0){cout << "\n密码正确,您已进入系统!" << endl;}else{cout << "密码错误,请重新输入!" << endl;exit(0);}system("pause");system("cls");
}
void game()
{int r = rand() % 100 + 1;int* ptr = (int*)malloc(sizeof(int));assert(ptr);int count = 5;while (count--){cout << "请输入你喜欢的数字>:" <<endl;cin >> *ptr;if (*ptr > r){cout << "你还有" << count << "次机会" << endl;cout << "猜大啦!" << endl;}else{cout << "你还有" << count << "次机会" << endl;cout << "猜小啦!" << endl;}if (*ptr == r){cout << "恭喜你,猜对了!" << endl;break;}if (count == 0){cout << "很遗憾,失败了,正确的值为" << r << endl;}}free(ptr);ptr = NULL;
}
void menu1()
{system("color F4");cout << "|----------------------------------|" << endl;cout << "|----------*猜数字游戏*------------|" << endl;cout << "|------------1.Play----------------|" << endl;cout << "|------------0.Quit----------------|" << endl;cout << "|----------------------------------|" << endl;
}
int main()
{menu2();srand((unsigned int)time(NULL));int* input = (int*)malloc(sizeof(int));assert(input);do {system("cls");menu1();cout << "请输入当前操作:" << endl;cin >> *input;switch (*input){case Quit:cout << "--------*您已退出游戏*--------" << endl;system("pause");break;case Play:game();system("pause");break;default:cout << "-----------*输入错误,重新输入*-----------" << endl;cin >> *input;system("pause");}} while (*input);free(input);input = NULL;return 0;
}

http://www.lryc.cn/news/261684.html

相关文章:

  • 人工智能导论复习资料
  • Sentinel使用详解
  • Vue3源码梳理:响应式系统的前世今生
  • Jetpack Compose开发一个Android WiFi导航应用
  • 【Mode Management】ComM详细介绍
  • 【C++多线程编程】(二)之详解锁(lock)和解锁(unlock)
  • 【Mypy】超级实用的python高级库!
  • 【Python基础】循环语句
  • 【面试】广告优化
  • RabbitMQ插件详解:rabbitmq_message_timestamp【Rabbitmq 五】
  • AD9361 Evaluation Software配置脚本转换工具
  • Centos7 配置Git
  • python工具方法 44 数据仿真生成(粘贴目标切片到背景图像上,数据标签校验)
  • Llama 架构分析
  • vue3前端 md5工具类
  • Unity触摸 射线穿透UI解决
  • 基于QTreeWidget实现带Checkbox的多级组织结构选择树
  • 探索 Vim:一个强大的文本编辑器
  • K8S(十)—容器探针
  • [C错题本]
  • tomcat启动异常:子容器启动失败(a child container failed during start)
  • JAVA序列化(创建可复用的 Java 对象)
  • 如何使用自动化工具编写测试用例?
  • redis底层数据结构之skiplist实现
  • mjpg-streamer配置其它端口访问视频
  • C++相关闲碎记录(15)
  • 汽车IVI中控开发入门及进阶(十一):ALSA音频
  • Gradle 之初体验
  • 【Spark精讲】Spark内存管理
  • C语言实现Hoare版快速排序(递归版)