Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <windows.h>
- using namespace std;
- using namespace System;
- void Dibujar_mapa(int **mapa)
- {
- for (int i = 0; i<25; i++)
- {
- for (int j = 0; j<80; j++)
- {
- if (mapa[i][j] == 0)
- cout << " ";
- if (mapa[i][j] == 1)
- {
- Console::ForegroundColor = ConsoleColor::Black;
- cout << char(219);
- }
- if (mapa[i][j] == 2)
- {
- Console::ForegroundColor = ConsoleColor::DarkBlue;
- cout << char(219);
- }
- }
- }
- }
- void Mapa1(int **mapa)
- {
- int matriz[25][80] = { { 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,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2 },
- { 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,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,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,2,2,2,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,2,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,2,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,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,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,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,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,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,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,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,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,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,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,1,1,1,1,1,2,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,2,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,2,2,2,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,2,2,2,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,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,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,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } };
- for (int i = 0; i<25; i++)
- for (int j = 0; j<80; j++)
- mapa[i][j] = matriz[i][j];
- Dibujar_mapa(mapa);
- }
- void Mapa2(int **mapa)
- {
- int matriz[25][80] = { { 1,1,1,1,1,1,1,1,1,2,2,2,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,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,1,2,2,2,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,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,1,2,2,2,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,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,2,2,2,2,2,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,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,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,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,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,2,1,2,1,2,1,2,2,2,2,2,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,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,2,1,2,1,2,1,2,2,2,2,2,2,1,2,1,2,1,2,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,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,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,2,1,2,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,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,2,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,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,2,1,2,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,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,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,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1 },
- { 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1 } };
- for (int i = 0; i<25; i++)
- for (int j = 0; j<80; j++)
- mapa[i][j] = matriz[i][j];
- Dibujar_mapa(mapa);
- }
- void borrarpersonaje(int x, int y)
- {
- Console::SetCursorPosition(x, y);
- cout << " ";
- Console::SetCursorPosition(x+1, y);
- cout << " ";
- Console::SetCursorPosition(x, y+1);
- cout << " ";
- Console::SetCursorPosition(x+1, y+1);
- cout << " ";
- }
- void dibujarpersonaje(int x, int y)
- {
- Console::SetCursorPosition(x, y);
- Console::BackgroundColor = ConsoleColor::Black;
- Console::ForegroundColor = ConsoleColor::Green;
- cout << char(219);
- Console::SetCursorPosition(x+1, y);
- Console::BackgroundColor = ConsoleColor::Black;
- Console::ForegroundColor = ConsoleColor::Green;
- cout << char(219);
- Console::SetCursorPosition(x, y+1);
- Console::BackgroundColor = ConsoleColor::Black;
- Console::ForegroundColor = ConsoleColor::Green;
- cout << char(219);
- Console::SetCursorPosition(x+1, y+1);
- Console::BackgroundColor = ConsoleColor::Black;
- Console::ForegroundColor = ConsoleColor::Green;
- cout << char(219);
- }
- void moverpersonaje(int &x, int &y, int dx, int dy, int **matriz)
- {
- dx = dy = 0;
- if (_kbhit())
- {
- char teclapresionada = _getch();
- teclapresionada = toupper(teclapresionada);
- switch (teclapresionada)
- {
- case 72: dy = -1; dx = 0; break;
- case 80: dy = 1; dx = 0; break;
- case 75: dx = -1; dy = 0; break;
- case 77: dx = 1; dy = 0;
- }
- }
- if (x + dx < 0 || x + dx>70 || (matriz[y][x + dx] == 2) || (matriz[y][x + dx] == 2))
- {
- dx = 0;
- }
- if (y + dy < 0 || y + dy>19 || (matriz[y + dy][x] == 2) || (matriz[y+dy][x] == 2))
- {
- dy = 0;
- }
- if (x + dx < 0 || x + dx>70 || (matriz[y][x + dx] == 0) || (matriz[y][x + dx] == 0))
- {
- dx = 0;
- }
- if (y + dy < 0 || y + dy>19 || (matriz[y + dy][x] == 0) || (matriz[y + dy][x] == 0))
- {
- dy = 0;
- }
- if (x+1 + dx < 0 || x+1 + dx>70 || (matriz[y][x+1 + dx] == 2) || (matriz[y][x+1 + dx] == 2))
- {
- dx = 0;
- }
- if (y + dy < 0 || y + dy>19 || (matriz[y + dy][x+1] == 2) || (matriz[y + dy][x+1] == 2))
- {
- dy = 0;
- }
- if (x+1 + dx < 0 || x+1 + dx>70 || (matriz[y][x+1 + dx] == 0) || (matriz[y][x+1 + dx] == 0))
- {
- dx = 0;
- }
- if (y + dy < 0 || y + dy>19 || (matriz[y + dy][x+1] == 0) || (matriz[y + dy][x+1] == 0))
- {
- dy = 0;
- }
- if (x + dx < 0 || x + dx>70 || (matriz[y+1][x + dx] == 2) || (matriz[y+1][x + dx] == 2))
- {
- dx = 0;
- }
- if (y+1 + dy < 0 || y+1 + dy>19 || (matriz[y+1 + dy][x] == 2) || (matriz[y+1 + dy][x] == 2))
- {
- dy = 0;
- }
- if (x + dx < 0 || x + dx>70 || (matriz[y+1][x + dx] == 0) || (matriz[y+1][x + dx] == 0))
- {
- dx = 0;
- }
- if (y+1 + dy < 0 || y+1 + dy>19 || (matriz[y+1 + dy][x] == 0) || (matriz[y+1 + dy][x] == 0))
- {
- dy = 0;
- }
- if (x+1 + dx < 0 || x+1 + dx>70 || (matriz[y+1][x+1 + dx] == 2) || (matriz[y+1][x+1 + dx] == 2))
- {
- dx = 0;
- }
- if (y+1 + dy < 0 || y+1 + dy>19 || (matriz[y+1 + dy][x+1] == 2) || (matriz[y+1 + dy][x+1] == 2))
- {
- dy = 0;
- }
- if (x+1 + dx < 0 || x+1 + dx>70 || (matriz[y+1][x+1 + dx] == 0) || (matriz[y+1][x+1 + dx] == 0))
- {
- dx = 0;
- }
- if (y+1 + dy < 0 || y+1 + dy>19 || (matriz[y+1 + dy][x+1] == 0) || (matriz[y+1 + dy][x+1] == 0))
- {
- dy = 0;
- }
- x = x + dx;
- y = y + dy;
- dibujarpersonaje(x, y);
- Sleep(10);//retardo
- borrarpersonaje(x, y);
- }
- void controlador(int &xpersonaje, int &ypersonaje, int dx, int dy, int ** matriz)
- {
- while (1)
- moverpersonaje(xpersonaje, ypersonaje, dx, dy, matriz);
- }
- void main()
- {
- Console::SetWindowSize(80, 26);
- Console::CursorVisible = false;
- int **matriz, xpersonaje, ypersonaje, dx, dy;
- matriz = new int*[25];
- for (int i = 0; i<25; i++)
- matriz[i] = new int[80];
- xpersonaje = 43;
- ypersonaje = 12;
- dx = dy = 0;
- Mapa1(matriz);
- controlador(xpersonaje, ypersonaje, dx, dy, matriz);
- moverpersonaje(xpersonaje, ypersonaje, dx, dy, matriz);
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement