hacer un juego de laberinto

Iniciado por TaniaSRT, 17 Julio 2017, 21:07 PM

0 Miembros y 1 Visitante están viendo este tema.

TaniaSRT

Buenas soy nueva en este for, queria ver si podian ayudarme con este codigo,
soy estudiante de programacion en videojuegos y como proyecto final nos dejaron hacer un juego de laberinto con las siguentes especificaciones: debe tener 5 enemigos,
unos moviendo en horizontal y otros en vertical. el enemigo puede matar al jugador y se termina el juego. dibujar 10 monedas, el jugador puede recoger las monedas,
el jugador gana si colecciona las 10 monedas. al terminar el juego imprimir si gane o perdi.

hasta ahorita llevo esto pero la verdad estoy batallando con los muros y no tengo ni idea como hacer que el jugador coleccione las monedas ni como hacerlas.


Código (cpp) [Seleccionar]
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <Personaje.h>
#include <Enemigo.h>

using namespace std;

char Mundo[79][20]= {' '};

void goxy(int x, int y)
{
   COORD coord;
   coord.X = x; coord.Y = y;
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void ImprimirMundo()
{
   for(int y=0; y<20; y++)
   {
       for(int x=0; x<79; x++)
       {
           if(Mundo[x][y] == 'm')
               cout << (char)219;
           else
               cout << Mundo[x][y];
       }
       cout << endl;
   }
}

int main()
{
   for(int y=0; y<20; y++) ///muro izquiedo
   {
       Mundo[5][y]= 'm';
   }
   for(int y=0; y<20; y++) ///muro derecho
   {
       Mundo[78][y]= 'm';
   }
   for(int x=5; x<78; x++) ///muro arriba
   {
       Mundo[x][0]= 'm';
   }
   for(int x=2; x<75; x++) ///muro derecho
   {
       Mundo[x][79]= 'm';
   }
   for(int y=20; y<25; y++) ///muro y0
   {
       Mundo[26][y]= 'm';
   }
   for(int y=25; y<30; y++) ///muro y1
   {
       Mundo[16][y]= 'm';
   }
   for(int y=0; y<5; y++) ///muro y2
   {
       Mundo[10][y]= 'm';
   }
   for(int y=0; y<5; y++) ///muro y3
   {
       Mundo[59][y]= 'm';
   }
   for(int y=18; y<30; y++) ///muro y4
   {
       Mundo[35][y]= 'm';
   }
   for(int y=18; y<28; y++) ///muro y5
   {
       Mundo[45][y]= 'm';
   }
   for(int x=18; x<21; x++) ///muro 0
   {
       Mundo[x][29]= 'm';
   }
   for(int x=18; x<21; x++) ///muro 1
   {
       Mundo[x][32]= 'm';
   }
   for(int x=17; x<20; x++) ///muro 2
   {
       Mundo[x][34]= 'm';
   }
   for(int x=18; x<21; x++) ///muro 3
   {
       Mundo[x][36]= 'm';
   }
   for(int x=18; x<21; x++) ///muro 4
   {
       Mundo[x][38]= 'm';
   }
   for(int x=24; x<28; x++) ///muro 5
   {
       Mundo[x][30]= 'm';
   }
   for(int x=24; x<28; x++) ///muro 6
   {
       Mundo[x][33]= 'm';
   }
   for(int x=24; x<28; x++) ///muro 7
   {
       Mundo[x][36]= 'm';
   }
   for(int x=30; x<34; x++) ///muro 8
   {
       Mundo[x][35]= 'm';
   }
   for(int x=19; x<24; x++) ///muro 9
   {
       Mundo[x][23]= 'm';
   }
   for(int x=19; x<27; x++) ///muro 10
   {
       Mundo[x][25]= 'm';
   }
   for(int x=6; x<9; x++) ///muro 11
   {
       Mundo[x][3]= 'm';
   }
   for(int x=6; x<15; x++) ///muro 12
   {
       Mundo[x][28]= 'm';
   }
   for(int x=6; x<15; x++) ///muro 13
   {
       Mundo[x][30]= 'm';
   }
   for(int x=6; x<15; x++) ///muro 14
   {
       Mundo[x][32]= 'm';
   }
   for(int x=6; x<15; x++) ///muro 15
   {
       Mundo[x][34]= 'm';
   }
   for(int x=6; x<15; x++) ///muro 16
   {
       Mundo[x][36]= 'm';
   }
   for(int x=18; x<25; x++) ///muro 17
   {
       Mundo[x][5]= 'm';
   }
   for(int x=18; x<25; x++) ///muro 18
   {
       Mundo[x][40]= 'm';
   }


   system("pause");

   system("Color 8B");

   Personaje jugador;
   jugador.SetPos(6, 1);
   Mundo[6][1] = 'P';

   Enemigo rival;
   rival.SetPos(11, 13);
   Mundo[11][13] = 'E';


   int keypress=0;
   bool SalirJuego= false;

   while(SalirJuego==false)
   {
       while(!kbhit())///hasta que se presiones una tecla
       {
           ///loop
           rival.MoverDerecha(Mundo);

           if (Mundo[rival.x][rival.y] == Mundo[jugador.x][jugador.y])
           {
               SalirJuego = true;
           }




           ///dibujar
           goxy(0,0);
           ImprimirMundo();
       }

       ///obtenemos tecla que se presiono y hacemos accion segun tecla presionada
       keypress = getch();

       if(keypress==72)///arriba
       {
           jugador.MoverArriba(Mundo);
       }
       if(keypress==80)///abajo
       {
           jugador.MoverAbajo(Mundo);
       }
       if(keypress==75)///izq.
       {
           jugador.MoverIzquierda(Mundo);
       }
       if(keypress==77)///der.
       {
           jugador.MoverDerecha(Mundo);
       }
       if(keypress ==27)
       {
           SalirJuego= true;
       }

   }///while(SalirJuego==false)

   return 0;
}



· Los titulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex

ivancea96

Pues las monedas... como los muros. Las dibujas. La única diferencia es que puedes pasar por encima de ellas, y cuando lo haces, las eliminas del mapa (y añades 1 moneda al jugador)