具体思路详见代码,注释较少请自行理解
84KB
#include<iostream>
#include<cstdio>
#include<windows.h>
#include<time.h>
#include<winuser.h>
#include<string>
#define die; player.reboth();map.reborn();goto out;
#define end_of_make; cout<<"继续合成请按1,退出请按2"<<endl;while(true){if(KEY_DOWN('1'))goto make;if(KEY_DOWN('2'))goto out;Sleep(100);}
#define enter cout<<endl
#define wait Sleep(1000);system("pause");cout<<endl
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
const int mapsize=25;
using namespace std;
void sprint(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(50);
}
}
void cprintf(char* str, int color){
HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(h,color);
cout<<str;
h=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(h,7);
/*
蓝色字体:1
绿色字体:2
红色字体:4
前景色高亮显示:8
蓝色背景:16
绿色背景:32
红色背景:64
背景色高亮显示:128
(加起来)
*/
}
class Bag{
private://变量
int level;
int wood,stone,cor,iron,irons,gold,golds,wire,hiron,dim,gem,apple,fish,goldapple,ex;
// 木头 石头 煤 铁 铁矿 金 金矿 铜 钢 钻石 宝石 苹果 鱼 金苹果
int levelsword,levelbow,levelpickaxe,levelaxe,levelarm;
int abilitysword,abilitybow,abilitypickaxe,abilityaxe,abilityarm;
public:
void print(void){
cout<<"背包容量为:"<<level<<endl;
cout<<"木头:"<<wood<<endl;
cout<<"石头:"<<stone<<endl;
cout<<"煤炭:"<<cor<<endl;
cout<<"铁:"<<iron<<endl;
cout<<"铁矿:"<<irons<<endl;
cout<<"金:"<<gold<<endl;
cout<<"金矿:"<<golds<<endl;
cout<<"铜:"<<wire<<endl;
cout<<"钢:"<<hiron<<endl;
cout<<"钻石:"<<dim<<endl;
cout<<"宝石:"<<gem<<endl;
cout<<"苹果:"<<apple<<endl;
cout<<"鱼:"<<fish<<endl;
cout<<"金苹果:"<<goldapple<<"个"<<endl;
cout<<"剑\t等级:"<<levelsword<<endl;
cout<<"弓\t等级:"<<levelbow<<endl;
cout<<"镐\t等级:"<<levelpickaxe<<endl;
cout<<"斧头\t等级:"<<levelaxe<<endl;
cout<<"护甲\t等级:"<<levelarm<<endl;
}
int getlevel(void){
return level;}
int getwood(void){
return wood;}
int getstone(void){
return stone;}
int getcor(void){
return cor;}
int getiron(void){
return iron;}
int getirons(void){
return irons;}
int getgold(void){
return gold;}
int getgolds(void){
return golds;}
int getwire(void){
return wire;}
int gethiron(void){
return hiron;}
int getdim(void){
return dim;}
int getgem(void){
return gem;}
int getapple(void){
return apple;}
int getfish(void){
return fish;}
int getgoldapple(void){
return goldapple;}
int getex(void){
return ex;}
int getlevelsword(void){
return levelsword;}
int getlevelbow(void){
return levelbow;}
int getlevelpickaxe(void){
return levelpickaxe;}
int getlevelaxe(void){
return levelaxe;}
int getlevelarm(void){
return levelarm;}
int getabilitysword(void){
return abilitysword;}
int getabilitybow(void){
return abilitybow;}
int getabilitypickaxe(void){
return abilitypickaxe;}
int getabilityaxe(void){
return abilityaxe;}
int getabilityarm(void){
return abilityarm;}
void clear(void){
wood=0,stone=0,cor=0,iron=0,irons=0,gold=0,golds=0,wire=0;
hiron=0,dim=0,gem=0,apple=0,fish=0,goldapple=0,ex=ex/10;
}
int uplevelbag(void){
switch(level){
case 25:
if(stone>=10) stone-=10;
else return -2;
level+=20;
return 2;
break;
case 45:
if(iron>=10) iron-=10;
else return -2;
level+=40;
return 3;
break;
case 85:
if(hiron>=10) hiron-=10;
else return -2;
level+=60;
return 4;
break;
case 145:
if(gem>=10) gem-=10;
else return -2;
level+=80;
return 5;
break;
default:
return -1;
}
}
int uplevelsword(void){
switch(levelsword){
case 1:
if(wood>=20) wood-=20;
else return -2;
levelsword=2;
abilitysword/=10;
return 2;
break;
case 2:
if(stone>=15) stone-=15;
else return -2;
levelsword=3;
abilitysword/=10;
return 3;
break;
case 3:
if(iron>=5) iron-=5;
else return -2;
levelsword=4;
abilitysword/=10;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
levelsword=5;
abilitysword/=10;
return 5;
break;
default:
return -1;
}
}
int uplevelbow(void){
switch(levelbow){
case 1:
if(wood>=20) wood-=20;
else return -2;
levelbow=2;
abilitybow/=10;
return 2;
break;
case 2:
if(stone>=15) stone-=15;
else return -2;
levelbow=3;
abilitybow/=10;
return 3;
break;
case 3:
if(iron>=5) iron-=5;
else return -2;
levelbow=4;
abilitybow/=10;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
levelbow=5;
abilitybow/=10;
return 5;
break;
default:
return -1;
}
}
int uplevelpickaxe(void){
switch(levelpickaxe){
case 1:
if(wood>=20) wood-=20;
else return -2;
levelpickaxe=2;
abilitypickaxe/=10;
return 2;
break;
case 2:
if(stone>=15) stone-=15;
else return -2;
levelpickaxe=3;
abilitypickaxe/=10;
return 3;
break;
case 3:
if(iron>=5) iron-=5;
else return -2;
levelpickaxe=4;
abilitypickaxe/=10;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
levelpickaxe=5;
abilitypickaxe/=10;
return 5;
break;
default:
return -1;
}
}
int uplevelaxe(void){
switch(levelaxe){
case 1:
if(wood>=20) wood-=20;
else return -2;
levelaxe=2;
abilityaxe/=10;
return 2;
break;
case 2:
if(stone>=15) stone-=15;
else return -2;
levelaxe=3;
abilityaxe/=10;
return 3;
break;
case 3:
if(iron>=5) iron-=5;
else return -2;
levelaxe=4;
abilityaxe/=10;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
levelaxe=5;
abilityaxe/=10;
return 5;
break;
default:
return -1;
}
}
int uplevelarm(void){
switch(levelarm){
case 1:
if(wood>=20) wood-=20;
else return -2;
levelarm=2;
abilityarm/=10;
return 2;
break;
case 2:
if(stone>=15) stone-=15;
else return -2;
levelarm=3;
abilityarm/=10;
return 3;
break;
case 3:
if(iron>=5) iron-=5;
else return -2;
levelarm=4;
abilityarm/=10;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
levelarm=5;
abilityarm/=10;
return 5;
break;
default:
return -1;
}
}
int upabilitysword(void){
switch(levelsword){
case 2:
if(hiron>=15) hiron-=15;
else return -2;
abilitysword=3;
abilitysword+=100;
return 3;
break;
case 3:
if(gold>=5) gold-=5;
else return -2;
abilitysword=4;
abilitysword+=100;
return 4;
break;
case 4:
if(dim>=5) dim-=5;
else return -2;
abilitysword=5;
abilitysword+=100;
return 5;
break;
default:
return -1;
}
}
int upabilitybow(void){
switch(levelbow){
case 2:
if(hiron>=30) hiron-=30;
else return -2;
abilitybow=3;
abilitybow+=100;
return 3;
break;
case 3:
if(gold>=10) gold-=10;
else return -2;
abilitybow=4;
abilitybow+=100;
return 4;
break;
case 4:
if(dim>=10) dim-=10;
else return -2;
abilitybow=5;
abilitybow+=100;
return 5;
break;
default:
return -1;
}
}
int upabilitypickaxe(void){
switch(levelpickaxe){
case 2:
if(hiron>=15) hiron-=15;
else return -2;
abilitypickaxe=3;
abilitypickaxe+=100;
return 3;
break;
case 3:
if(gold>=5) gold-=5;
else return -2;
abilitypickaxe=4;
abilitypickaxe+=100;
return 4;
break;
case 4:
if(dim>=5) dim-=5;
else return -2;
abilitypickaxe=5;
abilitypickaxe+=100;
return 5;
break;
default:
return -1;
}
}
int upabilityaxe(void){
switch(levelaxe){
case 2:
if(hiron>=10) hiron-=10;
else return -2;
abilityaxe=3;
abilityaxe+=100;
return 3;
break;
case 3:
if(gold>=5) gold-=5;
else return -2;
abilityaxe=4;
abilityaxe+=100;
return 4;
break;
case 4:
if(dim>=3) dim-=3;
else return -2;
abilityaxe=5;
abilityaxe+=100;
return 5;
break;
default:
return -1;
}
}
int upabilityarm(void){
switch(levelarm){
case 2:
if(hiron>=10) hiron-=10;
else return -2;
abilityarm=3;
abilityarm+=150;
return 3;
break;
case 3:
if(gold>=5) gold-=10;
else return -2;
abilityarm=4;
abilityarm+=150;
return 4;
break;
case 4:
if(dim>=3) dim-=5;
else return -2;
abilityarm=5;
abilityarm+=150;
return 5;
break;
default:
return -1;
}
}
bool useabilitysword(int nem){
if(levelsword==1) return true;
if(abilitysword>=nem){
abilitysword-=nem;
return true;
}
else
return false;
if(abilitysword==0&&levelsword>1) levelsword--;
}
bool useabilitybow(int nem){
if(levelbow==1) return true;
if(abilitybow>=nem){
abilitybow-=nem;
return true;
}
else
return false;
if(abilitybow

本文介绍了一个使用C++编程实现的简易二维Minecraft游戏,通过阅读代码和理解少量注释,读者可以了解游戏的基本构建过程。
最低0.47元/天 解锁文章
3684

被折叠的 条评论
为什么被折叠?



