C++实现RPG小游戏(彩色版)

这篇博客展示了如何使用C++语言开发一款具有彩色界面的角色扮演游戏(RPG)。通过代码实现,博主详细讲解了游戏的实现过程,包括游戏逻辑、用户交互和颜色渲染等方面。
摘要由CSDN通过智能技术生成

C++RPG小游戏 彩色版


这是一款RPG类型(角色扮演)小游戏,游戏是作者辛苦打出来的,代码不难,但很麻烦。游戏内无void,适合新手看一看,游戏内有一点bug,但并不影响游戏的体验,这个游戏是作者刚学编程不久做的,当时void什么的还不会用,所以代码会看起来有点笨拙,代码总共2400多行,如果觉得好的话可以一键三连哦!
-------------------------------------------------------分割君-----------------------------------------------------

#include<iostream>  
#include<conio.h>
#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>            
#include<string.h>
using namespace std;
int main()
{
   
    int o,j,p,n,sh=5,sm=40,dm=0;
    long long jb=0,bs=0,lj=0,sj=0,emzr=0,hyj=0,jssj=0,pgj=0,szj=0,hjj=0,zspf=0,hy=0,hfhzj=0,bd=1,ylb=1,zd=1,tnt=1;
    system("color 3F");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
    FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
    FOREGROUND_BLUE);
    Sleep(400);
    cout<<"  这";
    Sleep(400);
    
    
    cout<<"是";
    Sleep(400);
    cout<<"一";
    Sleep(400);
    cout<<"个";
    Sleep(400);
    cout<<"勇";
    Sleep(400);
    cout<<"者";
    Sleep(400);
    cout<<"的";
    Sleep(400);
    cout<<"世";
    Sleep(400);
    cout<<"界";      
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
    FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
    FOREGROUND_GREEN);
    Sleep(400);
    cout<<"  你";
    Sleep(400);
    cout<<"想";
    Sleep(400);
    cout<<"来";
    Sleep(400);
    cout<<"挑";
    Sleep(400);
    cout<<"战";
    Sleep(400);
    cout<<"一";
    Sleep(400);
    cout<<"下";
    Sleep(400);
    cout<<"吗";
    Sleep(400);
    cout<<"?            制作用时:5小时\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
    FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
    FOREGROUND_RED);
     Sleep(400);
    cout<<"  确";
    Sleep(400);
    cout<<"认";
    Sleep(400);
    cout<<"输";
    Sleep(400);
    cout<<"入";
    Sleep(400);
    cout<<"1,";
    Sleep(400);
    cout<<"否";
    Sleep(400);
    cout<<"则";
    Sleep(400);
    cout<<"输";
    Sleep(400);
    cout<<"入";
    Sleep(400); 
    cout<<"2";         
    cin>>o;   
	 if(o==2)
	{
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
        FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
        FOREGROUND_RED);
		cout<<"你不行啊!\n";
	}
    if(o==1)
    {
   
    	 zcd:
    	 for(;;)
    	 {
   
    	 		 	system("color 3F");
      	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
        FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
        cout<<"                                                                                                      \n";
	    cout<<"  ----------------*主菜单*----------------                          如果你是新手,请在主菜单输入‘5 ’\n";
	    cout<<"  |1.移动 2.查看背包 3.回血 4.战斗 5.其他|                          进入其他,在其他里输入数字‘2 ’  \n";
        cout<<"  --------------祝您玩的开心--------------                          进入游戏相关信息,了解游戏规则    \n"; 
        cout<<"                                                                                                      \n";
	    cin>>o;	
    
    
    
    
    
    
          if(o==1)
        {
   
        	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
        	goto yd;
       	}
       	
       	
       	
       	  if(o==2)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
		  	goto ckbb;
		}
		
		
		
		 if(o==3)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
		  	goto hx;
		}
		
			 if(o==4)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
		  	goto zd;
		}
		
			 if(o==5)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
		  	goto qt;
		}
		
		
         yd:
         			 system("color 3F");
        	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
            FOREGROUND_GREEN);
            cout<<"  -------------*请选择*-------------------------  \n";
	        cout<<"  |  1.铁匠铺  2.盔甲铺  3.技能店 4.返回主菜单 |  \n";
            cout<<"  -----------祝您玩的开心-----------------------  \n";
		    cin>>j;
		    
    
    
    
    
        if(j==1)
        {
   
        	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
        	goto tjp;
       	}
       	
       	if(j==2)
       	{
   
       		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
       		goto kjp;
		}
		
		if(j==3)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
			goto jnd;
		}
		
		if(j==4)
		{
   
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"\n电脑正在拼命加载中...\n\n\n";
            Sleep(1000);
			goto zcd;
		}
        
             tjp:
			 system("color 3F");
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
            FOREGROUND_BLUE);
            cout<<"  -------------*铁匠铺*-------------------------------------------------------------------------------------  \n";
	        cout<<"  |  1.匕首(50金币,+2伤害)2.利剑(80金币,+3伤害)3.圣剑(120金币,+5伤害)4.恶魔之刃(200金币,+7伤害) |  \n";
			cout<<"  |  5.火焰剑(300金币,+10伤害)6.绝世圣剑(500金币,+20伤害) 7.返回主菜单                                 |  \n";
		    cout<<"  ------------------------------祝您玩的开心----------------------------------------------------------------  \n";
		    cin>>p;
		    if(p==1)
          {
   
            if(jb>=50)
            {
   
            bs++;jb-=50;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了匕首,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
            goto zcd;
            
	      }
	       if(p==2)
          {
   
            if(jb>=80)
            {
   
            lj++;jb-=80;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了利剑,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==3)
          {
   
            if(jb>=120)
            {
   
            sj++;jb-=120;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了圣剑,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==4)
          {
   
            if(jb>=200)
            {
   
            emzr++;jb-=200;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了恶魔之刃,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==5)
          {
   
            if(jb>=300)
            {
   
            hyj++;jb-=300;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了火焰剑,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==6)
          {
   
	
            if(jb>=500)
            {
   
            jssj++;jb-=500;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了绝世圣剑,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
          }
	        if(p==7)
	        {
   
	        	goto zcd;
			}
	      
	      
	      
	      
	      
	         kjp:
			 system("color 3F");
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
            FOREGROUND_BLUE);
            cout<<"  -------------*盔甲铺*---------------------------------------------------------------------------------------------  \n";
	        cout<<"  |  1.皮革甲(50金币,+4防御)2.锁子甲(80金币,+6防御)3.黄金甲(120金币,+10防御)4.钻石披风(200金币,+14防御) |  \n";
			cout<<"  |  5.火焰甲(300金币,+20防御)6.火凤凰之甲(500金币,+40防御) 7.返回主菜单                                       |  \n";
		    cout<<"  ------------------------------祝您玩的开心------------------------------------------------------------------------  \n";
		
		    cin>>p;
		    if(p==1)
          {
   
            if(jb>=50)
            {
   
            pgj++;jb-=50;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了皮革甲,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==2)
          {
   
            if(jb>=80)
            {
   
            szj++;jb-=80;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了锁子甲,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==3)
          {
   
            if(jb>=120)
            {
   
            hjj++;jb-=120;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了黄金甲,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==4)
          {
   
            if(jb>=200)
            {
   
            zspf++;jb-=200;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了钻石披风,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==5)
          {
   
            if(jb>=300)
            {
   
            hy++;jb-=300;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了火焰甲,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	       if(p==6)
          {
   
            if(jb>=500)
            {
   
            hfhzj++;jb-=500;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN | BACKGROUND_BLUE| BACKGROUND_GREEN| BACKGROUND_RED);
            cout<<"您购买了火凤凰之甲,您现在有"<<jb<<"金币\n";
            }
            else
            {
   
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED);
            cout<<"您没有足够的金币\n";
            }
            Sleep(800);
             goto zcd;
             
	      }
	      if(p==7)
	      {
   
	      	goto zcd;
		  }
	    
	    
	    
	    
	    
	         jnd:
			 system("color 3F");
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
            FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |
            FOREGROUND_BLUE);
            cout<<"  -------------*技能店*------------------------  \n";
	        cout<<"  |1.绷带 2.医疗包 3.炸弹 4.手雷 5.返回主菜单 |  \n";
	        cout<<"  |150金币 250金币 200金币 300金币            |  \n"
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值