编译器在CodeBlocks和其他程序中无法正常工作

时间:2019-07-14 02:48:22

标签: c compiler-errors codeblocks

我的PC上的所有程序都无法正常运行。我和朋友做了一个小游戏,他们的电脑正常工作,但是在我看来,游戏的质感和其他功能不起作用,请不要正确编译! 这是我电脑上的编译游戏:

enter image description here

没有纹理,所有需要正确编译的东西!

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
#include <mmsystem.h>
#define INI 2

void hidecursor()
{
//    PlaySound(TEXT("pablovitar6.wav"), NULL, SND_LOOP | SND_ASYNC);
    system("color 0E");
    HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO info;
    info.dwSize = 100;
    info.bVisible = FALSE;
    SetConsoleCursorInfo(consoleHandle, &info);
}

char mapa[20][40] = {
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', 'P', 'P', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', 'P', 'P', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', 'P', '_', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', 'P', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', 'P', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', 'P', 'P', 'P', '_', '_', '_', 'P', 'P', 'P', 'P', 'P', '_', '_', '_', '*', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', 'P', '_', '_', '_', 'P', 'P', 'P', 'P', 'P', '_', 'P', 'P', 'P', 'P', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', 'P', '_', '_', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {'_', '_', '_', '_', '_', '_', '_', 'P', '_', 'B', '_', 'P', '_', '_', '_', '_', '_', '_', '_', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
    {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '_','_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_','_'},
};

char score[5][41] = {
    {'_', 'P', 'P', 'P', '_', 'P', 'P', 'P', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', '_', 'P', 'P','P', '_', 'P', 'P', 'P', '_', 'P', '_', '_', '_', 'P', '_', 'P', 'P', 'P', '_', '_', '_', 'P', '_','_'},
    {'_', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', 'P', '_', 'P', '_', 'P', '_', 'P', '_', 'P', '_','_', '_', 'P', '_', 'P', '_', 'P', 'P', '_', 'P', 'P', '_', 'P', '_', '_', '_', '_', 'P', 'P', '_','_'},
    {'_', '_', 'P', '_', '_', 'P', 'P', 'P', '_', 'P', '_', 'P', 'P', '_', 'P', 'P', '_', '_', 'P', 'P','P', '_', 'P', 'P', 'P', '_', 'P', '_', 'P', '_', 'P', '_', 'P', 'P', 'P', '_', '_', '_', 'P', '_','_'},
    {'_', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', '_', 'P', '_','P', '_', 'P', '_', 'P', '_', 'P', '_', 'P', '_', 'P', '_', 'P', '_', '_', '_', '_', '_', 'P', '_','_'},
    {'_', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', '_', '_', 'P', '_', 'P', '_', 'P', '_', 'P', 'P','P', '_', 'P', '_', 'P', '_', 'P', '_', '_', '_', 'P', '_', 'P', 'P', 'P', '_', '_', '_', 'P', '_','_'},
};

char game[15][25]={{"ppppppppppppppppppppppppp"},
                   {"pp    pp   pp ppp p    pp"},
                   {"p ppppp ppp p  p  p ppppp"},
                   {"p pp  p ppp p p p p   ppp"},
                   {"p ppp p     p ppp p ppppp"},
                   {"p ppp p ppp p ppp p ppppp"},
                   {"pp   pp ppp p ppp p    pp"},
                   {"ppppppppppppppppppppppppp"},
                   {"pp   pp ppp p    pp   ppp"},
                   {"p ppp p ppp p ppppp pp pp"},
                   {"p ppp p ppp p   ppp pp pp"},
                   {"p ppp p ppp p ppppp   ppp"},
                   {"p ppp pp p pp ppppp pp pp"},
                   {"pp   pppp ppp    pp ppp p"},
                   {"ppppppppppppppppppppppppp"}
                   };

char win[6][28]={{"pppppppppppppppppppppppppppp"},
                 {"pppp ppp  ppp pp pp  pp pppp"},
                 {"pppp pp pp pp pp pp p p pppp"},
                 {"pppp p pppp p pp pp pp  pppp"},
                 {"pppp   pppp   pp pp ppp pppp"},
                 {"ppppppppppppppppppppppppppp"},
                 };

struct tposicao{
    int x, y;
    int sentido;
    int ini_morto;
    int ini_tiro;
};
int posx, posy;
struct tposicao inimigos[INI];
struct tposicao tiro;
struct tposicao tiro_inimigo[INI];
int tem_tiro = 0;
int morto = 0;
int matotudo;

void gotoxy(int x, int y){
    COORD c;
    c.X = x -1;
    c.Y = y -1;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

void moldura(int ci, int cf, int li, int lf){
    int l,c;
    for(c=ci+1; c<=cf-1; c++){
        gotoxy(c, li);
        printf("%c", 205);
        gotoxy(c, lf);
        printf("%c", 205);
    }
    for(l=li+1; l<=lf-1; l++){
        gotoxy(ci, l);
        printf("%c", 186);
        gotoxy(cf, l);
        printf("%c", 186);
    }
    gotoxy(ci, li);
    printf("%c", 201);
    gotoxy(ci, lf);
    printf("%c", 200);
    gotoxy(cf, li);
    printf("%c", 187);
    gotoxy(cf, lf);
    printf("%c", 188);
}

void desenhamapa(){
    int l, c, ls, cs;

    moldura(9, 50, 1, 7);
    moldura(9, 50, 9, 29);

    for(ls=0; ls<5; ls++){
        for(cs=0; cs<40; cs++){
            gotoxy(10+cs,2+ls);
            switch(score[ls][cs]){
                case '*' : printf("%c", 1);
                break;
                case '_' : printf(" ");
                break;
                case 'P' : printf("%c", 177);
                break;
                default : printf("%c", score[ls][cs]);
            }
        }
    }

    for(l=0; l<19; l++){
        for(c=0; c<40; c++){
            gotoxy(10+c,10+l);
            switch(mapa[l][c]){
                case '*' : printf("%c", 1);
                break;
                case '_' : printf(" ");
                break;
                case 'P' : printf("%c", 177);
                break;
                default : printf("%c", mapa[l][c]);
            }
        }
    }
}

void gameover(){
int l,c;
for (l=0;l<15;l++){
    for(c=0;c<26;c++){
        gotoxy(22+c,6+l);
        switch(game[l][c]){
            case'p' : printf("%c",219);break;
            default:printf("%c",game[l][c]);
        };
    }
}}

void wingame(){
int l,c;
for (l=0;l<6;l++){
    for(c=0;c<27;c++){
        gotoxy(20+c,6+l);
        switch(win[l][c]){
            case'p' : printf("%c",219);break;
            default:printf("%c",win[l][c]);
        };
    }
}}

void movimentaperso(int tecla){
    mapa[posx][posy] = '_';
    if(tecla == 120){
        morto=1;
    }
    if(tecla == 80){
        if(mapa[posx+1][posy] == '_'){
            posx++;
        }
    }else if(tecla == 72){
        if(mapa[posx-1][posy] == '_'){
            posx--;
        }
    }else if(tecla == 77){
        if(mapa[posx][posy+1] == '_'){
            posy++;
        }
    }else if(tecla == 75){
        if(mapa[posx][posy-1] == '_'){
            posy--;
        }
    }
    if(tem_tiro == 0){
        if(tecla == 115 && (mapa[posx+1][posy] == '_' || mapa[posx+1][posy] == 'P' || mapa[posx+1][posy] == 'I' || mapa[posx+1][posy] == 'B')){
            tem_tiro = 1;
            Beep(1000,5);
            tiro.x = posx + 1;
            tiro.y = posy;
            tiro.sentido = 0;
            if(mapa[tiro.x][tiro.y] == 'P'){
                tem_tiro = 0;
                mapa[tiro.x][tiro.y] = '_';
            }else if(mapa[tiro.x][tiro.y] == 'I'){
                for(int i=0; i<INI; i++){
                    if(inimigos[i].x == tiro.x && inimigos[i].y == tiro.y){
                        printf("   Matou um!!!");
                        inimigos[i].ini_morto = 1;
                        tem_tiro = 0;
                        mapa[tiro.x][tiro.y] = '_';
                    }
                }
            }else if(mapa[tiro.x][tiro.y] == 'B'){
                morto = 1;
            }else{
                mapa[tiro.x][tiro.y] = '.';
            }
        }else if(tecla == 119 && (mapa[posx-1][posy] == '_' || mapa[posx-1][posy] == 'P' || mapa[posx-1][posy] == 'I' || mapa[posx-1][posy] == 'B')){
            tem_tiro = 1;
            Beep(1000,5);
            tiro.x = posx - 1;
            tiro.y = posy;
            tiro.sentido = 1;
            if(mapa[tiro.x][tiro.y] == 'P'){
                tem_tiro = 0;
                mapa[tiro.x][tiro.y] = '_';
            }else if(mapa[tiro.x][tiro.y] == 'I'){
                for(int i=0; i<INI; i++){
                    if(inimigos[i].x == tiro.x && inimigos[i].y == tiro.y){
                        printf("   Matou um!!!");
                        inimigos[i].ini_morto = 1;
                        tem_tiro = 0;
                        mapa[tiro.x][tiro.y] = '_';
                    }
                }
            }else if(mapa[tiro.x][tiro.y] == 'B'){
                morto = 1;
            }else{
                mapa[tiro.x][tiro.y] = '.';
            }
        }else if(tecla == 100 && (mapa[posx][posy+1] == '_' || mapa[posx][posy+1] == 'P' || mapa[posx][posy+1] == 'I' || mapa[posx][posy+1] == 'B')){
            tem_tiro = 1;
            Beep(1000,5);
            tiro.x = posx;
            tiro.y = posy + 1;
            tiro.sentido = 2;
            if(mapa[tiro.x][tiro.y] == 'P'){
                tem_tiro = 0;
                mapa[tiro.x][tiro.y] = '_';
            }else if(mapa[tiro.x][tiro.y] == 'I'){
                for(int i=0; i<INI; i++){
                    if(inimigos[i].x == tiro.x && inimigos[i].y == tiro.y){
                        printf("   Matou um!!!");
                        inimigos[i].ini_morto = 1;
                        tem_tiro = 0;
                        mapa[tiro.x][tiro.y] = '_';
                    }
                }
            }else if(mapa[tiro.x][tiro.y] == 'B'){
                morto = 1;
            }else{
                mapa[tiro.x][tiro.y] = '.';
            }
        }else if(tecla == 97 && (mapa[posx][posy-1] == '_' || mapa[posx][posy-1] == 'P' || mapa[posx][posy-1] == 'I' || mapa[posx][posy-1] == 'B')){
            tem_tiro = 1;
            Beep(1000,5);
            tiro.x = posx;
            tiro.y = posy - 1;
            tiro.sentido = 3;
            if(mapa[tiro.x][tiro.y] == 'P'){
                tem_tiro = 0;
                mapa[tiro.x][tiro.y] = '_';
            }else if(mapa[tiro.x][tiro.y] == 'I'){
                for(int i=0; i<INI; i++){
                    if(inimigos[i].x == tiro.x && inimigos[i].y == tiro.y){
                        printf("   Matou um!!!");
                        inimigos[i].ini_morto = 1;
                        tem_tiro = 0;
                        mapa[tiro.x][tiro.y] = '_';
                    }
                }
            }else if(mapa[tiro.x][tiro.y] == 'B'){
                morto = 1;
            }else{
                mapa[tiro.x][tiro.y] = '.';
            }
        }
    }

    mapa[posx][posy] = '*';
}


void funcao_tiro_ini(i){
    if(inimigos[i].x == posx && inimigos[i].y < posy && inimigos[i].ini_morto == 0){ // ini a esquerda
        tiro_inimigo[i].sentido = 0; // tiro a direita
        inimigos[i].ini_tiro = 1;
        Beep(1000,5);
        tiro_inimigo[i].x = inimigos[i].x;
        tiro_inimigo[i].y = inimigos[i].y + 1;
        if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'P'){
                inimigos[i].ini_tiro = 0;
                mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
        }else if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'B' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == '*'){
            morto = 1;
        }else{
            mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '.';
        }

    }else if(inimigos[i].x == posx && inimigos[i].y > posy && inimigos[i].ini_morto == 0){ // ini a direita
        tiro_inimigo[i].sentido = 1; // tiro a esquerda
        inimigos[i].ini_tiro = 1;
        Beep(1000,5);
        tiro_inimigo[i].x = inimigos[i].x;
        tiro_inimigo[i].y = inimigos[i].y - 1;
        if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'P'){
                inimigos[i].ini_tiro = 0;
                mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
        }else if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'B' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == '*'){
            morto = 1;
        }else{
            mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '.';
        }

    }else if(inimigos[i].x > posx && inimigos[i].y == posy && inimigos[i].ini_morto == 0){ // ini em cima
        tiro_inimigo[i].sentido = 2; // tiro pra baixo
        inimigos[i].ini_tiro = 1;
        Beep(1000,5);
        tiro_inimigo[i].x = inimigos[i].x -1;
        tiro_inimigo[i].y = inimigos[i].y;
        if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'P'){
                inimigos[i].ini_tiro = 0;
                mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
        }else if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'B' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == '*'){
            morto = 1;
        }else{
            mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '.';
        }

    }else if(inimigos[i].x < posx && inimigos[i].y == posy && inimigos[i].ini_morto == 0){ // ini em baixo
        tiro_inimigo[i].sentido = 3; // tiro pra cima
        inimigos[i].ini_tiro = 1;
        Beep(1000,5);
        tiro_inimigo[i].x = inimigos[i].x +1;
        tiro_inimigo[i].y = inimigos[i].y;
        if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'P'){
                inimigos[i].ini_tiro = 0;
                mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
        }else if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'B' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == '*'){
            morto = 1;
        }else{
            mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '.';
        }
    }
}



