IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 萌新初中生第一次做c++小游戏 -> 正文阅读

[C++知识库]萌新初中生第一次做c++小游戏

皇室大乱斗0.1.0版本

可以重复面对“店”点击空格键来刷出“普通商店”,目前金币功能尚未完善。

体验版0.1.0版本(最新版)-> 点我


欢迎大佬们提提意见,蟹蟹啦


也可以在下面直接查看:

#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<ctime>
#include<windows.h>
#include<conio.h>
#pragma GCC opitmize(3)
using namespace std;

int ren_x=1,ren_y=1,q,fang,w,o,r,money=0,diamond=0;
int yaoping=0,cjdp=0;
int a1,a2;

void print();
void play();
void fight();

void GotoXY(int x, int y)  // 移动 
{
 HANDLE hout;  //屏幕尺寸 变量 
 COORD coord={x,y};  //光标坐标 变量  光标x标  光标y标 
 hout=GetStdHandle(STD_OUTPUT_HANDLE);  //获得屏幕尺寸 
 SetConsoleCursorPosition(hout,coord);  //移动光标 
}

void print(const char *a,int b)
{
    int s=strlen(a);
    for(int i=0;i<s;i++)
    {
        cout<<a[i];
        Sleep(b);
    }
}

int mapp[10][10]={
{1,1,1,1,1,1,1,1,1,1},
{1,0,4,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,4,0,0,0,2},
{1,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1},
};

void show_shop1(){
	while(1){
	system("cls");
    print("欢迎光临普通商店",80);
    cout<<"经营范围:游戏内药物与Buff"<<endl;
	cout<<"1.小药瓶  目前"<<yaoping<<"个"<<endl;
	cout<<"2.初级盾牌(可以抵挡50的伤害)  目前"<<cjdp<<"个"<<endl; 
	cout<<"3.退出"<<endl;
	q=getch();
	switch(q){
		case 49:{
			yaoping++;
			cout<<"购买成功"<<endl;
			break;
		}
		case 50:{
			cjdp++;
			cout<<"购买成功"<<endl;
			break;
		}
		case 51:{
			play();
			break;
		}
	}
}
}

void show_shop2(){
    print("正在更新中",80);
}

void show_shop3(){
    print("正在更新中",80);
}

void open_shop(){
    system("cls");
    srand((unsigned)time(NULL));
    o=rand()%3;
    if(o==0){
        print("欢迎光临普通商店",80);
        system("cls");
        show_shop1();
    }
    if(o==1){
        print("欢迎光临跟班商店",80);
        system("cls");
        show_shop2();
    }
    if(o==2){
        print("欢迎光临武器商店",80);
        system("cls");
        show_shop3();
    }
}

void print_map()
{
    system("cls");
    cout<<"按‘w’键向上走,按‘s’键向下走,按‘a’键向左走,按‘d’键向右走"<<endl<<"面向你预选的方格,然后按‘空格键’确定,按‘0’退出游戏,对着门按确定即可开始关卡"<<endl<<"商城共有3种:"<<endl<<"1.普通商店  2.宠物商店  3.武器商店 (随机生成)"<<endl<<endl;
    for(int i=1;i<=100;i++)
        cout<<'_'; 
    cout<<endl;
    for(int i=0;i<=9;i++)
    {
        for(int j=0;j<=9;j++)
        {
            if(i==ren_x && j==ren_y)
                printf("♂");
            else if(mapp[i][j]==0)
                printf("  ");
            else if(mapp[i][j]==1)
                printf("**");
            else if(mapp[i][j]==2)
                printf("门"); 
            else if(mapp[i][j]==3)
                printf("开");
            else if(mapp[i][j]==4)
                printf("店");
        }
        cout<<endl;
    }
    cout<<endl;
    for(int i=1;i<=100;i++)
        cout<<'_'; 
    cout<<endl;
    cout<<"目前面对的方向:";
    if(fang==1)
        cout<<"上↑";
    if(fang==2)
        cout<<"下↓";
    if(fang==3)
        cout<<"左←";
    if(fang==4)
        cout<<"右→"; 
    return;
}

