#include <conio.h>
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
signed main(){
printf("欢迎来到游戏!\n");
printf("按y继续,按n退出");
Sleep(1500);
system("cls");
char aj;
aj=getch();
if (aj=='n'){
system("cls");
printf("拜拜!");
return 0;
}
else if(aj=='y'){
system("cls");
for (int i=5;i>0;i--){
printf("%d",i);
Sleep(1000);
system("cls");
}
printf("开始!");
Sleep(500);
system("cls");
}
char dt[20][60];//地图
memset(dt,'#',sizeof(dt));
for (int i=1;i<19;i++){
for (int j=1;j<59;j++){
dt[i][j]=' ';
}
}
char wj='@';
char nbboss='X';
int wjxl=2000;
int boss=5000;
char cz;
int x=1,y=1;
int x1=9,y1=29;
int yd=1;
int k=3;
int ydcs=5;
while (wjxl>0 && boss>0){
if (wjxl<2000) wjxl+=25;
dt[x][y]=wj;
dt[x1][y1]=nbboss;
system("cls");
Sleep(1500);
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
cz=getch();
if (cz=='a' && y-5>0){
swap(dt[x][y],dt[x][y-5]);
y-=5;
}
else if(cz=='d' && y+5<59){
swap(dt[x][y],dt[x][y+5]);
y+=5;
}
else if(cz=='s' && x+5<19){
swap(dt[x][y],dt[x+5][y]);
x+=5;
}
else if(cz=='w' && x-5>0){
swap(dt[x][y],dt[x-5][y]);
x-=5;
}
else if (cz=='1'){
for (int i=1;i<59;i++){
if (dt[x][i]=='X'){
boss-=75;
}
if (i!=y && dt[x][i]!='X' && dt[x][i]!='@') dt[x][i]='_';
}
for (int i=1;i<19;i++){
if (dt[i][y]=='X'){
boss-=75;
}
if (i!=x && dt[i][y]!='X' && dt[i][y]!='@') dt[i][y]='|';
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
for (int i=1;i<59;i++){
if (i!=y && dt[x][i]!='X' && dt[x][i]!='@') dt[x][i]=' ';
}
for (int i=1;i<19;i++){
if (i!=x && dt[x][i]!='x' && dt[i][y]!='@') dt[i][y]=' ';
}
Sleep(1000);
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
}
else if (cz=='2'){
for (int i=x-5;i<=x+5;i++){
for (int j=y-5;j<=y+5;j++){
if (dt[i][j]=='X'){
boss-=50;
}
else if (dt[i][j]!='@' && dt[i][j]!='#'){
dt[i][j]='^';
}
}
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
for (int i=x-5;i<=x+5;i++){
for (int j=y-5;j<=y+5;j++){
if (dt[i][j]!='@' && dt[i][j]!='#' && dt[i][j]!='X'){
dt[i][j]=' ';
}
}
}
}
else if(cz=='3'){
cz=getch();
if (cz=='a' && y-1>0) dt[x][y-1]='O';
if (cz=='d' && y+1<59) dt[x][y+1]='O';
if (cz=='w' && x-1>0) dt[x-1][y]='O';
if (cz=='s' && x+1<19) dt[x+1][y]='O';
}
else if (cz=='4'){
int dlx,dly;
scanf("%d %d",&dlx,&dly);
if (dt[dlx][dly]=='X') boss-=300;
else dt[dlx][dly]='!';
}
else if (cz=='5'){
for (int i=1;i<20;i++){
if (dt[x+i][y+i]!='X' && dt[x+i][y+i]!='#') dt[x+i][y+i]='6';
if (dt[x+i][y+i]=='X') boss-=90;
}
for (int i=1;i<20;i++){
if (dt[x-i][y-i]!='X' && dt[x-i][y-i]!='#') dt[x-i][y-i]='6';
if (dt[x-i][y-i]=='X') boss-=90;
}
for (int i=1;i<20;i++){
if (dt[x-i][y+i]!='X' && dt[x-i][y+i]!='#') dt[x-i][y+i]='6';
if (dt[x-i][y+i]=='X') boss-=90;
}
for (int i=1;i<20;i++){
if (dt[x+i][y-i]!='X' && dt[x+i][y-i]!='#') dt[x+i][y-i]='6';
if (dt[x+i][y-i]=='X') boss-=90;
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
for (int i=1;i<20;i++){
if (dt[x+i][y+i]!='X' && dt[x+i][y+i]!='#') dt[x+i][y+i]=' ';
}
for (int i=1;i<20;i++){
if (dt[x-i][y-i]!='X' && dt[x-i][y-i]!='#') dt[x-i][y-i]=' ';
}
for (int i=1;i<20;i++){
if (dt[x-i][y+i]!='X' && dt[x-i][y+i]!='#') dt[x-i][y+i]=' ';
}
for (int i=1;i<20;i++){
if (dt[x+i][y-i]!='X' && dt[x+i][y-i]!='#') dt[x+i][y-i]=' ';
}
system("cls");
Sleep(1000);
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
}
if (boss>2500){
for (int i=x1-1;i<=x1+1;i++){
for (int j=y1-1;j<=y1+1;j++){
if (dt[i][j]=='@'){
wjxl-=90;
}
else if (dt[i][j]!='#' && dt[i][j]!='X' && dt[i][j]!='@'){
dt[i][j]='^';
}
}
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
for (int i=x1-1;i<=x1+1;i++){
for (int j=y1-1;j<=y1+1;j++){
if (dt[i][j]!='@' && dt[i][j]!='#' && dt[i][j]!='X'){
dt[i][j]=' ';
}
}
}
for (int i=1;i<59;i++){
if (dt[x1][i]=='O'){
break;
}
if (dt[x1][i]=='@'){
wjxl-=105;
}
if (i!=y1 && dt[x1][i]!='@' && dt[x1][i]!='X' && dt[x1][i]!='#') dt[x1][i]='_';
}
for (int i=1;i<19;i++){
if (dt[i][y1]=='O'){
break;
}
if (dt[i][y1]=='@'){
wjxl-=105;
}
if (i!=x1 && dt[i][y1]!='@' && dt[i][y1]!='X' && dt[i][y1]!='#') dt[i][y1]='|';
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
for (int i=1;i<59;i++){
if (dt[x1][i]!='@' && dt[x1][i]!='X' && dt[x1][i]!='#') dt[x1][i]=' ';
}
for (int i=1;i<19;i++){
if (dt[x1][i]!='@' && dt[i][y1]!='X' && dt[i][y1]!='#') dt[i][y1]=' ';
}
Sleep(1000);
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]!='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
boss-=300;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=3;
}
else{
swap(dt[x1][y1],dt[x1][y]);
y1=y;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]=='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
boss-=300;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#' && dt[x1][y1-3]=='!'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=3;
boss-=300;
}
}
else if (boss<=2500 && boss>1000){
for (int i=x1-5;i<=x1+5;i++){
for (int j=y1-5;j<=y1+5;j++){
if (dt[i][j]=='@'){
wjxl-=90;
}
else if (dt[i][j]!='#' && dt[i][j]!='X' && dt[i][j]!='@'){
dt[i][j]='^';
}
}
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
for (int i=x1-5;i<=x1+5;i++){
for (int j=y1-5;j<=y1+5;j++){
if (dt[i][j]!='@' && dt[i][j]!='#' && dt[i][j]!='X'){
dt[i][j]=' ';
}
}
}
for (int i=1;i<59;i++){
if (dt[x1][i]=='O'){
break;
}
if (dt[x1][i]=='@'){
wjxl-=105;
}
if (i!=y1 && dt[x1][i]!='@' && dt[x1][i]!='X' && dt[x1][i]!='#') dt[x1][i]='_';
}
for (int i=1;i<19;i++){
if (dt[i][y1]=='O'){
break;
}
if (dt[i][y1]=='@'){
wjxl-=105;
}
if (i!=x1 && dt[i][y1]!='@' && dt[i][y1]!='X' && dt[i][y1]!='#') dt[i][y1]='|';
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
for (int i=1;i<59;i++){
if (dt[x1][i]!='@' && dt[x1][i]!='X') dt[x1][i]=' ';
}
for (int i=1;i<19;i++){
if (dt[x1][i]!='@' && dt[i][y1]!='X') dt[i][y1]=' ';
}
Sleep(1000);
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]!='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
boss-=300;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=3;
}
else{
swap(dt[x1][y1],dt[x1][y]);
y1=y;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]=='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=3;
boss-=300;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#' && dt[x1][y1-3]=='!'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=3;
boss-=300;
}
for (int i=y1-1;i>=y1-21;i--){
for (int j=1;j<19;j+=2){
if (dt[j][i]!='#' && dt[j][i]!='@') dt[j][i]='<';
if (dt[j][i]=='@') wjxl-=150;
}
system("cls");
for (int k=0;k<=19;k++){
for (int l=0;l<=59;l++){
printf("%c",dt[k][l]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(500);
for (int j=1;j<19;j++){
if (dt[j][i]!='#') dt[j][i]=' ';
}
}
for (int i=y1+1;i<=y1+21;i++){
for (int j=1;j<19;j+=2){
if (dt[j][i]!='#' && dt[j][i]!='@') dt[j][i]='>';
if (dt[j][i]=='@') wjxl-=150;
}
system("cls");
for (int k=0;k<=19;k++){
for (int l=0;l<=59;l++){
printf("%c",dt[k][l]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(500);
for (int j=1;j<19;j++){
if (dt[j][i]!='#') dt[j][i]=' ';
}
}
}
else{
for (int i=x1-9;i<=x1+9;i++){
for (int j=y1-9;j<=y1+9;j++){
if (dt[i][j]=='@'){
wjxl-=270;
}
else if (dt[i][j]!='#' && dt[i][j]!='X' && dt[i][j]!='@'){
dt[i][j]='^';
}
}
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(1000);
for (int i=x1-9;i<=x1+9;i++){
for (int j=y1-9;j<=y1+9;j++){
if (dt[i][j]!='@' && dt[i][j]!='#' && dt[i][j]!='X'){
dt[i][j]=' ';
}
}
}
for (int i=1;i<59;i++){
if (dt[x1][i]=='O'){
wjxl+=75;
boss-=75;
break;
}
if (dt[x1][i]=='@'){
wjxl-=315;
}
if (i!=y1 && dt[x1][i]!='@' && dt[x1][i]!='X' && dt[x1][i]!='#') dt[x1][i]='_';
}
for (int i=1;i<19;i++){
if (dt[i][y1]=='O'){
wjxl+=75;
boss-=75;
break;
}
if (dt[i][y1]=='@'){
wjxl-=315;
}
if (i!=x1 && dt[i][y1]!='@' && dt[i][y1]!='X' && dt[i][y1]!='#') dt[i][y1]='|';
}
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
for (int i=1;i<59;i++){
if (dt[x1][i]!='@' && dt[x1][i]!='X') dt[x1][i]=' ';
}
for (int i=1;i<19;i++){
if (dt[x1][i]!='@' && dt[i][y1]!='X') dt[i][y1]=' ';
}
Sleep(1000);
system("cls");
for (int i=0;i<=19;i++){
for (int j=0;j<=59;j++){
printf("%c",dt[i][j]);
}
printf("\n");
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=5;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]!='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=5;
boss-=150;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=5;
}
else{
swap(dt[x1][y1],dt[x1][y]);
y1=y;
}
if (abs(x-x1)>abs(y-y1) && dt[x][y1]!='@' && dt[x1-3][y1]!='#' && dt[x1-3][y1]=='!'){
swap(dt[x1][y1],dt[x1-3][y1]);
x1-=5;
boss-=150;
}
else if (abs(x-x1)<abs(y-y1) && dt[x1][y]!='@' && dt[x1][y1-3]!='#' && dt[x1][y1-3]=='!'){
swap(dt[x1][y1],dt[x1][y1-3]);
y1-=5;
boss-=150;
}
for (int i=y1-1;i>=y1-21;i--){
for (int j=1;j<19;j++){
if (dt[j][i]!='#' && dt[j][i]!='@') dt[j][i]='<';
if (dt[j][i]=='@') wjxl-=225;
}
system("cls");
for (int k=0;k<=19;k++){
for (int l=0;l<=59;l++){
printf("%c",dt[k][l]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(500);
for (int j=1;j<19;j++){
if (dt[j][i]!='#') dt[j][i]=' ';
}
}
for (int i=y1+1;i<=y1+21;i++){
for (int j=1;j<19;j++){
if (dt[j][i]!='#' && dt[j][i]!='@') dt[j][i]='>';
if (dt[j][i]=='@') wjxl-=225;
}
system("cls");
for (int k=0;k<=19;k++){
for (int l=0;l<=59;l++){
printf("%c",dt[k][l]);
}
printf("\n");
}
printf("wjhp:%d\n",wjxl);
printf("bosshp:%d",boss);
Sleep(500);
for (int j=1;j<19;j++){
if (dt[j][i]!='#') dt[j][i]=' ';
}
}
}
}
int s=30;
if (wjxl<=0){
system("cls");
for (int i=0;i<100;i++){
printf("这么菜,该罚!");
}
}
else if(wjxl<100 && wjxl>0){
system("cls");
printf("极限!");
}
else if(wjxl>100 && wjxl<1000){
system("cls");
printf("一般般。");
}
else{
system("cls");
printf("卧槽!nb!");
}
return 0;
}
啊,就是把功能啥的写成函数或者库吧(本人工程类代码小白)
这得自己悟了,封装在后面很重要,代码可读性不会那么差
怎么攻击啊,怎么移动啊,自己HP和BossHP看懂了,结果尽挨打