void movimentainimigo(){
    int chute, contaMorto=0;
    for(int i=0; i<INI; i++){
        if(inimigos[i].ini_tiro == 0){
            funcao_tiro_ini(i);
        }
        if(inimigos[i].ini_morto == 0){
            mapa[inimigos[i].x][inimigos[i].y] = '_';
            chute = rand()%4;
            switch(chute){
                case 0:
                    if(mapa[inimigos[i].x-1][inimigos[i].y] == '_'){
                        inimigos[i].x--;
                    }else if(mapa[inimigos[i].x-1][inimigos[i].y] == '*'){
                        morto=1;
                    }
                break;
                case 1:
                    if(mapa[inimigos[i].x][inimigos[i].y+1] == '_'){
                        inimigos[i].y++;
                    }else if(mapa[inimigos[i].x][inimigos[i].y+1] == '*'){
                        morto=1;
                    }
                break;
                case 2:
                    if(mapa[inimigos[i].x+1][inimigos[i].y] == '_'){
                        inimigos[i].x++;
                    }else if(mapa[inimigos[i].x+1][inimigos[i].y] == '*'){
                        morto=1;
                    }
                break;
                case 3:
                    if(mapa[inimigos[i].x][inimigos[i].y-1] == '_'){
                        inimigos[i].y--;
                    }else if(mapa[inimigos[i].x][inimigos[i].y-1] == '*'){
                        morto=1;
                    }
                break;
            }
            mapa[inimigos[i].x][inimigos[i].y] = 'I';
        }else{
            contaMorto++;
            if(contaMorto == INI){
             matotudo = 1;
            }
        }


    }
}


