作为新手我能写出这种代码已经很好了。。。
#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
using namespace std;
int di_xue=20,di_sha=5;
int x=6,y=5,xue=20,xue_2=20,sha=2,enter,di_enter,fen;
string zhao[5]= {"铁头功","龟息术","回旋斩","铁布衫","龙盘功"},da_zhao="无招胜有招。。。",da_sha,da_fang,da_hui,bei_bao[1000];
int shas[5]= {12,0,10,0,3},fang[5]= {0,0,0,1,0},hui[5]= {-3,10,0,0,3},money=0;
void yan(int a) {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
switch(a) {
case 1:
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
break;
case 2:
SetConsoleTextAttribute(hConsole, FOREGROUND_RED|FOREGROUND_INTENSITY);
break;
case 0:
SetConsoleTextAttribute(hConsole, FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
break;
case 4:
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE|FOREGROUND_INTENSITY|FOREGROUND_RED);
break;
case 5:
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
break;
case 3:
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY|FOREGROUND_BLUE|FOREGROUND_GREEN);
break;
}
}
void dou_jian(string di,int di_xue,int di_sha) {
yan(2);
string a[4]= {"","突刺","重砍","拔剑"};
xue_2=xue;
fen=0;
while(1) {
system("cls");
if (fen>0) {
printf("%i个分身给敌人造成%i滴血伤害!\n",fen,fen*sha/2);
di_xue-=fen*sha/2;
}
if (di_xue<=0) {
printf("\n敌人死了!\n");
Sleep(1000);
break;
}
cout<<di<<"还有"<<di_xue<<"滴血\n";
cout<<"你还有"<<xue<<"滴血\n请输入你的招式:";
cin>>enter;
srand(time(0));
di_enter=rand()%3+1;
cout<<"你使出:"<<a[enter]<<endl;
cout<<"敌人使出:"<<a[di_enter]<<endl;
Sleep(1000);
if (enter==di_enter) {
printf("平!");
Sleep(1000);
} else if ((enter==1 and di_enter==3) or (enter==2 and di_enter==1) or (enter==3 and di_enter==2)) {
di_xue-=sha;
printf("你获得一次空闲,使出了");
cout<<da_zhao;
if (da_zhao=="分身术") {
printf(",召唤一个分身");
fen+=1;
}
Sleep(3000);
} else {
xue-=di_sha;
printf("你被攻击了!减");
cout<<di_sha<<"滴血!";
Sleep(1600);
if (xue<1) {
printf("\n你死了。\n");
Sleep(900);
exit(0);
}
}
}
xue=xue_2;
}
void jiang_hu() {
yan(5);
printf("你前往了江湖。");
Sleep(2000);
system("cls");
printf("江湖侠士:我用10个金币收买你,你替我杀死贪官吧!\n");
Sleep(2000);
printf("你去了贪官家,贪官拔剑相迎。\n");
Sleep(1600);
system("cls");
printf("因为你是第一次与人斗剑,所以看几个简单的规则:\n");
Sleep(2000);
printf("输入1突刺,2重砍,3拔剑\n");
Sleep(1500);
printf("拔剑能对付重砍,重砍能对付突刺,突刺能对付拔剑\n");
Sleep(2000);
printf("你使出能对付敌人招式的招式后,不但可以造成伤害,还可以获得一次空闲使出招式\n");
Sleep(4000);
printf("废话不多说,开始!\n");
Sleep(1000);
dou_jian("贪官",30,7);
printf("你去向江湖侠士讨钱\n");
Sleep(2000);
printf("江湖侠士:我就不给你钱,我气死你!\n");
Sleep(3000);
printf("你怒不可遏,拔剑相迎!");
Sleep(2200);
dou_jian("江湖侠士",30,7);
printf("这时,一个土匪头头冲了过来!");
Sleep(2500);
dou_jian("土匪头头",25,10);
printf("你一天杀了3个人,筋疲力竭。\n");
Sleep(2500);
printf("你继续前进\n");
Sleep(1000);
printf("前方出现一个酒店\n");
Sleep(1000);
printf("你走了进去。\n");
Sleep(1000);
printf("你喝了一瓶酒\n");
Sleep(1000);
printf("你获得了一瓶烈酒\n新增道具:烈酒\n效果:携带后血量-1,伤害+7\n");
Sleep(4000);
sha+=7;
xue-=1;
printf("你住进了酒店,筋疲力竭的你睡着了。\n");
Sleep(3000);
printf("睡梦中,你听到一些响声\n");
Sleep(3000);
printf("你醒来,发现店老板拿着两把刀,要杀你抢钱!\n");
Sleep(5000);
printf("你举剑相迎!");
Sleep(1000);
dou_jian("黑店老板",30,9);
printf("这时,三个店小二冲向你!!!");
Sleep(3000);
printf("你举剑相迎!");
dou_jian("店小二甲",20,7);
dou_jian("店小二乙",20,7);
printf("你的剑断了,攻击-1!");
sha-=1;
Sleep(3000);
printf("你拔出老王家抢来的镰刀迎战最后一个最强的店小二!!!");
Sleep(6000);
dou_jian("店小二丙",25,8);
printf("你:外面的世界太可怕了,还是回村吧!");
Sleep(5000);
}
void si_miao() {
system("cls");
yan(0);
printf("你走到了寺庙门口\n");
Sleep(900);
printf("寺庙门口的僧人:你是来拜师的僧人吗?\n");
Sleep(1200);
printf("寺庙门口的僧人:等一下,我去报告我师傅。\n");
Sleep(1200);
printf("师傅:小伙子,你看起来很有天赋。我想收你为徒,但你得先打败我的徒弟。他血量20,攻击5点。\n");
Sleep(1900);
printf("开始战斗!(由于是决斗,将由系统自动攻击)\n");
Sleep(1000);
xue_2=xue;
while (1) {
printf("你攻击了寺庙门口的僧人,他减血了!\n");
Sleep(1200);
di_xue-=sha;
if (di_xue<=0) {
printf("你赢了!\n");
Sleep(900);
break;
}
printf("寺庙门口的僧人攻击了你,你减血了!\n");
Sleep(1200);
xue-=di_sha;
if (xue<=0) {
printf("你死了!\n");
Sleep(900);
exit(0);
}
}
printf("师傅:你很厉害啊!我将收你为徒!\n");
Sleep(1100);
printf("师傅:不过我先给你和他回满血!\n");
Sleep(900);
xue=xue_2;
di_xue=20;
printf("师傅用法术给你和他都回满了血!\n");
Sleep(1000);
cout<<"有以下招式可学习:\n";
for (int i=0; i<5; i++) {
cout<<i<<' '<<zhao[i]<<"——伤害:"<<shas[i]<<",回血量:"<<hui[i];
if(fang[i]) {
printf(",可以防御一次攻击");
}
cout<<"\n";
}
enter=int(getch())-48;
da_zhao=zhao[enter];
da_hui=hui[enter];
da_fang=fang[enter];
da_sha=shas[enter];
printf("师傅:你可以出师了!");
Sleep(1200);
system("cls");
}
int main() {
bool zhi_dao=false,qu_guo=false,zhi=false,sha_wang=false,qu=false;
char wasd;
char a[18]= {'_','_','_',' ',' ',' ',' ',' ',' ','%',' ','[','^','^','^','^','^',']'};
char b[18]= {'|','L','|',' ',' ',' ',' ',' ',' ','#',' ','[','_','_','W','_','_',']'};
char c[18]= {'^','#','^',' ',' ',' ',' ',' ',' ','#',' ','#','#','#','#',' ',' ',' '};
char d[18]= {' ','#','#','#','#','_','_','_','#','#','#','#',' ',' ','#','#','#','#'};
char e[18]= {' ','#',' ',' ','#','|','#','|','#',' ',' ',' ',' ',' ','#',' ',' ',' '};
char f[18]= {' ','#',' ',' ','#','^','#','^','#',' ',' ',' ','%','#','#',' ',' ',' '};
char g[18]= {' ','=',' ',' ','#','#','#','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' '};
char h[18]= {' ','%',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
char map[10][18];
while (1) {
for (int i=0; i<18; i++) {
map[1][i]=a[i];
map[2][i]=b[i];
map[3][i]=c[i];
map[4][i]=d[i];
map[5][i]=e[i];
map[6][i]=f[i];
map[7][i]=g[i];
map[8][i]=h[i];
}
map[y][x]='C';
if (sha_wang==true) {
map[y+1][x]='Y';
}
yan(3);
cout<<"血量:"<<xue<<"\n伤害:"<<sha<<"\n大招:"<<da_zhao<<"\n";
for (int j=1; j<=8; j++) {
for (int i=0; i<18; i++) {
if (map[j][i]=='C' || map[j][i]=='L' || map[j][i]=='Y' || map[j][i]=='W') {
yan(2);
} else if(map[j][i]=='#') {
yan(1);
} else if(map[j][i]==']' || map[j][i]=='|' || map[j][i]=='[' || map[j][i]=='^' || map[j][i]=='_' || map[j][i]=='%') {
yan(0);
} else {
yan(4);
}
cout<<map[j][i];
}
yan(5);
cout<<"\n";
}
yan(2);
cout<<"C";
yan(5);
cout<<":你 \t";
yan(2);
cout<<"L";
yan(5);
cout<<":易怒的李寡妇 \t";
yan(2);
cout<<"W";
yan(5);
cout<<":见多识广的隔壁老王 \t";
yan(1);
cout<<"#";
yan(5);
cout<<":路,只能走路 \t";
yan(0);
cout<<"%";
yan(5);
cout<<":死胡同\t";
yan(4);
cout<<"紫色图标";
yan(5);
cout<<":各种道具\n";
yan(0);
cout<<"可以输入:w:向上走一格。a:向左走一格。s:向下走一格。d:向右走一格。e: 触发人物效果或捡拾武器。v:攻击。x:滑行\n";
yan(4);
printf("-------------------------------------------------------------------------------------------------------------------\n");
yan(5);
if (sha_wang==true) {
Sleep(1000);
printf("你后面出现了一个大侠(Y表示),你知道他姓杨。");
printf("\n杨大侠:你本领高超,我得病快死了,我把武功教给你吧!你可以去村西边试验武功。");
printf("\n你学了武功——分身术,使用后出现一个有你伤害一半的分身帮你攻击。");
printf("\n按enter继续\n");
zhi=true;
sha_wang=false;
da_zhao="分身术";
}
wasd=_getch();
switch(wasd) {
case 'a':
if (x>=0) {
if (map[y][x-1] == '#') x--;
break;
}
break;
case 'd':
if(x==17) {
if (zhi==true) {
jiang_hu();
} else {
printf("你需要先知道前方有什么。");
Sleep(1600);
}
} else if (x<=18) {
if (map[y][x+1] == '#') {
x++;
}
}
break;
case 'w':
if (y>=0) {
if (map[y-1][x] == '#') y--;
break;
}
break;
case 's':
if(y==8) {
if (zhi_dao==true and qu_guo==false) {
qu_guo=true;
si_miao();
} else if(qu_guo==true) {
printf("你去过了!");
Sleep(700);
} else {
printf("你需要先知道前方有什么。");
Sleep(1600);
}
} else if (y<=8) {
if (map[y+1][x] == '#') {
y++;
break;
}
}
break;
case 'e':
if (map[y-1][x]=='W') {
printf("老王:年轻人,听说村南边有一个寺庙,出了许多侠客,你可以去看看。");
zhi_dao=true;
Sleep(5000);
} else if (map[y-1][x]=='L') {
printf("李寡妇:谁啊,我可是有刀的!如果是来办事的,找老王!对了,我昨天在南边的胡同里落下了一个秘籍,帮我找找吧!(=表示秘籍)");
Sleep(7000);
} else if (map[y+1][x]=='=') {
printf("你捡到了一本秘籍\n新增道具:秘籍\n效果:携带后血量+10");
Sleep(4000);
xue+=10;
g[x]='#';
} else if (map[y-1][x]=='F') {
printf("你捡到了一把梳子\n新增道具:梳子\n效果:携带后伤害+1");
Sleep(4000);
sha+=1;
b[x]='#';
} else if (map[y-1][x]=='7') {
printf("你捡到了一把镰刀\n新增道具:镰刀\n效果:携带后伤害+5");
Sleep(4000);
sha+=5;
b[x]='#';
}
break;
case 'v':
if (map[y-1][x]=='W') {
printf("你一拳打向老王,正中老王心窝,老王吐出了一口鲜血。从老王身上掉出一把镰刀。(7表示镰刀)\n老王:你你你。。。(倒地不起)");
Sleep(7000);
b[x]='7';
} else if (map[y-1][x]=='L') {
if (da_zhao=="无招胜有招。。。" or da_zhao=="铁布衫" or da_zhao=="龟息术") {
printf("你一拳打向李寡妇,结果没打中,反而被李寡妇一脚踹飞。\n李寡妇:想杀我,先去死!");
if (da_zhao=="铁布衫") {
printf("\n幸好你的大招防住了李寡妇的攻击。");
xue+=5;
Sleep(1000);
}
Sleep(5000);
xue-=5;
y+=3;
} else {
printf("你使出大招,杀死了李寡妇。李寡妇身上掉下一把梳子。(F表示梳子)");
Sleep(5000);
b[x]='F';
sha_wang=true;
}
}
break;
}
if (xue<=0) {
printf("你死了!");
Sleep(900);
exit(0);
}
system("cls");
}
}
小结:无。。。