问题标题: 大家一起找bug

0
0
已解决
陈则霖
陈则霖
资深光能
资深光能

#include<iostream>
#include<windows.h>
#include<map>
using namespace std;
int l,r;
int map1[100][100]={
    {0,0,0,0,0,0,0,0,0,0,0},
    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
void cls()
{    
    Sleep(100);
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coordScreen = { 0, 0 };   
    SetConsoleCursorPosition( hConsole, coordScreen );
}
void output(){
    for(int i=1;i<=10;i++){
        for(int j=1;j<=40;j++){
            switch(map1[i][j]){
                case 0:{
                    cout<<"  ";
                    break;
                }
                case 1:{
                    cout<<"■";
                    break;
                }
                case 2:{
                    cout<<"♀";
                    l=i;r=j;
                    break;
                }
                case 3:{
                    cout<<"·";
                    break;
                }
            }
        }
        cout<<endl;
    }
}
bool u=true;
int xx,yy;
int xx1,yy1,xx2,yy2;
long long front,after; 
struct node{
    int coordinate_x;
    int coordinate_y;
    char direction;
}a[1000000];
int cnt;
void go(){
    int flag=0;
    cls();
    output();
    while(true){
        cls();    
        output();
        if(GetAsyncKeyState('K')&&map1[l][r-1]!=1&&u==false){
            after++;
            a[after].direction='a'; 
            a[after].coordinate_x=l; 
            a[after].coordinate_y=r-1; 
            map1[l][r-1]=3;
        }
        if(GetAsyncKeyState('K')&&map1[l][r+1]!=1&&u==true){
            after++;
            a[after].direction='f'; 
            a[after].coordinate_x=l; 
            a[after].coordinate_y=r+1; 
            map1[l][r+1]=3;
        }
        if(GetAsyncKeyState('D')&&map1[l][r+1]!=1){
            u=true;
            map1[l][r]=0;
            r++;
            map1[l][r]=2;
        }
        if(GetAsyncKeyState('A')&&map1[l][r-1]!=1){
            u=false;
            map1[l][r]=0;
            r--;
            map1[l][r]=2;
        }
        if(GetAsyncKeyState('W')&&map1[l-1][r]!=1&&flag==0){
            map1[l][r]=0;
            l--;
            map1[l][r]=2;
            flag++;
        }
        for(int i=front;i<=after;i++){
            if(map1[a[i].coordinate_x][a[i].coordinate_y+1]==1||map1[a[i].coordinate_x][a[i].coordinate_y-1]==1){
                front++;
                map1[a[i].coordinate_x][a[i].coordinate_y]=0;
                continue;
            }
            if(a[i].direction=='a'){
                if(map1[a[i].coordinate_x][a[i].coordinate_y]!=2){
                    map1[a[i].coordinate_x][a[i].coordinate_y]=0;
                    a[i].coordinate_y--;
                    map1[a[i].coordinate_x][a[i].coordinate_y]=3;
                }else{
                    a[i].coordinate_y--;
                }
            }
            if(a[i].direction=='f'){
                if(map1[a[i].coordinate_x][a[i].coordinate_y]!=2){
                    map1[a[i].coordinate_x][a[i].coordinate_y]=0;
                    a[i].coordinate_y++;
                    map1[yy1][a[i].coordinate_y]=3;
                }else{
                    a[i].coordinate_y++;
                }
            }
        }
        if(flag==1&&map1[l-1][r]!=1){
            map1[l][r]=0;
            l--;
            map1[l][r]=2;
            flag++;
            continue;
        }
        if(flag==2&&map1[l+1][r]!=1){
            map1[l][r]=0;
            l++;
            map1[l][r]=2;
            flag++;
            continue;
        }else if(flag==2){
            flag++;
        }
        if(flag==3&&map1[l+1][r]!=1){
            map1[l][r]=0;
            l++;
            map1[l][r]=2;
            flag=0;
            continue;
        }else if(flag==3){
            flag=0;
        }
        while(map1[l+1][r]==0&&flag==0){
            map1[l][r]=0;
            l++;
            map1[l][r]=2;
            break;
        }
    }
    cls();
    cout<<"Gave Over!!!";
    Sleep(2000);
    return ;

int main(){
    go();
    return 0;
}

 

 

 

 

 

 

这是一段枪战的实验代码,现在只有左边能够发射出子弹,右边发射不出来。请各位大佬帮忙找一下bug。

最先回答并且正确的人奖励50酷町豆。

 

很急!
 


0
已采纳
姜宇轩
姜宇轩
中级天翼
中级天翼

我不知道为什错,很抱歉没帮到你。

但你这里错了,是Game Over,不是Gave Over。

我要回答