void movimentatiro_inimigo(int i){

    mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
    switch(tiro_inimigo[i].sentido){
        case 0:
            if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y+1] == '_' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y+1] == '*' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y+1] == 'P' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y+1] == 'B'){
                tiro_inimigo[i].y++; break; //pra direita
            }else{
                inimigos[i].ini_tiro = 0;
            }
        case 1:
            if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y-1] == '_' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y-1] == '*' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y-1] == 'P' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y-1] == 'B'){
                tiro_inimigo[i].y--; break; //pra esquerda
            }else{
                inimigos[i].ini_tiro = 0;
            }
        case 2:
            if(mapa[tiro_inimigo[i].x-1][tiro_inimigo[i].y] == '_' || mapa[tiro_inimigo[i].x-1][tiro_inimigo[i].y] == '*' || mapa[tiro_inimigo[i].x-1][tiro_inimigo[i].y] == 'P' || mapa[tiro_inimigo[i].x-1][tiro_inimigo[i].y] == 'B'){
                tiro_inimigo[i].x--; break; // pra baixo
            }else{
                inimigos[i].ini_tiro = 0;
            }
        case 3:
            if(mapa[tiro_inimigo[i].x+1][tiro_inimigo[i].y] == '_' || mapa[tiro_inimigo[i].x+1][tiro_inimigo[i].y] == '*' || mapa[tiro_inimigo[i].x+1][tiro_inimigo[i].y] == 'P' || mapa[tiro_inimigo[i].x+1][tiro_inimigo[i].y] == 'B'){
                tiro_inimigo[i].x++; break; // pra cima
            }else{
                inimigos[i].ini_tiro = 0;
            }
    }
    if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == '*' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'B'){
        printf("    vc se auto suicidou-se a si mesmo");
        morto=1;
    }else if(mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'P' || mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] == 'I'){
        inimigos[i].ini_tiro = 0;
    }
    if(inimigos[i].ini_tiro == 0){
        mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '_';
    }else{
        mapa[tiro_inimigo[i].x][tiro_inimigo[i].y] = '.';
    }

}

