You are on page 1of 9

#include <winbgim.

h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#define KEY_ARRIBA 72
#define KEY_IZQUIERDA 75
#define KEY_DERECHA 77
#define KEY_ABAJO 80

using namespace std;


void waitForLeftMouseClick();
void waitForLeftMouseClick();
void piso(int x, int y);
void muro(int x, int y);
void rexj(int x, int y);
void caja(int x, int y);
void lugar_caja(int x, int y);
void lvl();
void dib();
int v[12][16];
int i,j;
char l;
int px=8;
int py=5;

int main()
{
initwindow(2000,2000);

lvl();
dib();
bool a=true;

//mover
while(a)
{
l=getch();
if(l==KEY_RIGHT)
{

if((v[px][py+1]==0)||(v[px][py+1]==4))
{

v[px][py]=0;
v[px][py+1]=2;
py=py+1;
cleardevice();
dib(); }
else {
if((v[px][py+1]==3)&&((v[px][py+2]==0)||(v[px][py+2]==4)))
{

v[px][py]=0;
v[px][py+1]=2;
v[px][py+2]=3;
py++;
cleardevice();
dib(); }
else{
v[px][py]=2;
}
}
}

if(l==KEY_LEFT)
{

if((v[px][py-1]==0)||(v[px][py-1]==4))
{
v[px][py]=0;
v[px][py-1]=2;
py--;
cleardevice();
dib(); }
else {
if((v[px][py-1]==3)&&((v[px][py-2]==0)||(v[px][py-2]==4)))
{

v[px][py]=0;
v[px][py-1]=2;
v[px][py-2]=3;
py--;
cleardevice();
dib(); }
else{
v[px][py]=2;
}
}

}
if(l==KEY_UP)
{

if((v[px-1][py]==0)||(v[px-1][py]==4))
{
v[px][py]=0;
v[px-1][py]=2;
px--;
cleardevice();
dib(); }
else {
if((v[px-1][py]==3)&&((v[px-2][py]==0)||(v[px-2][py]==4)))
{

v[px][py]=0;
v[px-1][py]=2;
v[px-2][py]=3;
px--;
cleardevice();
dib(); }
else{
v[px][py]=2;
}

}
if(l==KEY_DOWN)
{

if((v[px+1][py]==0)||(v[px+1][py]==4))
{
v[px][py]=0;
v[px+1][py]=2;
px++;
cleardevice();
dib(); }
else {
if((v[px+1][py]==3)&&((v[px+2][py]==0)||(v[px+2][py]==4)))
{

v[px][py]=0;
v[px+1][py]=2;
v[px+2][py]=3;
px++;
cleardevice();
dib(); }
else{
v[px][py]=2;
}

}
}
if((v[1][1]==3)&&(v[1][2]==3)&&(v[1][3]==3)&&(v[1][4]==3)&&(v[1][4]==3)&&(v[1]
[5]==3)&&( v[1][6]==3)&&(v[3][9]==3)&&(v[7][9]==3)&&(v[8][9]==3)&&( v[7]
[8]==3)&&( v[8][8]==3)&&(v[9][10]==3)&&( v[3][14]==3)&&(v[2][14]==3)&&( v[1]
[14]==3)&&(v[10][14]==3))
{cleardevice();
settextstyle(0,0,8);
setcolor(4);
outtextxy(500,250,"Ganaste!");
a=false; }
}

// while(!kbhit()); // wait for user to press a key


waitForLeftMouseClick(); // use one or the other of these--not both

closegraph(); //close graphics window


return 0;
}

void piso(int x, int y)


{
setfillstyle(1,3);
bar(x,y,x+50,y+50);
setcolor(9);
}
void muro(int x, int y)
{

setfillstyle(8, 1);
bar( x,y,x+50,y+50 );
setcolor(15);
line(x,y+16,x+50,y+16);
line(x,y+32,x+50,y+32);
line(x,y+49,x+50,y+49);
line(x+16,y,x+16,y+16);
line(x+32,y+16,x+32,y+32);
line(x+16,y+32,x+16,y+50);
}
void rexj(int x, int y)
{
setcolor(15);
circle(x+25,y+5,5);//cabeza
line(x+25,y+10,x+25,y+40);//cuerpo
line(x+25,y+15,x+35,y+25); //mano dere
line(x+25,y+15,x+15,y+25); //mano izquier
line(x+25,y+40,x+15,y+50); //Pie 1
line(x+25,y+40,x+35,y+50); //Pie 2
}
void caja(int x, int y)
{
setfillstyle(8, 14 );
bar(x,y,x+50,y+50);
setfillstyle(3, 4 );
bar(x+5,y+5,x+45,y+45);

}
void lugar_caja(int x, int y)
{

setcolor(0);
setfillstyle(9,15);
fillellipse(x+25,y+25,25,25);
setfillstyle(11,2);
fillellipse(x+25,y+25,15,15);

void dib()
{

int x=200,y=100;

for(i=0;i<12;i++)
{
for(j=0;j<16;j++)
{
if(v[i][j] == 0)
{
piso(x,y);
x = x +50;
}

if(v[i][j] == 1)
{
muro(x,y);
x = x +50;
}

if(v[i][j] == 2)
{
rexj(x,y);
x = x +50;
}

if(v[i][j] == 3)
{
caja(x,y);
x=x+50;
}

if(v[i][j] == 4)
{
lugar_caja(x,y);
x = x+50;
}
if(v[1][1]==0)
{
v[1][1]=4;
}

if(v[1][2]==0)
{
v[1][2]=4;
}

if(v[1][3]==0)
{
v[1][3]=4;
}

if(v[1][4]==0)
{
v[1][4]=4;
}
if(v[1][5]==0)
{
v[1][5]=4;
}
if(v[1][6]==0)
{
v[1][6]=4;
}
if(v[3][9]==0)
{
v[3][9]=4;
}
if(v[7][9]==0)
{
v[7][9]=4;
}
if(v[7][8]==0)
{
v[7][8]=4;
}

if(v[8][8]==0)
{
v[8][8]=4;
}

if(v[9][10]==0)
{
v[9][10]=4;
}

if(v[10][14]==0)
{
v[10][14]=4;
}

if(v[1][14]==0)
{
v[1][14]=4;
}
if(v[2][14]==0)
{
v[2][14]=4;
}
if(v[3][14]==0)
{
v[3][14]=4;
}
if(v[8][9]==0)
{
v[8][9]=4;
}

}
x=200;
y=y+50;

for(i=0;i<12;i++)
{
for(j=0;j<16;j++)
{
cout<<v[i][j]<<" ";
}cout<<endl;
}

}
void lvl()
{

for(i=0;i<12;i++)
{
for(j=0;j<16;j++)
{
if((i==12-1)||(i==0)||(j==0)||(j==16-1))
{
v[i][j]=1;

}
else
{
v[i][j]=0;

}
}
}
//lugar cajas
v[1][1]=4;
v[1][2]=4;
v[1][3]=4;
v[1][4]=4;
v[1][5]=4;
v[1][6]=4;
v[3][9]=4;
v[7][9]=4;
v[8][9]=4;
v[7][8]=4;
v[8][8]=4;
v[9][10]=4;
v[10][14]=4;
v[1][14]=4;
v[2][14]=4;
v[3][14]=4;

//muro
v[2][1]=1;
v[2][3]=1;
v[2][2]=1;
v[2][4]=1;
v[2][5]=1;
v[2][6]=1;
v[2][7]=1;
v[2][8]=1;
v[2][9]=1;
v[2][10]=1;
v[3][10]=1;
v[4][10]=1;
v[5][10]=1;
v[6][10]=1;
v[7][10]=1;
v[8][10]=1;
v[7][7]=1;
v[8][7]=1;
v[9][7]=1;
v[10][7]=1;

v[7][5]=1;
v[9][5]=1;
v[7][3]=1;
v[8][3]=1;
v[9][3]=1;
v[10][3]=1;
v[7][2]=1;
v[8][2]=1;
v[9][2]=1;
v[10][2]=1;
v[7][1]=1;
v[8][1]=1;
v[9][1]=1;
v[10][1]=1;

v[3][12]=1;
v[4][12]=1;
v[5][12]=1;
v[6][12]=1;
v[7][12]=1;
v[8][12]=1;

v[1][13]=1;
v[2][13]=1;
v[3][13]=1;
v[4][13]=1;
v[5][13]=1;
v[6][13]=1;
v[7][13]=1;
v[8][13]=1;
//rexj

v[px][py]=2;
//cajas

v[4][2]=3;
v[4][3]=3;
v[4][5]=3;
v[4][7]=3;
v[4][8]=3;
v[5][4]=3;
v[5][7]=3;
v[6][3]=3;
v[6][5]=3;
v[6][7]=3;
v[6][9]=3;
v[7][4]=3;
v[7][6]=3;
v[9][6]=3;
v[9][9]=3;
v[10][12]=3;

void waitForLeftMouseClick()
{
clearmouseclick(WM_LBUTTONDOWN);
const int DELAY = 50;
int x, y;
while (!ismouseclick(WM_LBUTTONDOWN))
delay(DELAY);
getmouseclick(WM_LBUTTONDOWN, x, y);

You might also like