You are on page 1of 7

#include <winbgim.

h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#define KEY_UP 72
#define KEY_LEFT 75
#define KEY_RIGHT 77
#define KEY_DOWN 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[9][9];
int i,j;
char l;
int px=1;
int py=1;

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][6]==3)&&(v[5][1]==3)&&(v[6][4]==3))
{cleardevice();
settextstyle(0,0,2);
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);

line(200,100,200,500);
line(250,150,250,450);
line(300,150,300,450);
line(450,150,450,450);
line(500,150,500,450);
line(550,150,550,450);
line(350,150,350,450);
line(400,150,400,450);
line(600,100,600,500);
//
line(200,100,600,100);
line(200,150,600,150);
line(200,200,600,200);
line(200,250,600,250);
line(200,300,600,300);
line(200,350,600,350);
line(200,400,600,400);
line(200,450,600,450);
line(200,500,600,500);

}
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, 8 );
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<8;i++)
{
for(j=0;j<8;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[5][1]==0)
{
v[5][1]=4;
}
if(v[1][6]==0)
{
v[1][6]=4;
}
if(v[6][4]==0)
{
v[6][4]=4;
}

}
x=200;
y=y+50;

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

}
void lvl()
{

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

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

}
}
}

v[2][2]=1;
v[5][3] = 1;
v[1][2] = 1;
v[4][6] = 1;
v[6][2] = 1;
v[6][1] = 1;
v[4][6] = 1;
v[4][5] = 1;

v[py][px] = 2;
v[1][2]=3;
v[2][2] = 3;
v[2][1] = 3;

v[5][1] = 4;
v[1][6] = 4;
v[6][4] = 4;

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