void movimentatiro(){

    mapa[tiro.x][tiro.y] = '_';
    switch(tiro.sentido){
        case 0:
            if(mapa[tiro.x+1][tiro.y] == '_' || mapa[tiro.x+1][tiro.y] == '*' || mapa[tiro.x+1][tiro.y] == 'P' || mapa[tiro.x+1][tiro.y] == 'I' || mapa[tiro.x+1][tiro.y] == 'B'){
                tiro.x++; break; //pra baixo
            }else{
                tem_tiro = 0;
            }
        case 1:
            if(mapa[tiro.x-1][tiro.y] == '_' || mapa[tiro.x-1][tiro.y] == '*' || mapa[tiro.x-1][tiro.y] == 'P' || mapa[tiro.x-1][tiro.y] == 'I' || mapa[tiro.x-1][tiro.y] == 'B'){
                tiro.x--; break; //pra cima
            }else{
                tem_tiro = 0;
            }
        case 2:
            if(mapa[tiro.x][tiro.y+1] == '_' || mapa[tiro.x][tiro.y+1] == '*' || mapa[tiro.x][tiro.y+1] == 'P' || mapa[tiro.x][tiro.y+1] == 'I' || mapa[tiro.x][tiro.y+1] == 'B'){
                tiro.y++; break; //direita
            }else{
                tem_tiro = 0;
            }
        case 3:
            if(mapa[tiro.x][tiro.y-1] == '_' || mapa[tiro.x][tiro.y-1] == '*' || mapa[tiro.x][tiro.y-1] == 'P' || mapa[tiro.x][tiro.y-1] == 'I' || mapa[tiro.x][tiro.y-1] == 'B'){
                tiro.y--; break; //esquerda
            }else{
                tem_tiro = 0;
            }
    }
    if(mapa[tiro.x][tiro.y] == 'I'){
        for(int i=0; i<INI; i++){
            if(inimigos[i].x == tiro.x && inimigos[i].y == tiro.y){
                printf("   Matou um!!!");
                inimigos[i].ini_morto = 1;
            }
        }
        tem_tiro = 0;
    }else if(mapa[tiro.x][tiro.y] == '*' || mapa[tiro.x][tiro.y] == 'B'){
        printf("    vc se auto suicidou-se a si mesmo");
        morto=1;
    }else if(mapa[tiro.x][tiro.y] == 'P'){
        tem_tiro = 0;
    }
    if(tem_tiro == 0){
        mapa[tiro.x][tiro.y] = '_';
    }else{
        mapa[tiro.x][tiro.y] = '.';
    }

}


