C++制作游戏(文字类选择游戏)

 最近闲来无事,便随手写了一点游戏代码,没想到写上瘾了。

对了 这是我的牛逼团队

以下为半成品代码运行:

#include<bits/stdc++.h>
#include<conio.h>
#include<Windows.h>
using namespace std;
int st[3],ba=1,mz=0,sl=0;
string bag[11];

void slp(float a){
	float secs;
	secs=a;
	clock_t delay = secs * CLOCKS_PER_SEC;
	clock_t start = clock();
	while (clock() - start < delay);//以上内容为等待时间;
	 
}
void sd(string s)
{
    for(int i=0;i<s.size();i++)
    {
    	cout<<s[i];
    	slp(0.05);
    } 
    cout<<endl;
}
void bl(){
	cout<<"生命值:"<<st[1]<<endl;
	cout<<"体力值;"<<st[2]<<endl;
}
void bg(){
	for(int i=1;i<=10;i++)
	{
		cout<<i<<"号位:"<<bag[i]<<endl; 
	}
}
int bc(string s){
	for(int i=1;i<=10;i++)
	{
		if(bag[i]==s)
		return 1; 
	}
	return 0;
}
void zhz(){
	sd("本游戏共有N种结局");
	sd("制作者:班卓熙");
	sd("版本:1.0测试版");
	sd("洛谷号:banzhuoxi");
	sd("团队:游戏快乐团");
	slp(2);
}
int sm(){
	if(st[1]<1){
				sd("由于你没有生命体征了,你噶了");
	     		slp(1);
		 	    sd("达成Bad结局:英勇牺牲");	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
            	return 1;
	   	 }
	   	 return 0;
}
int tl(){
	if(st[2]<1)
	{
		sd("你太累了,感到有些晕");
		st[2]+=20; 
		st[1]-=10;
		if(st[1]<1){
				cout<<"由于你没有生命体征了,你噶了"<<endl;
	     		slp(1);
		 		cout<<"达成Bad结局:累洗了"<<endl;	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
            	return 1;
	   	}
	}
	return 0;
}
int main(){
    //system("color f3");此为调整颜色 
    //0 = 黑色       8 = 灰色
    //1 = 蓝色       9 = 淡蓝色
    //2 = 绿色       A = 淡绿色
    //3 = 浅绿色     B = 淡浅绿色
    //4 = 红色       C = 淡红色
    //5 = 紫色       D = 淡紫色
    //6 = 黄色       E = 淡黄色
    //7 = 白色       F = 亮白色
    
    //void texiao()
	//{
    //	for(int i=1; i<=10; i++)
    	//{
        	//system("color 2f");
        	//slp(0.01);
        	//system("color 0f");
        	//slp(0.01);
    	//}
 	//}
    //以上为特效;
	 
    //float secs;
	//secs=1;
	//clock_t delay = secs * CLOCKS_PER_SEC;
	//clock_t start = clock();
	//while (clock() - start < delay);//以上内容为等待时间;
	 
    //system("cls");//此为清除 
    
    //switch () {
    //        case 1:
    //            
    //       case 2:
    //            
    //        case 3:
    //       
    //       default:
    //           
    //}
    st[1]=100;//生命值 最高100 
    st[2]=20;//体力值 最高50
    int op;
    string s="<<<<<<末日求生1>>>>>>";
    sd(s); 
    cout<<"     1.开始游戏"<<endl; 
    cout<<"     2.退出游戏"<<endl; 
    cout<<" 请输入:";
    cin>>op;
    if(op==1)
	cout<<"     正在进入中"; 
	else
	return 0;
    cout<<endl;
    cout<<'<';
    for(int i=1;i<=30;i++){
    	cout<<'-';
    	slp(0.05);
    }
    cout<<'>'<<endl;
    slp(2);
    system("color 70");
    system("cls");
    s="在一段挣扎过后,你醒了";
    sd(s);
	slp(1);
	cout<<"你发现你正身处在一间屋子里"<<endl;
	cout<<"屋子里有一张床"<<endl; 
	slp(1);
	cout<<"你要(1.搜寻房间 2.出去走走 3.睡觉 4.检查身体)"<<endl;
	cout<<"请输入:";
	cin>>op;
	if(op==1)
	{
		cout<<"你获得了一把斧子";
		bag[ba]="斧子";
		ba++;
		cout<<endl;
		cout<<"以下为背包内物品"<<endl; 
		bg();
	}
	else if(op==2)
	{
		 cout<<"你走出了门,忽然一阵阴气把你吞没,你洗了"<<endl;
		 cout<<"达成Bad结局:啥也没干"<<endl;
		 cout<<"游戏结束"<<endl;
		 slp(2);
		 system("cls");  
		 zhz(); 
		 return 0;
	}
	else if(op==3)
	{
		 s="一觉醒来,你感觉舒服了许多";
		 sd(s);
		 st[2]=st[2]+10;
	}
	else
	{
	    bl(); 
	}
	slp(2);
	system("cls"); 
	s="你忽然感到门外传来奇怪的声音"; 
	sd(s); 
	s="一只兽型生物跑了进来"; 
	sd(s);
	cout<<"你要";
	s="(1.应战 2.逃跑 3.躲藏)";
	sd(s);
	cin>>op; 
	if(op==1)
	{
	   if(bc("斧子")==1)
	   {
	   	 s="你用斧头击败了怪物"; 
	   	 sd(s);
	   	 s="但你也受伤了"; 
	   	 sd(s);
	   	 st[1]-=10;
	   	 if(st[1]<0){
	   	 	cout<<"由于你没有生命体征了,你噶了"<<endl;
	     	slp(1);
		 	cout<<"达成Bad结局:英勇牺牲"<<endl;	 
		 	cout<<"游戏结束"<<endl;
		 	slp(1); 
		 	system("cls");  
		 	zhz();
             return 0;
	   	 }
	   }
	   else
	   {
         s="由于你没有武器,受到了很重的伤";
          sd(s);
	   	 st[1]-=50;
	   	 if(st[1]<0){
	   	 	cout<<"由于你没有生命体征了,你噶了"<<endl;
	     	slp(1);
		 	cout<<"达成Bad结局:英勇牺牲"<<endl;	 
		 	cout<<"游戏结束"<<endl;
		 	slp(1); 
		 	system("cls");  
		 	zhz();
             return 0; 
	   	 }
	   }
	}
	else if(op==2)
	{
		 system("cls"); 
		 s="你离开了这间屋子";
		 sd(s);
		 s="外面全都是姜丝";
		 sd(s); 
		 s="请选择(1.回去 2.杀出去[会受到大量伤害,但有可能获得稀有物品])";
		 sd(s);
		 cin>>op;
		 if(op==1) 
		 sd("你回到了屋子里");
		 else 
		 {
		 	if(bc("斧子")==1)
	   		{
	   	 		s="你用斧头击败了许多姜丝"; 
	   	 		sd(s);
	   	 		s="但你也受伤了"; 
	   	 		sd(s);
	   	 		st[1]-=30;
	   	 		if(st[1]<0){
	   	 		cout<<"由于你没有生命体征了,你噶了"<<endl;
	     		slp(1);
		 		cout<<"达成Bad结局:英勇牺牲"<<endl;	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
             	return 0;
	   	 		}
			    sd("你找到了医疗包!!");
				sd("恢复了一些生命");
				st[1]+=20; 
	   		}
	   		else
	   		{
         		s="由于你没有武器,受到了很重的伤";
          		sd(s);
	   	 		st[1]-=60;
	   	 		if(st[1]<0){
	   	 		cout<<"由于你没有生命体征了,你噶了"<<endl;
	     		slp(1);
		 		cout<<"达成Bad结局:英勇牺牲"<<endl;	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
             	return 0; 
	   	 		}
			    sd("你找到了医疗包!!");
				sd("恢复了一些生命");
				st[1]+=20; 
	   		}
	   		sd("你发现外面很危险 请选择 1.回去 2.不回");
			cin>>op;
			if(op==2)
			{
				cout<<"你噶了"<<endl;
	     		slp(1);
		 		cout<<"达成Bad结局:找死"<<endl;	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
             	return 0; 
			} 
		  }
	}
	else 
	{
		 system("cls"); 
		 s="你躲了起来";
		 sd(s);
		 s="怪物走了";
		 sd(s); 
	}
	sd("此时,房间你已没有任何生物");
	sd("你发现房间里有一个箱子");
	sd("请选择:1.打开 2.不打开");
	cin>>op;
	if(op==1)
	{
		if(st[2]>=25)
		{
			sd("你费了好大劲才打开箱子");
			sd("你获得了血清!");
			bag[ba]="血清";
			ba++; 
		}
		else
		{
			sd("你因为太累,没有打开箱子");
		}
	} 
	sd("你从窗户看到外面有一座商场");
	sd("现在,你要 1.随便逛逛 2.待在这里 3去商场");
	cin>>op;
	if(op==1)
	{
		sd("你遇到了许多姜丝"); 
		if(bc("斧子")==1)
	   {
	   	 s="你用斧头击败了怪物"; 
	   	 sd(s);
	   	 s="但你也受伤了"; 
	   	 sd(s);
	   	 st[1]-=10;
	   	 if(sm()==1)
			return 0; 
	   }
	   else
	   {
         s="由于你没有武器,受到了很重的伤";
          sd(s);
	   	 st[1]-=50;
	   	 if(sm()==1)
			return 0;
	   }
	} 
	else if(op==2){
		sd("你在这里待了很久,这时你妈喊你去吃饭,你赶忙放下了VR眼镜");
		sd("达成结局:游戏世界");
		cout<<"游戏结束"<<endl;
		slp(1); 
		system("cls");  
		zhz();
        return 0;
	} 
	system("cls");
	sd("你没地方去,只能去商场");
	sd("去商场的路上,你遇见一个妹子");
	sd("她向你要血清 请选择1.不给 ");
	if(bc("血清")==1)
	sd("2.给 "); 
	if(bc("斧子")==1)
	sd("3.给他一斧子");
	cin>>op;
	if(op==1)
	{
		sd("那位妹子生气地走了");
	}
	else if(op==2)
	{
		 sd("那位妹子很开心,说可以和你一起走");
		 mz=1; 
	}
	else
	{
		sd("你杀了她,从她身上找到一些食物,恢复了一些体力"); 
		st[2]+=10; 
	}
	slp(1);
	system("cls");
	sd("一路上长途跋涉,消耗了一些体力");
	st[2]-=15;
	if(st[2]<1)
	{
		sd("你太累了,感到有些晕");
		st[2]+=20; 
		st[1]-=10;
		if(st[1]<1){
				cout<<"由于你没有生命体征了,你噶了"<<endl;
	     		slp(1);
		 		cout<<"达成Bad结局:累洗了"<<endl;	 
		 		cout<<"游戏结束"<<endl;
		 		slp(1); 
		 		system("cls");  
		 		zhz();
            	return 0;
	   	}
		
	}
	slp(0.5);
    cout<<"你";
	if(mz==1)
	cout<<"们"; 
	sd("来到了商场");
	sd("请选择");
	sd("1.独自探索1楼"); 
	sd("2.独自探索2楼"); 
	if(mz==1)
	{
		sd("3.和妹子探索2楼"); 
	} 
	cin>>op; 
	if(op==1)
	{
		sd("你找到了一些食物");
		sd("恢复了一些体力");
		st[2]+=10; 
	} 
	else if(op==2){
		sd("你遇到了许多姜丝"); 
		if(bc("斧子")==1)
	    {
	   	 s="你用斧头击败了怪物"; 
	   	 sd(s);
	   	 s="但你也受伤了"; 
	   	 sd(s);
	   	 st[1]-=20;
	   	 if(sm()==1)
			return 0; 
	    }
	    else
	    {
         s="由于你没有武器,受到了很重的伤";
          sd(s);
	   	 st[1]-=60;
	   	 if(sm()==1)
			return 0;
	    }
	    sd("你找到了大量食物");
		sd("恢复了许多体力");
		st[2]+=30; 
	}
	else
	{
		sd("你们遇到了许多姜丝"); 
		if(bc("斧子")==1)
	    {
	   	 s="你们用斧头击败了怪物"; 
	   	 sd(s);
	   	 s="但你也受伤了"; 
	   	 sd(s);
	   	 st[1]-=10;
	   	 if(sm()==1)
			return 0; 
	    }
	    else
	    {
         s="由于你没有武器,受到了很重的伤";
          sd(s);
	   	 st[1]-=40;
	   	 if(sm()==1)
			return 0;
	    }
	    sd("你找到了一捆绷带");
		sd("恢复了一些生命");
		st[1]+=30; 
	} 
    return 0;
}


 

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运行的通用环境:Win9x/NT/2000/XP +ACCESS数据库 第一章 窗口的动画效果 带有工具栏的对话框 单文档启动界面 实现全屏显示 实现透明窗体 为对话框程序制作真彩色启动界面 为对话框添加右键菜单 为应用程序添加多语言菜单 隐藏应用程序在任务栏上的显示 在窗口中使用多个视图 动态切分窗口 第二章 捕获鼠标绘图 捕捉屏幕图像 获取屏幕上颜色 界面上实现3D文字 列举当前系统的字体 判知BMP图片的大小 图片的伸缩显示 显示资源位图 游览大图 第三章 CArray的应用 CListCtrl 控件的应用 IP Address控件编辑IP地址 Slider控件的应用 动态创建文本框控件 改变控件的字体颜色 用CColorDialog选择颜色 用CFileDialog选择文件 用静态标签控件显示当前时间 字符串的查找和提取 第四章 ActiveX连接数据库 ADO控制Access数据库 基于单文档的数据库浏览 用DAO在数据库中执行SQL语句 在程序中创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器 第六章 获取网卡地址 自动升级程序 获得主机名和IP地址 端口扫描程序 在IE工具栏中加入快捷图标 简单浏览器开发 FTP客户端开发 一种简单的proxy程序 聊天室客户端程序开发 聊天室服务器端开发 第七章 报表与打印演示 程序互斥运行 定时关机 读写INI文件 删除目录及子目录文件 文件查找 文件分割 文件加密 文件浏览器 用树型控件列出文件夹 第八章 cdrom控制 cpu和mouse信息 USB编程 测试cpu速度 检测键盘按键 列出进程 鼠标钩子编程 系统信息获取 注册表编程 第九章 CHM COM编程获取表单域信息 SMTP客户端程序 五子棋游戏 学生成绩管理系统
学OpenGL编3D游戏(含全部源程序)讲述3D游戏的编写方法。 《学OpenGL编3D游戏》重在游戏的实现方案。全书以一个完整(基本)的3D游戏为主线,采用循序渐进的方法,从建立OpenGL图形环境入手,讲解3D基本图形、构图原理;从引入摄像机,建立天空、山地、树木,到3D模型使用和3D动画模型的显示。用鱼骨方式讲解相关知识技术,完整地展示了3D游戏的编写过程。● 特点 重在游戏的基本实现方法 搭建一个基本功能的游戏环境 最新的外部功能模块的使用● 提供《学OpenGL编3D游戏》的教学演示课件 《学OpenGL编3D游戏》的教学课件。用多媒体的表现手法将学习过程完全显示在你面前,使用者可以随时查看所选章节的知识要点提示,可以观看程序的制作过程和效果,也可以马上进入到VC编辑器对范例程序修修改改,在实践中加深对知识的理解;还可以进入到网上论坛和朋友们讨论学习心得。● 内容提要第1 章 OpenGL的程序框架__Windows、OpenGL程序框架的建立。第2 章 OpenGL的基本图形__在OpenGL图形界面上作一些简单的图形。第3 章 OpenGL的组合图形__用简单图形来构成两个复杂一点的3D模型。第4 章 摄像漫游__________有了摄像机你就可以在OpenGL场景中自由地漫游了。第5 章 开天辟地__________在OpenGL场景中有了天空、大地、景物。第6 章 OpenGL中显示文字__介绍了OpenGL中文字的几种显示方式。第7 章 特殊的平面_树_____栽些树种些草,让这个OpenGL世界充满生机。第8 章 显示3D模型________在OpenGL场景中显示3DS格式的模型。第9 章 使用MD2动画模型___OpenGL场景中出现了活生生的人(3D动画模型)。第10 章 使用MDL动画模型__介绍一种更先进的动画模型—3D骨骼动画。第11章 射击、爆炸________逼真的爆炸效果,是用程序仿真爆炸的物理过程。第12章 碰撞检测__________加入碰撞检测后,游戏才有真实的感觉。第13章 游戏进度保存______场景(或进度)保存和调入是游戏必不可少的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值