void fight(){
	system("cls");
	cout<<"1.人机模式"<<endl;
	cout<<"2.挑战模式"<<endl;
	cout<<"3.剧情模式"<<endl;
	cout<<"4.返回"<<endl;
    q=getch();
	switch(q){
		case 49:{
			r=1;
			int bloodyou=1000;
			int bloodhe=1000;
			while(1){
				system("cls");
				if(bloodyou<=0){
					system("cls");
					print("你输了",80);
					play();
				}
				if(bloodhe<=0){
					system("cls");
					print("恭喜你,获胜了",80);
					cout<<"以下是你的奖励"<<endl;
					cout<<"1.金币*80"<<endl;
					cout<<"2.钻石*50"<<endl;
					cout<<"按任意键返回主界面"<<endl; 
					money+=80;
					diamond+=50;
					getch();
					play();
				}
				cout<<"第"<<r<<"回合"<<endl;
				cout<<"请问要使用额外物品吗?"<<endl<<"1用 2不用"<<endl;
				q=getch();
				switch(q){
					case 49:{
						cout<<"使用什么?"<<endl;
						if(yaoping>=1)
							cout<<"药瓶"<<endl;
						if(cjdp>=1) 
							cout<<"初级盾牌"<<endl;
						q=getch();
						switch(q){
							case 49:{
								a1++;
								break;
							}
							case 50:{
								a2++;
								break;
							}
						}
						break;
					}
				} 
				cout<<"敌人血量:"<<bloodhe<<endl;
				cout<<"你的血量:"<<bloodyou<<endl;
				Sleep(1000);
				cout<<"选择一个技能释放:"<<endl;
				cout<<"0.普通公鸡"<<endl;
				cout<<"1.治疗术"<<endl; 
				cout<<"2.元气弹"<<endl; 
				srand((unsigned)time(NULL));
    			o=rand()%3;
				q=getch();
				switch(q){
					case 48:{
						bloodhe-=100;
						cout<<"你平A了敌人1下,打掉了100滴血"<<endl; 
						Sleep(1000);
						break;
					}
					case 49:{
						bloodyou+=100;
						cout<<"你使用了治疗术回复了自己了100滴血"<<endl;
						Sleep(1000);
						break;
					}
					case 50:{
						bloodhe-=150;
						cout<<"你使用元气弹打掉了敌人150滴血"<<endl; 
						break;
					}
				}
				switch(o){
					case 0:{
						bloodyou-=50;
						cout<<"敌人平A了你1下,打掉了100滴血"<<endl;
						Sleep(1000);
						break;
					}
					case 1:{
						bloodhe+=100;
						cout<<"敌人使用了治疗术回复了自己了100滴血"<<endl;
						Sleep(1000);
						break;
					}
					case 2:{
						bloodyou-=150;
						cout<<"敌人使用元气弹打掉了你150滴血"<<endl; 
						break;
					}
				}
				if(a1==1){
					cout<<"你给自己治疗了50滴血"<<endl; 
					bloodyou+=50;
					a1--;
				}
				if(a2==1){
					cout<<"你用初级盾牌抵挡了敌人50的伤害"<<endl;
					bloodyou+=50;
					a2--; 
				}
				r++;
			}
		}
		case 52:{
			play();
			break;
		}
		default:{
			print("正在更新中",80);
			fight(); 
			break;
		}
	}
}

void play(){
print_map();
    while(1){
        q=getch();
        switch(q){
            case(32):{
                if(fang==1)
                {
                    if(mapp[ren_x-1][ren_y]==2)
                        fight();
                    if(mapp[ren_x-1][ren_y]==4)
                        open_shop();
                    break;
                }
                if(fang==2)
                {
                    if(mapp[ren_x+1][ren_y]==2)
                        fight();
                    if(mapp[ren_x+1][ren_y]==4)
                        open_shop();
                    break;
                }
                if(fang==4)
                {
                    if(mapp[ren_x][ren_y+1]==2)
                		fight(); 
                    if(mapp[ren_x][ren_y+1]==4)
                        open_shop();
                    break;
                }
                    if(fang==3)
                {
                    if(mapp[ren_x][ren_y-1]==2)
                    	fight();
                    if(mapp[ren_x][ren_y-1]==4)
                        open_shop();
                    break;
                }
                break;
            }
            case(119):{
                if(mapp[ren_x-1][ren_y]==0 || mapp[ren_x-1][ren_y]==3){
                    mapp[ren_x][ren_y]==0;
                    ren_x--;
                }
                fang=1;
                break;
            }
            case(115):{
                if(mapp[ren_x+1][ren_y]==0 || mapp[ren_x+1][ren_y]==3){
                    mapp[ren_x][ren_y]==0;
                    ren_x++;
                }
                fang=2;
                break;
            }
            case(97):{
                if(mapp[ren_x][ren_y-1]==0 || mapp[ren_x][ren_y-1]==3){
                    mapp[ren_x][ren_y]==0;
                    ren_y--;
                }
                fang=3;
                break;
            }
            case(100):{
                if(mapp[ren_x][ren_y+1]==0 || mapp[ren_x][ren_y+1]==3){
                    mapp[ren_x][ren_y]==0;
                    ren_y++;
                }
                fang=4;
                break;
            }
            case(48):
                return; 
            default:
                printf("没有此选项");
        }
        print_map();
    }
}