main(){
    hidecursor();
    int retarda=0;
    int retardatiro=0;
    int retarda_tiro_ini = 0;
    posx = posy = 15;
    char tecla;
    srand(time(NULL));
    inimigos[0].x=2;
    inimigos[0].y=2;
    inimigos[0].ini_morto = 0;
    inimigos[1].x=3;
    inimigos[1].y=3;
    inimigos[1].ini_morto = 0;
    inimigos[2].x=10;
    inimigos[2].y=10;
    inimigos[2].ini_morto = 0;
    inimigos[3].x=13;
    inimigos[3].y=2;
    inimigos[3].ini_morto = 0;
    do{
        desenhamapa();
        if(kbhit()){
            tecla = getch();
            movimentaperso(tecla);
        }
        if(retarda %15 ==0){
            movimentainimigo();
            retarda=0;
        }
        retarda++;
        if(tem_tiro == 1){
            if(retardatiro % 3 == 0){
                movimentatiro();
                retardatiro = 0;
            }
            retardatiro++;
        }

        for(int i = 0; i<INI; i++){
            if(inimigos[i].ini_tiro == 1){
                if(retarda_tiro_ini % 3 == 0){
                    movimentatiro_inimigo(i);
                    retarda_tiro_ini = 0;
                }
                retarda_tiro_ini++;
            }
        }

        if(matotudo == 1){
            system("cls");
            wingame();
            printf ("\n\n\n\n\n\n\n\n\n\n\n");
        }

        if(morto != 0){
            system("cls");
            gameover();
            printf ("\n\n\n\n\n\n\n\n\n\n\n");
        }
    }while(tecla != 27 && morto == 0 && matotudo == 0);

}

0 个答案:

没有答案