基于C++自制屠夫躲猫猫小游戏

 更新时间:2024年01月11日 09:51:10   作者:猿神派蒙  
这篇文章主要为大家详细介绍了如何基于C++自制屠夫躲猫猫小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

大家好,我是派蒙,我写了一个《屠夫躲猫猫》的游戏,下面是源代码:

#include <stdio.h>
#include <conio.h>
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string ID[1001];
string Name[1001],Key[1001];
int main(void){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
	cout<<"========================================================"<<endl<<endl<<endl;
	cout<<"                       屠夫躲猫猫"<<endl;
	cout<<"                  Butcher Hide And Seek"<<endl;
	Sleep(4000);
	ID[0]="VIP000";
	Name[0]="派蒙";
	Key[0]="MIHOYO";
	ID[1]="VIP001";
	Name[1]="纳西妲";
	Key[1]="MIHOYO";
	ID[2]="VIP002";
	Name[2]="芙宁娜";
	Key[2]="MIHOYO";
	ID[3]="SVIP666";
	Name[3]="原神";
	Key[3]="MIHOYO";
	int cnt=4;
	bool zt=1;
	long long I=100000;
	string n,m;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
	while(1){
		system("cls");
		bool K=0;
		zt=1;
		cout<<"========================================================"<<endl;
		cout<<"注册/登录"<<endl;
		cout<<"(本机注册的账户只能在本机中使用)"<<endl;
		if(zt==1){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xF0);
		}else if(zt==0){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
		}
		cout<<"1.没有账号,注册一个"<<endl;
		if(zt==0){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xF0);
		}else if(zt==1){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
		}
		cout<<"2.有账号,直接登录" <<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
		cout<<"(W/S选择,Y确定)"<<endl;
		int a=getch();
		system("cls");
		switch(a){
			case 'W':zt=1;
			case 'S':zt=0;
			case 'Y':if(zt==1){
				cout<<"========================================================"<<endl;
				cout<<"请输入用户名:"<<endl;
				cin>>Name[cnt];
				cout<<"请设置密码:"<<endl;
				cin>>Key[cnt];
				ID[cnt]=I;
				I++;
				cnt++;
				system("cls");
			}else if(zt==0){
				cout<<"========================================================"<<endl;
				cout<<"用户名/ID:";
				cin>>n;
				cout<<"密码:";
				cin>>m;
				int cnt1;
				for(int i=0;i<=cnt;i++){
					if(n==Name[i]&&m==Key[i]||n==ID[i]&&m==Key[i]){
						K=1;
						cnt1=i;
						break;
					}
				}
				if(K==1){
					system("cls");
					cout<<"========================================================"<<endl<<endl;
					cout<<"         抵制不良游戏,拒绝盗版游戏。"<<endl;
					cout<<"         注意自我保护,谨防受骗上当。"<<endl;
					cout<<"         适度游戏益脑,沉迷游戏伤身。"<<endl;
					cout<<"         合理安排时间,享受健康生活。"<<endl<<endl;
					cout<<"              初始化资源中..."<<endl;
					int n=20;
					cout<<"            _____________________"<<endl;
					cout<<"            ";
					while(n--){
						cout<<"█";
						Sleep(300);
					}
					
					while(1){
						system("cls");
						cout<<"========================================================"<<endl;
						cout<<"□"<<Name[cnt1]<<endl;
						cout<<"选择模式:(输入对应中文)"<<endl;
						string out="开始游戏";
						for(int i=0;i<=7;i+=2){
							cout<<out[i]<<out[i+1];
							Sleep(500);
						} 
						cout<<endl;
						out="退出登录";
						for(int i=0;i<=7;i+=2){
							cout<<out[i]<<out[i+1];
							Sleep(500);
						} 
						cout<<endl;
						out="修改资料";
						for(int i=0;i<=7;i+=2){
							cout<<out[i]<<out[i+1];
							Sleep(500);
						} 
						cout<<endl;
					while(1){
						string n;
						cin>>n;
						if(n=="开始游戏"){
							system("cls"); 
							cout<<"========================================================"<<endl;
							cout<<"请选择躲藏位置:(输入对应中文)"<<endl;
							cout<<"床底下/衣柜里/窗帘后/马桶里/桌底下/沙发底/沙发后/原地不动"<<endl;
							cin>>n;
							int Location; 
							if(n=="床底下"){
								 Location=0;
							}else if(n=="衣柜里"){
								 Location=1;
							}else if(n=="窗帘后"){
								 Location=2;
							}else if(n=="马桶里"){
								 Location=3;
							}else if(n=="桌底下"){
								 Location=4;
							}else if(n=="沙发底"){
								 Location=5;
							}else if(n=="沙发后"){
								 Location=6;
							}else if(n=="原地不动"){
								 Location=7;
							}
							bool died=0;
							
							for(int cnt=1;cnt<=6;cnt++){
								system("cls");
								cout<<"========================================================"<<endl;
								cout<<"第";
								Sleep(1000);
								SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x04);
								cout<<cnt;
								Sleep(1000);
								SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
								cout<<"回";
								Sleep(1000);
								cout<<"合"<<endl; 
								Sleep(2000);
								cout<<"嘘,屠夫来了。                         你的位置:";
								if(Location==0){
									cout<<"床底下\n";
								}else if(Location==1){
									cout<<"衣柜里\n";
								}else if(Location==2){
									cout<<"窗帘后\n";
								}else if(Location==3){
									cout<<"马桶里\n";
								}else if(Location==4){
									cout<<"桌底下\n";
								}else if(Location==5){
									cout<<"沙发底\n";
								}else if(Location==6){
									cout<<"沙发后\n";
								}
								Sleep(1000);
								if(Location==7){
									cout<<"由于你没有躲藏,你被屠夫发现了。你死了。";
									died=1;
									Sleep(4000);
									break; 
								}
								int go=rand()%6;
								if(go==Location){
									cout<<"你被屠夫抓到了,你死了。"<<endl;
									died=1;
									break;
									Sleep(4000);
									system("cls");
								}else{
									cout<<"屠夫看向了";
									if(go==0){
										cout<<"床底下";
									}else if(go==1){
										cout<<"衣柜里";
									}else if(go==2){
										cout<<"窗帘后";
									}else if(go==3){
										cout<<"马桶里";
									}else if(go==4){
										cout<<"桌底下";
									}else if(go==5){
										cout<<"沙发底";
									}else if(go==6){
										cout<<"沙发后";
									}
									Sleep(1000);
									cout<<",他抓住了一名玩家,一人被淘汰。";
									Sleep(3000); 
									system("cls");
								}
							}
							if(died==1){
								break;
							}else{
								system("cls");
								cout<<"======================================================="<<endl;
								cout<<"你存活到了最后,你赢了!";
								Sleep(3000);
								system("cls");
							}
							
						}else if(n=="退出登录"){
							cout<<"======================================================="<<endl<<endl;
							cout<<"                     正在退出……"<<endl;
							Sleep(5000);
							system("cls");
							break; 
						}else if(n=="修改资料"){
							cout<<"======================================================="<<endl<<endl;
							cout<<"请选择要修改的选项"<<endl;
							out="昵称";
							for(int i=0;i<=7;i+=2){
								cout<<out[i]<<out[i+1];
								Sleep(500);
							} 
							cout<<endl;
							out="密码";
							for(int i=0;i<=7;i+=2){
								cout<<out[i]<<out[i+1];
								Sleep(500);
							} 
							cout<<endl;
							cin>>n;
							if(n=="昵称"){
								system("cls");
								cout<<"======================================================="<<endl;
								cout<<"输入新昵称:";
								cin>>n;
								Name[cnt1]=n;
								system("cls");
								cout<<"======================================================="<<endl;
								cout<<"修改成功!"; 
							}else if(n=="密码"){
								system("cls");
								cout<<"======================================================="<<endl;
								cout<<"输入旧密码:";
								cin>>n;
								if(n==Key[cmt1]){
									system("cls");
									cout<<"======================================================="<<endl;
									cout<<"输入新密码"<<endl;
									cin>>n;
									Key[cnt1]=n;
									cout<<"修改成功!"<<endl;
								}else{
									system("cls");
									cout<<"======================================================="<<endl;
									cout<<"密码错误!"<<endl;
								}
							}
						}
					} 
					}//-
					return 0; 
				}else{
					cout<<"密码或用户名错误,请重新输入!!!"<<endl;
					Sleep(1000);
					system("cls");
				}
			}
		}
		
	}
}