int main()
{
    print("请稍等,性能不好的电脑需要一点时间。",50);
    MessageBox( NULL , TEXT("请稍等,游戏正在拼命加载中") , NULL , MB_ICONINFORMATION|MB_YESNO);
    MessageBox( NULL , TEXT("性能不好的电脑加载会需要一点时间") , NULL , MB_ICONINFORMATION|MB_YESNO);
system("mode con cols=80 lines=25");
    cout<<'|';
 GotoXY(0,1);
 Sleep(1000);
 system("cls");
 int x=0;
 for (int i=1;i<=40;i++)
 {
  GotoXY(x,0);
  cout<<" ";
  x++;
  GotoXY(x,0);
  cout<<'|';
  Sleep(15);
 }
 int y=0;
 for (int i=1;i<=15;i++)
 {
  GotoXY(x,y);
  cout<<" ";
  y++;
  GotoXY(x,y);
  cout<<"|";
  Sleep(20);
 }
 GotoXY(x,y+1);
 for (int i=1;i<=6;i++)
 {
  GotoXY(x,y);
  if (i==1)
  {
   cout<<"L"; 
  }
  if (i==2)
  {
    GotoXY(x+2,y);
   cout<<"Y";
  }
  if (i==3)
  {
    GotoXY(x+4,y);
   cout<<"工作室";
  }
  else
  {
    GotoXY(x+6,y);
   cout<<"";
  }
  x++;
  Sleep(200);
 }
 system("cls");
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"///皇室大乱斗///";
    Sleep(2000);
    system("cls");
    cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"///LY工作室/";
    Sleep(2000);
    system("cls");
    cout<<endl<<"皇室大乱斗体验服"<<endl;
    cout<<endl<<"                                   健康游戏忠告:"<<endl<<"                         抵制不良游戏,拒绝盗版游戏。"<<endl<<"                         注意自我保护,谨防受骗上当。"<<endl<<"                         适度游戏益脑,沉迷游戏伤身。"<<endl<<"                         合理安排时间,享受健康生活。"<<endl<<endl;
    Sleep(2000);
    print("按任意键继续......",100); 
    getch();
    system("cls");
    cout<<endl<<"皇室大乱斗体验服"<<endl;
    cout<<endl<<"                     皇室大乱斗体验版v0.1.0"<<endl<<endl<<"           v0.1.0更新日志:"<<endl<<endl<<"           1.商店更新:普通商店新增1.药瓶(回复50滴血) 2.初级盾牌(抵挡50点伤害)"<<endl<<"           2.战斗升级:新增战斗模式:人机模式,与电脑斗智斗勇"<<endl<<"           3.新增技能:普通公鸡/治疗术/元气弹,伤害分别为:100/100(治疗血量)/150"<<endl;
    cout<<endl;
    print("正在加载,请稍后",80); 
    Sleep(4000);
    system("cls");
    cout<<endl<<"皇室大乱斗体验服"<<endl;
    cout<<endl<<"                     皇室大乱斗体验版v0.1.0"<<endl<<endl<<"           v0.1.0更新日志:"<<endl<<endl<<"           1.商店更新:普通商店新增1.药瓶(回复50滴血) 2.初级盾牌(抵挡50点伤害)"<<endl<<"           2.战斗升级:新增战斗模式:人机模式,与电脑斗智斗勇"<<endl<<"           3.新增技能:普通公鸡/治疗术/元气弹,伤害分别为:100/100(治疗血量)/150"<<endl;
    cout<<endl;
    print("按任意键开始游戏......",100); 
    getch(); 
    play();
} 
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:14:33  更:2021-08-10 13:16:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 17:38:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码