勇闯迷塔小游戏(c++) 3.17更新
游戏背景:
在古老的传说中,有一座五层妖塔,塔中住着魔王和他手下的妖精们。
一日,妖塔中的魔术师决定举办一次祭祀活动,以增强魔王的法力。他们抓来了一个可怜的流浪商人,关在第四层的一个房间里,他被魔术师施了魔法(魔化了),准备拿来当作祭品。
国王听说此事后,派出了一位勇士(就是你),来到了妖塔下面,你的任务是干掉魔王,为国家除害。当然,你不是空手去的,你随身携带一本怪物书(monster_book),每次杀掉怪物之后,你都会获取与怪物相关的数据。在妖塔中,有很多妖怪散落的装备或者药水可以供你使用,还有一些商店(奸商)给你提供商品。
...好了,你自己玩吧...
更新背景:
图腾符文的坐标出了点问题,导致游玩过程中可能崩溃,刚修复...
------------------------------------------------丑不拉叽的分割线---------------------------------------------------------
#include<algorithm>
#include<cmath>
#include<stdio.h>
#include<iostream>
#include<string>
#include<cstring>
#include<windows.h>
#include<conio.h>
#include<cstdlib>
#include<ctime>
#include<fstream>
using namespace std;
#define BNUM 17
#define TOWER 5
#define COLS 40
#define LINES 100
#define RUNE 22
struct BLOCKS
{string name;int hp;int attack;int defence;bool go;bool monster;int xp;int number;
};
struct PLAYER
{string name;int hp;int attack;int defence;int tower;int x;int y;int xp;int level;int money;
};
unsigned long long uplevel[]={0,10,25,40,60,80,150,300,400,650,800,950,1100,1200,1500,1800,2000,3100,5000,6500,7900,8900,9700,10000,12000,14000,15860,17738,18939,20039,21950,25910,27830,29382,31829,33849,35939,36788,38193,41829,43829,45888,47361,49382,51853,54830};
BLOCKS map[BNUM][COLS][LINES];
string runec[RUNE]=
{
"魔王在进行一种祭祀仪式(最高机密,不可泄漏),只要集齐了日月的阴阳之力(眼熟吧),就可以召唤^&*!%!%@(字迹不清)",
"吼...",
"妖怪们最喜欢在一层的这个右侧房间玩耍了,因为有卫兵和骑士把守,十分安全...",
"传说中的储物间中,存放着妖精们的武器和神秘药水,不知有何作用...",
"真是个奇怪的骑士,还带着假面,还是不要惹他为好...",
"长满了青苔和杂草的楼梯间,上面还传来了不明的低吼声...",
"魔法师在这里布下重重迷阵,并制造了许多分身,防止有人破坏了祭祀仪式...\n",
"只有通过了迷阵,才能找到下一个楼梯间...\n",
"无数的怪物在里面防守着,可见内部可能藏着什么东西...\n",
"魔王允许一个人类在这里开设商店,并且高价卖破烂,就是为了坑钱...\n",
"迷宫,又是迷宫...\n",
"魔法师:&*#$^!...(消失不见)...\n",
"魔王将魔兽与人类生下的孩子在这里培养,这些孩子长得歪瓜裂枣(很丑),但好像很喜欢打架...\n",
"伪装的魔王在这里等待着客人的来临...\n",
"别想着走捷径,傻瓜...\n",
"传说中的英文字母表(不会的请回幼儿园重读),不过好像并没有那么简单呢...\n",
"一块石碑: 旅行者的血肉,魔术师的魔法,还有被感染的人类,可以召唤 (只有聪明的人才能看见那些东西)...\n",
"只要干掉魔王,就能终止祭祀仪式, 就不会出现...\n",
"阴之月符文: $&^%!!# 聚集月的阴之力...\n",
"阴之日符文:#%^&!$! 聚集日的阴之力...\n",
"阳之日符文:!$!&^%# 聚集日的阳之力...\n",
"阳之月符文:#!!%^&$ 聚集月的阳之力...\n",
};
int rtower[RUNE]={0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,3,4,4,4,4,4,4};
int rposx[RUNE]={2,17,7,4,31,37,1,9,31,1,2,38,2,33,39,2,1,1,16,19,19,22};
int rposy[RUNE]={1,1,3,9,59,97,1,10,1,22,42,97,2,98,92,2,2,3,37,34,40,37};bool DidFile=false;
bool monster_[BNUM]={0};
string sympol=" #shjlmdbzaSftg@";
string Name[BNUM]={"空地","墙","卫兵","骑士","假面骑士","小丑","魔术师","商店","流浪商人_魔化","治疗药水","战斧","盾牌","魔王_假","魔王_真","小鬼","符文"};
int Hp[BNUM]= {0,0,100,200,800,1500,1800,0,1200,0,0,0,3000,6000,500,0};
int Attack[BNUM]= {0,0, 30, 50,220,200, 570,0,400,0,0,0,600,1000,130,0};
int Defence[BNUM]={0,0, 10, 20, 80,120, 220,0,150,0,0,0,350,500,35,0};
bool Go[BNUM]= {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
bool monster[BNUM]={0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0};
int Xp[BNUM]={2,0,10,30,60,100,150,0,100,0,0,0,5000,20000,300,10};
PLAYER player;
int sudu=5;
unsigned long long Time,now;
char MAP[TOWER][40][102]=
{{"# ##################################################################################################","# ## s s #z #a #a # #","#@s# a # # h # # # # #","#z ########hh#########s######s#####h##### a #","# # @ # #","# # ##h## ######################## a S S a #","# # #h# #h# #zzs # z #","# s@ # # ### # a S S a #","# #### ##### # # # # #","# #ah # # # # a #","# #hh # # # # #","# ## l lg # # # # #","# # mgm # ### ## ##### hh #","# # g l # # # # # hhhh #","# # # # # # # #############################hh###############","# # # # ########## # # #","# # # # ######### ## # #","#@# ## ##s# # # # # #","#f## ## # #jh# # # # # ## # #","#f # # # #### # # # # # # # #","# ######ss######## # # # # # # # # # #","# hh ## ## # ## # # # # # #","# # ## # # # # #","# # # # # # # # #","# # ##### #### # ## # #","# # # # ## # #","# ####### # # # #","###################################################### # #","# # #","# # #","#################### ######################################h######################## ###############","# # @ j # #","# ####### ##### # # # #","# # # # # # #","# # # # # # #","# # # # # #","# # # # # # # #","# # # # # # # @j#","# ######## #### ####### # # j #","####################################################################################################",},{"# ##################################################################################################","#@# jSaz# # dj @ # #","# # ###### # # # @ #","#h # hs # #### #### ## ##### # #### ###### ####### #","#z# ##################### # # # # # # # # # # # ## # #","#a# z z # # # # # # ##### #### # ###### #","# # z ###hs### l hh h # # # # # # ## # # ## # #","# # z z # sh # l hh # ##################################################### #","# # # # # # # # # # # # ## ## #","##########@######################### # ### # # # # # ## # ### # # #","# ## # #z # # # # ######################## ## # # # # # #","## # #z######### ## # # # # ## # #### ## ## # # # # #","# ##### # # # # l # # # ## # # # # # ## # # #","#z j # #z# # S # # # ## # # # #### ## # # # #","# # z # # ####### # # # ### # m# ## # # ## ##### #","# # # #z#z # ## # # # # ###### ## ###### ## # # # # # # # # #","# ##### # ####### #zz############## # # # # # # ## ## ## # # # #","# z ## #z ## # # # ###### # # ##m #### # # ## # # # #","# z# #z ##########z h# S j j# # # f ## # # # # # #","# z# ## # # ## # # # # # # # #","# # # ################# S # # # #### #### # # # # #","# # z # # # # # # # # #","#########z ############ # # # #### ### # #","# z # # z ############## # # # # # #","# z h h z # jj j# # #### #### # #","#################### ## a # # # # #","# z h zzzz h z # # # # # ##### # #","## ####################a S a # # # # # # # #","# zh aaaaaa hz # # # ### # # ##### # #","#################### ## # # # # # # # #","# hz SSSSSSSS zh # a a # # # # ##### f #","#@#################################### ############## ######################## ####################","#shjjjzsjshjjjjjjhsjsslfjfjjjshljsh #### # #### #### ##### zzzzzzzz #","#sajjjzazjjzSshsajsssh######## ### ###### # # # # # zaaaaaaz #","#hzzsjsjzsjSjsjhjzjjjjshshhhslshhsh #a# # #### ### ##### zSSSSSSz #","#sjzsSzSzsSjjhsahhhhSh######## ### ####a# # # # # # zzzzzzzz #","#sjjsssSzajjjsSjjjsshj#sszhzjahhsms #a# # #### #### ##### #","#hjhzjassssssjssssshjj###########################################################################m##","#jjhsjssjjhsssssjjsssajjjljjjjjjjjj @ #","####################################################################################################",},{"####################################################################################################","# # #","##@g g g g ggggggggggg #","#gg##g#g#g#g#g#######g##########################g###############g################################ #","# g g g g g #","#gg##g#g#g#g#g#########g######################g#################g################################ #","# g g g g g #","#gg##g#g#g#g#g###########g##################g###################g################################ #","# g g g g g #","#gg##g#g#g#g#g#############g##############g#####################g################################ #","# g g g g g #","#gg##g#g#g#g#g###############g##########g#######################g################################ #","# g g g g g #","#gg##g#g#g#g#g#################g######g#########################g##########gggggggggg############ #","# g g g g g #","#gg##g#g#g#g#g###################g##g###########################g################################ #","# g g gg g #","#gg##g#g#g#g#g####################gg############################g##########gggggggggg############ #","# g g g g g #","#gg##g#g#g#g#g##################g####g##########################g################################ #","# g g g g g #","#gg##g#g#g#g#g################g########g########################g################################ #","# g g g g g #","#jj##g#g#g#g#g##############g############g######################g################################ #","# g g g g g #","#jj##g#g#g#g#g############g################g####################g################################ #","# g g g g g #","#jj##g#g#g#g#g##########g####################g##################g################################ #","# g g g g g #","#gg##g#g#g#g#g########g########################g################g################################ #","# g g g g g #","#gg##g#g#g#g#g######g############################g##############g################################ #","# g # z aaaaaa s a @#","## # # zzzzzzz a a a sa zzz#","# # # z z z a aa a zs zzz#","## ##z zzz z aaaa z s #z#","# # # z aaaaa #z#","# # ###########################################################################################f#","# # @mlfff #","####################################################################################################",},{"####################################################################################################","# j a # # # # #","#j@ a a # bggg # zzz # mmmm # #","# a a # g g # z z # l m # jjjjjj #","# aaaaaaa g gggg g z # l m # j #","# a a # g g # z z l l d m l jjjjj #","# a a # g g # zzzz # l m # j #","# # ggggg # # l m # j #","# # # # mmmmm # jjjjjjj #","# # # # # #","##########################################################################################l#########","# # # # # #","# # # # # #","# # # jjjjjj # # # # # ######## #","# # # j # # # # gggggg # # #","# # # j # # # # g g # # #","# # # # j # ###### # # g # # #","# # # j # # # # j g gggggg g ###### #","# ### # j j # # # # # g g # # #","# # # # jj # # # # # g g # # #","# # # # # # # # # # ggggggg # # #","# # # # # # # #","# # # # # #","###### #############################################################################################","# # # # # #","# l # # # # # jj # ##### #","# l # # ## # # j j # # # #","# l # # # # # # j j # ##### #","# l # # # # # j j # #","# l # # # # # # j j # # #","# l l # # # ## # jjj # # #","# llllllll # # # # # # #","# # # # # #","######## ################# ##################### ##################### ################### #########","# # # #m## # zzzz # lll #","# g g # ##### # # # z z # l l #","# g g # # # # zzz # l ll #","# g g # # # #### # z z # llll #","# ggg g # # # # # # # l #","####################################################################################################",},{"####################################################################################################","# @@ m # ##","### mmm # # #","# # # # # # # #","# # # # # # #","# # # # # # # #","# # # # # # #","# # # # # # # #","# # #a a# # # #","# # # aa aa # # # # #","# # # aaa aaaa aaa # # # #","# # # aaaa # # # # #","# # # aaaa # # # #","# # #z aaaa z# # # # #","# # # z z # # # #","# # # z z # # # # #","# # # z ###@### z # # # #","# # # zzzz # # zzzzz # # # # #","# m m zzzz # fff # z zzzz mm # #","# mmm zzzzz @ ftf @ z zzzz mm mm #","# mmm zzzz z# fff #z zzzz mm mm #","# m m a # # a mm # #","# # # a ###@### a # # # # #","# # # a a # # # #","# # # a a # # # # #","# # # a zzzz a # # # #","# # # aSSS zzzz SSSa # # # # #","# # # SS zzzz SS # # # #","# # #S zzzz S# # # # #","# # # # # # #","# # # # # # # #","# # # # # # #","# # # # # # # #","# # # # # # #","# # # # # # # #","# # # # # # #","# # # # # # # #","# # mmm # # #","## m # ##","####################################################################################################",},
};
int tower=0;
void addlevels();
int AttAck(int attack);
void AttackMonster();
void color(int x);
void cls();
void coutwhat(int a,int b,int c,int d,string n);
void Die();
void game();
char getin(char x,char y);
void gotoxy(int y,int x);
void gs();
void hidden();
void init();
void monsterbook();
void PrintfMap(int x);
int random(int n,int m);
void rf();
void Sout(string n);
void wf();
void shop();
void bnm();
void monsterbook()
{cls();int i,j,k;for(i=0;i<BNUM;i++)if (monster[i])if (monster_[i])printf("%c\n%s\nattack:%d\nhp:%d\ndefence:%d\n-------------------------------\n",sympol[i],Name[i].c_str(),Attack[i],Hp[i],Defence[i]);elseprintf("???\n-------------------------------\n");gs();PrintfMap(player.tower);
}
int AttAck(int attack)
{int i=0,j=1;gotoxy(10,0);cout<<"按空格攻击\n";cout<<"Low High Low\n";cout<<"------------------------------------------------------------\n\n";cout<<"------------------------------------------------------------";float shang[60]={0.1,0.1,0.1,0.2,0.2,0.2,0.2,0.3,0.3,0.3,0.3,0.5,0.5,0.5,0.6,0.6,0.6,0.7,0.7,0.7,0.7,0.7,0.8,0.9,0.9,1.0,1.2,1.5,2.0,1.5,1.2,0.9,0.9,0.8,0.8,0.7,0.7,0.7,0.7,0.6,0.6,0.6,0.5,0.5,0.5,0.4,0.4,0.4,0.3,0.2,0.2,0.2,0.2,0.1,0.1,0.1,0.6,0.4,0.4,0.1};while(1){gotoxy(13,i-j);cout<<" ";gotoxy(13,i);cout<<"|#|";char m;if (kbhit()){m=getch();if (m==' ')return attack*(shang[i])+attack*0.3;}i+=j;if (i>=60)j=-j;if (i<=0)j=-j;Sleep(1);}
}
void init()
{int i,j,k,I;Time=time_t();printf("初始化请稍等...");for(I=0;I<TOWER;I++)for(i=0;i<40;i++){for(j=0;j<100;j++){k=sympol.find(MAP[I][i][j]);map[I][i][j].name=Name[k];map[I][i][j].attack=Attack[k];map[I][i][j].hp=Hp[k];map[I][i][j].defence=Defence[k];map[I][i][j].go=Go[k];map[I][i][j].monster=monster[k];map[I][i][j].number=k;map[I][i][j].xp=Xp[k];}}player.tower=0;player.hp=150;player.attack=35;player.defence=15;player.xp=1; player.level=1;player.x=1;player.y=1;system("cls");
}
void coutwhat(int a,int b,int c,int d,string n)//输出一些东西,从坐标(a,b)到(c,d)输出n
{int i,j;for(i=a;i<=c;i++){gotoxy(i,b);for(j=b;j<=d;j++){cout<<n;}}
}
void gotoxy(int y,int x) //移动光标
{COORD coord; coord.X=x; coord.Y=y;HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(a,coord);
}
void color(int x)//调颜色
{switch(x){case 0:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);break;case 1:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);break;case 2:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_GREEN);break;case 3:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_GREEN);break;case 4:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE);break;case 5:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_RED);break;case 7:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);break;case 8:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_GREEN);break;case 9:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_BLUE);break;case 10:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);break;default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);break;}
}
char getin(char x,char y)
{char l;dol=_getch();while(l<x||l>y);return l;
}
int random(int n,int m)
{int s;s=rand()%(m-n+1);s+=n;return s;
}
void cls()
{system("cls");
}
void shop()
{cls();int much[10]={30,50,120,30,50,150,30,50,120};while(1){printf("欢迎,你想买些什么?");printf("1.锈迹斑斑的铁剑 (attack+3) $30\n");printf("2.崭新的铁剑 (attack+5) $50\n");printf("3.银光闪闪的宝剑 (attack+12) $120\n");printf("4.发霉的药水 (hp+20) $30\n");printf("5.普通的药水 (hp+40) $50\n");printf("6.高级药水 (hp+500 attack+10) $150\n");printf("7.破烂盾牌 (defence+1) $30\n");printf("8.木头盾牌 (defence+2) $50\n");printf("9.坚固的铁盾(defence+4) $120\n");printf("0.离开 $0\n");char n=_getch();if (n=='0')break;printf("确定买%c吗?Y/N",n);char m=_getch();if (m=='N'||m=='n')continue;if (player.money<much[n-'0'])printf("钱不够!");else{printf("购买成功!");player.money-=much[n-'0'];switch(n){case '1':player.attack+=3;break;case '2':player.attack+=5;break;case '3':player.attack+=12;break;case '4':player.hp+=20;break;case '5':player.hp+=40;break;case '6':player.hp+=500,player.attack+=10;break;case '7':player.defence++;break;case '8':player.defence+=2;break;case '9':player.defence+=4;break; } }system("cls");}PrintfMap(player.tower);
}
void Sout(string n)
{for(int i=0;i<n.size();i++){cout<<n[i];Sleep(sudu);if (kbhit())if (getch()==' '){cout<<n.substr(i+1,n.size()-i);return;}}
}
void hidden()
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(handle, &CursorInfo);
CursorInfo.bVisible = false;
SetConsoleCursorInfo(handle, &CursorInfo);
}
void gs()
{hidden();gotoxy(45,80);cout<<"按下任意键继续_";_getch();system("cls");
}
void PrintfMap(int x)
{cls();gotoxy(0,0);int i,j;for(i=0;i<40;i++){for(j=0;j<100;j++){printf("%c",MAP[x][i][j]);}printf("\n");}for(i=0;i<BNUM;i++)if (monster[i]==false){gotoxy(i+10,105);printf("%c %s\n",sympol[i],Name[i].c_str());}
}
void Die()
{cls();sudu=150;Sout("你\t死\t了");sudu=10;exit(0); gs();rf();
}
void AttackMonster(int x,int y)
{cls();BLOCKS j;char l;int n,m;j=map[player.tower][player.x][player.y];n=player.attack;player.attack*=0.9;//考虑玩家不一定全部能正中 if (j.attack-player.defence>0){m=player.hp/(j.attack-player.defence);if (player.attack-j.defence<=0){printf("你现在可能还打不过他呢,是否继续挑战?Y.yes N.no");l=_getch();player.attack=n;if (l=='n'||l=='N'){PrintfMap(player.tower);player.x=x,player.y=y;return;}}m*=(player.attack-j.defence);if (m<=j.hp){printf("你现在可能还打不过他呢,是否继续挑战?Y.yes N.no");l=_getch();player.attack=n;if (l=='n'||l=='N'){PrintfMap(player.tower);player.x=x,player.y=y;return;}}}player.attack=n;while(j.hp>0&&player.hp>0){cls();printf("敌人:%s\n",j.name.c_str());printf("敌人的血量:%d\n",j.hp);printf("敌人的攻击:%d\n",j.attack);printf("敌人的防御:%d\n",j.defence);printf("你的血量:%d\n",player.hp);printf("你的攻击:%d\n",player.attack);printf("你的防御:%d\n",player.defence); printf("1.attack 2.run away\n");l=_getch();if (l=='2')if (rand()%4==1&&j.name!="魔术师"&&j.name!="魔王_真"){map[player.tower][player.x][player.y].hp=j.hp;return;}elseprintf("逃跑失败!");n=AttAck(player.attack);n-=j.defence;j.hp-=n;if (n<=0)n=1;printf("你发起了攻击,%s受到了%d点伤害!\n",j.name.c_str(),n);n=j.attack*random(9,12)/10.0;n-=player.defence;if (n<=0)n=1;player.hp-=n;printf("%s发起了攻击,你受到了%d点伤害!\n",j.name.c_str(),n);gs();}if (player.hp<=0)Die();if (map[player.tower][player.x][player.y].name=="魔王_真"){system("cls");Sout("你成功打败了魔王,游戏结束,你赢了!");exit(0);}if (map[player.tower][player.x][player.y].name=="流浪商人_魔化")map[player.tower][player.x][player.y].name="流浪商人";map[player.tower][player.x][player.y].hp=0;map[player.tower][player.x][player.y].attack=0;map[player.tower][player.x][player.y].defence=0;map[player.tower][player.x][player.y].go=1;map[player.tower][player.x][player.y].monster=0;monster_[map[player.tower][player.x][player.y].number]=1;player.money+=Xp[map[player.tower][player.x][player.y].number];MAP[player.tower][player.x][player.y]=' ';PrintfMap(player.tower);return;
}
void addlevels()
{while(player.xp>uplevel[player.level])player.level++,player.hp+=80,player.attack+=6,player.defence+=3;
}
void game()
{char l;int i,j,k,n,m;while(player.tower<TOWER){PrintfMap(player.tower);Time=clock();do{l=',';hidden();int sx,sy;sx=player.x,sy=player.y;gotoxy(42,0);printf("LEVEL:%d XP:%d/%lld\n",player.level,player.xp,uplevel[player.level]);gotoxy(43,0);printf("HP:%d ATTACK:%d DEFENCE:%d\n",player.hp,player.attack,player.defence);gotoxy(44,0);printf("MONEY:%d\n",player.money);gotoxy(player.x,player.y);cout<<"O";if (kbhit())l=getch();now=clock();gotoxy(0,105);k=now-Time;printf("%d:%d:%d.%d",k/3600000,k%3600000/60000,k%60000/1000,k%1000);switch(l){case 'w':if (player.x>0&&map[player.tower][player.x-1][player.y].go) player.x--;break;case 's':if (player.x<COLS&&map[player.tower][player.x+1][player.y].go) player.x++;break;case 'a':if (player.y>0&&map[player.tower][player.x][player.y-1].go) player.y--;break;case 'd':if (player.y<LINES&&map[player.tower][player.x][player.y+1].go) player.y++;break;case 'm':monsterbook();break;case '/':cin>>n;if (n<5)player.tower=n;else player.hp+=n,player.attack+=n,player.defence+=n,player.money+=n*100;}if (sx!=player.x||sy!=player.y){gotoxy(sx,sy);cout<<" ";gotoxy(player.x,player.y);cout<<"O";}if (map[player.tower][player.x][player.y].monster) if (MessageBox(NULL,TEXT("是否挑战此怪物?"),TEXT("?"),MB_YESNO)==IDYES)AttackMonster(sx,sy);else{gotoxy(player.x,player.y);printf("%c",MAP[player.tower][player.x][player.y]);player.x=sx,player.y=sy; }gotoxy(45,0);printf("位置:%d,%d,%d",player.x,player.tower+1,player.y);if (map[player.tower][player.x][player.y].hp<=0)player.xp+=map[player.tower][player.x][player.y].xp;addlevels();map[player.tower][player.x][player.y].xp=0;if (map[player.tower][player.x][player.y].number==9)player.hp+=50,MAP[player.tower][player.x][player.y]=' ',map[player.tower][player.x][player.y].number=0;if (map[player.tower][player.x][player.y].number==10)player.attack+=10,MAP[player.tower][player.x][player.y]=' ',map[player.tower][player.x][player.y].number=0;if (MAP[player.tower][player.x][player.y]=='S')player.defence+=4,MAP[player.tower][player.x][player.y]=' ',map[player.tower][player.x][player.y].number=0;if (MAP[player.tower][player.x][player.y]=='d'||map[player.tower][player.x][player.y].name=="流浪商人"){shop(); gotoxy(player.x,player.y);printf("%c",MAP[player.tower][player.x][player.y]);player.x=sx,player.y=sy; }if (MAP[player.tower][player.x][player.y]=='@'){gotoxy(46,0);for(i=0;i<RUNE;i++)if (player.tower==rtower[i]&&player.x==rposx[i]&&player.y==rposy[i])break;printf("石碑内容:%s",runec[i].c_str());} else{gotoxy(46,0);printf(" ");}}while(!((player.x==COLS-2&&player.y==LINES-2)||(player.x==0&&player.y==1&&player.tower>0)));if (player.x==COLS-2&&player.y==LINES-2)player.tower++,player.x=1,player.y=1;else if (player.tower>0)player.tower--,player.x=38,player.y=98;//wf();}
}
int main()
{char l;int i,j,k;hidden();init();game();return 0;
}
勇闯迷塔小游戏(c++) 3.17更新相关推荐
- 【项目展示】自己用C语言编写的汉诺塔小游戏
本文目录 1.前言 2.什么是汉诺塔? 3.项目规格 4.基本思路 5.源代码 6.运行结果 7.感想与心得 8.未来规划 1.前言 昨儿个把自己大一时候写过的五子棋重构了一下,之后就在想着要不把不知 ...
- python汉诺塔游戏_Python实战:搭建汉诺塔小游戏,快和小伙伴一起玩玩吧
汉诺塔游戏:看谁能在短时间内将排好顺序的圈,按同样的顺放在另一根柱子上,每次只能动一个. 今天用python搭建汉诺塔小游戏(简约版) 代码亲测有效!源代码如下: #左中右塔用一个列表存储 left ...
- C语言--汉诺塔小游戏
汉诺塔小游戏的游戏规则:有三个柱子abc,其a柱上面有若干个圆盘,要求借助三个柱子将a柱上面的圆盘按顺序移动到c柱上去,并且c柱上每次只能增加一个圆盘,问需要移动多少次才可以完成此游戏. 一.首先理解 ...
- html实现汉诺塔小游戏
文章目录 1.设计来源 汉诺塔由来 1.1 主界面 1.2 游戏规则 1.3 游戏完成界面 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https:// ...
- java游戏循环_利用Java循环语句实现攻击防御塔小游戏
/* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...
- Fundebug 微信小游戏异常监控插件更新至 0.5.0,支持监控 HTTP 慢请求
摘要: 支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug是专业微信小游戏 BUG 监控服务,可以第一时间捕获线上环境中小游戏的异常.错误或者 BUG, ...
- 汉诺塔小游戏 c语言
相信大家在学习C语言嵌套的时候已经学习过经典问题汉诺塔了,我学习时就想能不能搞个汉诺塔的游戏出来,结果睡了一觉就给忘了.今天突然想起,搞出来与大家分享,水平一般,但符合汉诺塔规则.最终代码我放在文章最 ...
- java登塔小游戏,是男人就上一百层
学习java很久了,很少完完全全的自己编写一个有难度点的程序.又正好赶上一门课程任务,所以前段时间自己决定用java写一个小游戏,既可以当设计作品又可以练习巩固所学. 这个游戏具体规则如下: 1. 在 ...
- 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~17开始游戏-移动方向处理
魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程控制分析3: 男主角移动及方向处理: Sub 男主角移动及方向处理()If Running <> 1 Then E ...
- C++急速赛车小游戏(注释几天后更新)
文章目录 成品展示 项目链接(带配图) 源代码 tools.h racingGame.cpp 成品展示 项目链接(带配图) https://download.csdn.net/download/wei ...
最新文章
- html5摒弃的标记,5 HTML5的列表标记
- 95行代码实现最大熵模型训练
- GOCN每日新闻(2017-08-12)
- MySQL Server 5.0安装教程
- OO真经——关于面向对象的哲学体系及科学体系的探讨(下)
- Laravel 队列:如何查看队列报错信息
- ajax url参数中文乱码解决
- android 资源文件获取啥退,重拾Android之路之获得各种资源文件的方法
- 系统分析——以事件开始构建系统模型
- 学计算机信息管理专业的感谢,计算机信息管理专业工作求职信
- docker 容器连接宿主机mysql问题
- java 并发编程实战代码_「Java并发编程实战」对象的组合
- html阿里矢量图标库,分析Iconfont-阿里巴巴矢量常用图标库
- 【自然语言处理】论述自然语言处理的技术范畴
- 信号的同调性(Coherence)分析及MATLAB实例
- android 接入百度地图sdk
- tk教主:个人成长_网络成长时:浏览器的故事
- 如何在Mac和Windows PC之间无线共享文件
- Android中View绘制各种状态的背景图片原理深入分析以及StateListDrawable使用
- 《数据分析实战:基于EXCEL和SPSS系列工具的实践》一导读