#include<iostream>
#include<iomanip>
#include<conio.h>
#include<windows.h>
#include<stdlib.h>
using namespace std;
short q,w,e,r; //回圈數
const short map_x=20,map_y=20; //地圖大小
char map[(map_x)][(map_y)]; //地圖
short map_xue[(map_x)][(map_y)]; //地圖血量
short x=2,y=2,X=2,Y=2;string fx; //坐標(真偽),方向
short dj=1;bool RWR=true;
short sh[100];short shs;//當前道具傷害(原本,后)
short sc[100];
string name[100]; //道具名稱
short kd=0; //鍵值
void jichu()//游戲基礎
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);//獲取控制臺游標資訊
CursorInfo.bVisible = false; //隱藏控制臺游標
SetConsoleCursorInfo(handle, &CursorInfo);//設定控制臺游標狀態
}
class map_work//地圖
{
public:
static void pd(); //判斷
static void shuchu();//輸出
static void chushi();//初始化
static void ZDY(); //自定義
public:
};
class kd_work//鍵盤
{
public:
static void panduan();//判斷
static void yidong();//移動
static void qita();//其他
};
class mx
{
public:
static void AR();//出現
static void DR();//消失
};
/
int main()
{
jichu();
map_work::chushi();
while(1)
{
kd_work::panduan();
map_work::shuchu();
}
}
///地/
///圖
void map_work::pd()
{
for(q=1;q<=map_x-1;q++)
{
for(w=1;w<=map_y-1;w++)
{
if(map_xue[q][w]<0)//負數歸零(生命為負數)
{
map_xue[q][w]=0;
}
if(map_xue[q][w]==0)//空氣(生命為0)
{
map[q][w]=' ';
}
if(map_xue[q][w]==100)//墻體
{
map[q][w]='#';
}
}
}
}
void map_work::shuchu()//輸出
{
map_work::pd();
system("color 00");//隱藏
mx::AR();
cout<<"當前坐標"<<X<<" "<<Y<<endl;
cout<<"當前血量"<<map_xue[X][Y]<<endl;
cout<<"當前傷害"<<shs<<endl;
cout<<fx<<sh[dj]<<endl;
for(q=1;q<=map_x;q++)
{
for(w=1;w<=map_y;w++)
{
cout<<map[q][w];
}
cout<<endl;
}
system("color 07");//顯示(完整)
Sleep(20);//等待(否則無法看清下方部分)
system("CLS");//清屏(到下一幀)
mx::DR();
}
void map_work::chushi()//圍墻
{
for(q=1;q<=map_y-1;q++){map[1][q]='#';map_xue[1][q]=100; map[map_x-1][q]='#';map_xue[map_x-1][q]=100;}
for(q=1;q<=map_x-1;q++){map[q][1]='#';map_xue[q][1]=100; map[q][map_y-1]='#';map_xue[q][map_y-1]=100;}
for(q=1;q<=map_x-1;q++){map_xue[q][w]=100; }
map_work::ZDY();
}
void map_work::ZDY()//自定義地形
{
map_xue[3][3]=100;map_xue[3][4]=100;map_xue[3][5]=100;
map_xue[4][3]=100;map_xue[4][4]=100;map_xue[4][5]=100;
map_xue[5][3]=100;map_xue[5][4]=100;map_xue[5][5]=100;
map_xue[6][3]=100;map_xue[6][4]=100;map_xue[6][5]=100;
map_xue[7][3]=100;map_xue[7][4]=100;map_xue[7][5]=100;
map_xue[8][3]=100;map_xue[8][4]=100;map_xue[8][5]=100;
map_xue[11][3]=100;map_xue[11][4]=100;map_xue[11][5]=100;
map_xue[12][3]=100;map_xue[12][4]=100;map_xue[12][5]=100;
map_xue[13][3]=100;map_xue[13][4]=100;map_xue[13][5]=100;
}
void kd_work::panduan()
{
if(_kbhit())
{
kd=getch();
if(kd==87){x--;fx="up"; }
if(kd==83){x++;fx="down"; }
if(kd==65){y--;fx="left"; }
if(kd==68){y++;fx="right";}
if(map[x][y]=='#')//有障礙
{
x=X;y=Y;//還原
}
if(map[x][y]!='#')//無障礙
{
X=x;Y=y;//更改
}
kd=0;
}
}
void mx::AR(){map[X][Y]='O';}
void mx::DR(){map[X][Y]=' ';}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291578.html
標籤:其他
上一篇:Unity 性能調優技術集錦
下一篇:掃雷小游戲用C語言簡單實作
