[ Foro de C ]

Pantalla en blanco(?)

18-Nov-2022 13:17
Invitado (eieggzs)
0 Respuestas

Estoy haciendo este programa y cuando lo corro, no aparece nada en la pantalla
Quien pueda ayudar, agradezco su respuesta

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <ctime>

int main()
{
int i = 1;
int alto = 23;
   int ancho = 40;
   int x, y, yi;
   char mapaJuego[alto][ancho];
   char jugador = 'A';
   char jugadormisil = '^';
   char enemigo = 'M';
   char enemigoBlindado = 'O';
   char enemigoMisil = 'U';
   char explosion = 'X';
   char direction = 'l';
   int puntuacion = 0;
   int victory = 1;
   int misilPreparado = 1;
   int enemigoPreparado = 0;
   int accion;
   int totalEnemigos = 0;
   int enemigosActuales = totalEnemigos;
   int drop = 0;
   int enemigoVelocidad = 1 + 10 * enemigosActuales / totalEnemigos;
   int bonus = totalEnemigos*20 - i;
   
   /*menú inicial*/
printf("\n \n     Bienvenido! \n \n \n");
   Sleep(1000);
   printf("  Deber%cs enfrentar a los s%cmbolos invasores que intentan acabar con tu PC. \n \n \n", 160, 161, 130);
   Sleep(2500);
   printf("  Tu sistema operativo depende de t%c. \n \n \n", 161);
   Sleep(2500);
   printf("               Buena suerte.");
   Sleep(1000);
   printf("\n \n \n Elija qu%c desea hacer (Escriba un n%cmero).", 130, 163);
   Sleep(500);
   printf("\n \n \n Space Invaders[1] \n Mejorar nave[2] \n Ver marcador[3] \n Retirarse[4] \n \n");
   scanf( "%d", &accion);
   
   switch(accion) {
    case 1:
    system("cls");
    /*Juego*/
    for (x = 0; x < ancho; x ++) {
       for (y = 0; y < alto; y ++) {
            if ((y+1) % 2 == 0 && y < 7 && x > 4
            && x < ancho - 5 && x % 2 ==0) {
               mapaJuego[y][x] = enemigo;
                totalEnemigos ++;
            }
            else if ((y+1) % 2 == 0 && y >= 7 && y < 9 && x > 4
            && x < ancho - 5 && x % 2 ==0){
                mapaJuego[y][x] = enemigoBlindado;
                totalEnemigos = totalEnemigos + 2;
            }
            else {
                mapaJuego[y][x] = ' ';
            }
        }
    }
   
    mapaJuego[alto - 1][ancho / 2] = jugador;
    char keyPress;
    while(enemigosActuales > 0 && victory) {
        misilPreparado ++;
       
        /*Mostrar el mundo*/
        system("cls");
        printf("     puntuacion:    %d", puntuacion);
        printf("\n");
            for (y = 0; y < alto; y ++) {
            printf("|");
                for (x = 0; x < ancho; x ++) {
                   printf("%c",mapaJuego[y][x]);
             }
            printf("|");
            printf("\n");
            }
           
            /*Ataque enemigo*/
        for (x = 0; x < ancho; x ++) {
           for (y = alto-1; y >= 0; y --) {
               if (i%2 == 0 && mapaJuego[y][x] == enemigoMisil
                && (mapaJuego[y+1][x] != enemigo & mapaJuego[y+1][x] != enemigoBlindado)){
                mapaJuego[y+1][x] = enemigoMisil;
                mapaJuego[y][x] = ' ';
                }
                else if (i%2 == 0 && mapaJuego[y][x] == enemigoMisil
                && (mapaJuego[y+1][x] == enemigo | mapaJuego[y+1][x] == enemigoBlindado)){
                   mapaJuego[y][x] = ' ';
                }
            }
            }
            for (x = 0; x < ancho; x ++) {
           for (y = 0; y < alto; y ++) {
              if ((i % 5) == 0 && (mapaJuego[y][x] == enemigoBlindado
              | mapaJuego[y][x] == enemigo) && (rand() % 15) > 13
              && mapaJuego[y+1][x] != jugadormisil) {
                  for (yi = y+1; yi < alto; yi ++) {
                      if (mapaJuego[yi][x] == enemigo
                      | mapaJuego[yi][x] == enemigoBlindado) {
                          enemigoPreparado = 0;
                           break;
                      }
                       enemigoPreparado = 1;
                   }
                    if (enemigoPreparado) {
                       mapaJuego[y+1][x] = enemigoMisil;
                    }
                }
                if (mapaJuego[y][x] == jugadormisil && mapaJuego[y-1][x] == enemigo) {
                   mapaJuego[y][x] = ' ';
                  mapaJuego[y-1][x] = explosion;
                  enemigosActuales --;
                   puntuacion = puntuacion + 50;
                }
               else if (mapaJuego[y][x] == jugadormisil
               && mapaJuego[y-1][x] == enemigoBlindado) {
                   mapaJuego[y][x] = ' ';
                   mapaJuego[y-1][x] = enemigo;
                   enemigosActuales --;
                   puntuacion = puntuacion + 50;
               }
               else if (mapaJuego[y][x] == jugadormisil
               && mapaJuego[y-1][x] == enemigoMisil) {
                   mapaJuego[y][x] = ' ';
               }
               else if (mapaJuego[y][x] == explosion) {
                   mapaJuego[y][x] = ' ';
               }
               else if ((i+1) % 2 == 0 && mapaJuego[y][x] == enemigoMisil
               && mapaJuego[y+1][x] == jugador) {
                   mapaJuego[y+1][x] = explosion;
                   mapaJuego[y][x] = ' ';
                   victory = 0;
               }
               else if (mapaJuego[y][x] == jugadormisil
               && mapaJuego[y-1][x] != enemigoMisil) {
                       mapaJuego[y][x] = ' ';
                       mapaJuego[y-1][x] = jugadormisil;
               }
           }
       }
           
            /*Actualizar dirección enemiga*/
        for (y = 0; y < alto; y ++) {
            if (mapaJuego[y][0] == enemigo) {
                direction = 'r';
                drop = 1;
                break;
            }
            if (mapaJuego[y][ancho-1] == enemigo){
                direction = 'l';
                drop = 1;
                break;
            }
        }
       
        /*Actualizar mapa*/
        if (i % enemigoVelocidad == 0) {
            if (direction == 'l') {
                for (x = 0; x < ancho - 1; x ++) {
                    for (y = 0; y < alto; y ++) {
                        if (drop && (mapaJuego[y-1][x+1] == enemigo
                            || mapaJuego[y-1][x+1] == enemigoBlindado)){
                            mapaJuego[y][x] = mapaJuego[y-1][x+1];
                            mapaJuego[y-1][x+1] = ' ';
                        }
                        else if (!drop && (mapaJuego[y][x+1] == enemigo
                            || mapaJuego[y][x+1] == enemigoBlindado)) {
                            mapaJuego[y][x] = mapaJuego[y][x+1];
                            mapaJuego[y][x+1] = ' ';
                        }
                    }
                }
            }
           else {
               for (x = ancho; x > 0; x --) {
                    for (y = 0; y < alto; y ++) {
                       if (drop && (mapaJuego[y-1][x-1] == enemigo
                           || mapaJuego[y-1][x-1] == enemigoBlindado)) {
                            mapaJuego[y][x] = mapaJuego[y-1][x-1];
                            mapaJuego[y-1][x-1] = ' ';
                       }
                       else if (!drop && (mapaJuego[y][x-1] == enemigo
                           || mapaJuego[y][x-1] == enemigoBlindado)) {
                            mapaJuego[y][x] = mapaJuego[y][x-1];
                            mapaJuego[y][x-1] = ' ';
                        }
                    }
                }
            }
            for (x = 0; x < ancho; x ++) {
                if (mapaJuego[alto - 1][x] == enemigo) {
                    victory = 0;
                }
            }
        }
           
            /*Control del jugador*/
            if(kbhit()){
            keyPress = getch();
        }
        else {
            keyPress = ' ';
        }
        if (keyPress == 'a') {
            for (x = 0; x < ancho; x = x+1) {
                if ( mapaJuego[alto-1][x+1] == jugador) {
                   mapaJuego[alto-1][x] = jugador;
                   mapaJuego[alto-1][x+1] = ' ';
                }
            }
        }

        if (keyPress == 'd') {
           for (x = ancho - 1; x > 0; x = x-1) {
               if ( mapaJuego[alto-1][x-1] == jugador) {
                    mapaJuego[alto-1][x] = jugador;
                    mapaJuego[alto-1][x-1] = ' ';
                }
            }
        }
        if (keyPress == 'm' && misilPreparado > 2) {
            for (x = 0; x < ancho; x = x+1) {
                if ( mapaJuego[alto-1][x] == jugador) {
                    mapaJuego[alto - 2][x] = jugadormisil;
                   misilPreparado = 0;
                }
            }
        }
        i ++;
        Sleep(50);
    }
    system("cls");
        printf("     puntuacion:    %d", puntuacion);
        printf("\n");
            for (y = 0; y < alto; y ++) {
            printf("|");
                for (x = 0; x < ancho; x ++) {
                    printf("%c",mapaJuego[y][x]);
                }
            printf("|");
            printf("\n");
            }
    Sleep(1000);
    system("cls");
    if (victory != 0) {
        printf("\n \n \n \n \n \n               FELICITACIONES! \n \n \n \n \n");
        Sleep(1000);
        printf("\n \n               puntuacion: %d", puntuacion);
        Sleep(1000);
        printf("\n \n               Bonus: %d", bonus);
        Sleep(1000);
        printf("\n \n               Puntuación Total: %d", puntuacion + bonus);
        printf("\n \n \n \n               Bien hecho");
        Sleep(1000);
        printf(", eres un H%croe.", 130);
        Sleep(1000);
        getch();
    }
    else {
        printf("\n \n \n \n \n \n               Has fallado.");
        Sleep(1000);
        printf("\n \n \n \n \n \n               Windows est%c perdido.", 160);
        Sleep(1000);
        printf("\n \n               Puntuación Total: %d", puntuacion);
        getch();
    }
       break;
   
case 2:
system("cls");
/*Mejoras*/
printf("     NO HAY NADA QUE VER (POR AHORA)");
       break;
       
   case 3:
system("cls");
/*Puntuaciones*/
printf("     NO HAY NADA QUE VER (POR AHORA)");
       break;
       
   case 4:
    printf("     Bien, lo entendemos");
       break;
   
   default:
    printf("Inv%clido", 160);
}
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)