到此这篇关于基于C++自制屠夫躲猫猫小游戏的文章就介绍到这了,更多相关C++小游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中的friend函数详细解析

    C++中的friend函数详细解析

    本篇文章主要介绍了C++中的friend函数详细解析,对初学c++的人有一定的帮助,有需要的可以了解一下。
    2016-11-11
  • 详解C语言中for循环与while循环的用法

    详解C语言中for循环与while循环的用法

    这篇文章主要通过几个示例为大家介绍一下C语言中for循环与while循环的用法以及二者的区别,文中的代码讲解详细,对我们学习C语言有一定帮助,需要的可以参考一下
    2022-07-07
  • C++ string字符串的使用和简单模拟实现

    C++ string字符串的使用和简单模拟实现

    C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数和字符串是分离的,本文给大家介绍了C++ string字符串的使用和简单模拟实现,感兴趣的朋友可以参考下
    2024-06-06
  • Opencv处理图像之轮廓提取

    Opencv处理图像之轮廓提取

    这篇文章主要为大家详细介绍了Opencv处理图像之轮廓提取,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 详解C++动态内存管理

    详解C++动态内存管理

    这篇文章主要为大家详细介绍了C++中动态内存管理相关资料,文中示例代码讲解详细,对我们学习C++具有一定帮助,感兴趣的小伙伴快跟随小编一起学习
    2023-05-05
  • Android App仿微信界面切换时Tab图标变色效果的制作方法

    Android App仿微信界面切换时Tab图标变色效果的制作方法

    这篇文章主要介绍了Android App仿微信界面切换时Tab图标变色效果的制作方法,重点讲解了图标的绘制技巧,需要的朋友可以参考下
    2016-04-04
  • C++基础入门教程(二):数据、变量、宏等

    C++基础入门教程(二):数据、变量、宏等

    这篇文章主要介绍了C++基础入门教程(二):数据、变量、宏等,本文讲解了变量初始化、宏定义、三种进制数的表示、const初探、auto声明等内容,需要的朋友可以参考下
    2014-11-11
  • 利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题

    利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问

    这篇文章主要介绍了利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突,本文给大家分享完美解决方案,需要的朋友可以参考下
    2023-03-03
  • C++使用extern实现源文件变量与类成员函数的巧妙共享

    C++使用extern实现源文件变量与类成员函数的巧妙共享

    C++中使用extern关键字可实现在源文件之间共享变量与类成员函数,通过声明变量或类在头文件中,再在一个源文件中定义,其他源文件通过extern引用,促使模块化、可维护的代码组织,这篇文章主要介绍了C++用extern实现源文件变量与类成员函数的巧妙共享,需要的朋友可以参考下
    2024-03-03
  • C语言中sizeof()与strlen()函数的使用入门及对比

    C语言中sizeof()与strlen()函数的使用入门及对比

    这篇文章主要介绍了C语言中sizeof()与strlen()函数的使用入门及对比,同时二者在C++中的使用情况也基本上同理,是需要的朋友可以参考下
    2015-12-12

最新评论