坦克游戏!!!

#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
string s="+***++++++++++++++++***+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
string a;
int b[10],m,x1;
void print() {
    cout<<"w向上,s向下,a向左,d向右。/是墙,不要撞上!终点在!,退出按零。"<<endl;
    for(int i=1; i<=361; i++) {
        cout<<s[i]<<" ";
        if(i%19==0) cout<<endl;
    }
}
int opengame() {
    int x;
    cout<<"                "<<"坦克大战"<<endl;
    cout<<"          "<<"按1开始!其他退出。";
    cin>>x;
    if(x==1) {
        cout<<"游戏开始!打开中......";
        for(int i=0; i<1e9; i++) {}
        system("cls");

        return 1;
    } else {
        cout<<"游戏结束!";
        return 0;
    }
}
int input(string a) {
    while(cin>>a&&a!="0") {


        int x;
        for(int i=1; i<361; i++) {
            if(s[i]=='*') {
                x=i;
            }
        }

        if(a=="w") {
            if(s[x-38]=='/'||s[x-39]=='/'||s[x-40]=='/') {
                cout<<"你撞墙了!";
                return 0;
            }
            if(s[x-38]=='!'||s[x-39]=='!'||s[x-40]=='!') {
                cout<<"你赢了!";
                return 0;
            }
            s[x-38]='*';
            s[x-39]='*';
            s[x-40]='*';
            s[x-2]='+';
            s[x-1]='+';
            s[x]='+';
            system("cls");
            print();
        }
        if(a=="s") {
            if(s[x+19]=='/'||s[x+18]=='/'||s[x+17]=='/') {
                cout<<"你撞墙了!";
                return 0;
            }
            if(s[x+19]=='!'||s[x+18]=='!'||s[x+17]=='!') {
                cout<<"你赢了!";
                return 0;
            }
            s[x+19]='*';
            s[x+18]='*';
            s[x+17]='*';
            s[x-19]='+';
            s[x-20]='+';
            s[x-21]='+';
            system("cls");
            print();
        }
        if(a=="a") {
            if(s[x-3]=='/'||s[x-22]=='/') {
                cout<<"你撞墙了!";
                return 0;
            }
            if(s[x-3]=='!'||s[x-22]=='!') {
                cout<<"你赢了!";
                return 0;
            }
            s[x-3]='*';
            s[x-22]='*';
            s[x]='+';
            s[x-19]='+';
            system("cls");
            print();
        }
        if(a=="d") {
            if(s[x+1]=='/'||s[x-18]=='/') {
                cout<<"你撞墙了!";
                return 0;
            }
            if(s[x+1]=='!'||s[x-18]=='!') {
                cout<<"你赢了!";
                return 0;
            }
            s[x+1]='*';
            s[x-18]='*';
            s[x-2]='+';
            s[x-21]='+';
            system("cls");
            print();

        }
        if(a=="qd") {
            for(int i=1; i<=19-x%19; i++) {
                if(s[x+i]=='!') return 0;
                s[x+i]='>';
                for(int j=0; j<0.5e9; j++) {
                }

                if(i!=1)s[x+i-1]='+';
                if(i==19-x%19)s[x+i]='+';
                system("cls");
                print();
            }
        }
        if(a=="qw") {
            x1=x;
            x--;
            x-=19;
            x1--;
            x1-=19;
            if(x%19==0) m=x1%19;
            else m=x1%19+1;
            for(int i=1; i<=m; i++) {
                if(s[x-i*19]=='!') return 0;
                s[x-i*19]='^';
                for(int j=0; j<0.5e9; j++) {
                }

                if(i!=1)s[x-(i-1)*19]='+';
                if(i==m)s[m*19]='+';
                system("cls");
                print();
            }
        }
        if(a=="qa") {
            if((x-3)%19==0) continue;
            for(int i=3; i<=x%19-3+2; i++) {
                if(s[x-i]=='!') return 0;
                s[x-i]='<';
                for(int j=0; j<0.5e9; j++) {
                }

                if(i!=3)s[x-i+1]='+';
                if(i==x%19-3+2)s[x-i]='+';
                system("cls");
                print();
            }
        }
        if(a=="qs") {
            /*x--;
            x1=x;x-=19;
            x1--;
            x1-=19;*/
            if(x%19==0) m=x%19;
            else m=x%19+1;
            if(m==2) m=0;
            for(int i=1; i<=19; i++) {
                if(s[x+i*18]=='!') return 0;
                s[x+i*18]='v';
                for(int j=0; j<0.5e9; j++) {
                }

                if(i!=1)s[x+(i-1)*18-1]='+';
                if(i==19-m+2)s[m*18]='+';
                system("cls");
                print();
                x++;
            }
        }
    }
    cout<<"已退出!";
}//


int main() {
    if(opengame()!=1) {
        return 0;
    }

    int m;
    cout<<"难度选择(1-5)递增:";
    cin>>m;

    if(m==1) {
        srand ((unsigned)time (0));
        for(int i=0; i<10; i++) {
            b[i]=rand() % 361 + 1;
            if(b[i]<=23) {
                b[i]+=23;
            }
            s[b[i]]='/';
        }
        int x=rand() % 398 + 1;
        if(x<=38) {
            x+=38;
        }
        s[x]='!';
        print();
        input(a);
        return 0;
    }
    if(m==2) {
        srand ((unsigned)time (0));
        for(int i=0; i<20; i++) {
            b[i]=rand() % 361 + 1;
            if(b[i]<=23) {
                b[i]+=23;
            }
            s[b[i]]='/';
        }
        int x=rand() % 398 + 1;
        if(x<=38) {
            x+=38;
        }
        s[x]='!';
        print();
        input(a);
        return 0;
    }
    if(m==3) {
        srand ((unsigned)time (0));
        for(int i=0; i<30; i++) {
            b[i]=rand() % 361 + 1;
            if(b[i]<=23) {
                b[i]+=23;
            }
            s[b[i]]='/';
        }
        int x=rand() % 398 + 1;
        if(x<=38) {
            x+=38;
        }
        s[x]='!';
        print();
        input(a);
        return 0;
    }
    if(m==4) {
        srand ((unsigned)time (0));
        for(int i=0; i<40; i++) {
            b[i]=rand() % 361 + 1;
            if(b[i]<=23) {
                b[i]+=23;
            }
            s[b[i]]='/';
        }
        int x=rand() % 398 + 1;
        if(x<=38) {
            x+=38;
        }
        s[x]='!';
        print();
        input(a);
        return 0;
    }
    if(m==5) {
        srand ((unsigned)time (0));
        for(int i=0; i<50; i++) {
            b[i]=rand() % 361 + 1;
            if(b[i]<=23) {
                b[i]+=23;
            }
            s[b[i]]='/';
        }
        int x=rand() % 398 + 1;
        if(x<=38) {
            x+=38;
        }
        s[x]='!';
        print();
        input(a);
        return 0;
    }
    return 0;
}

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值