Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Codigo Pacman
Codigo Pacman
contacto: deividcoptero@gmail.com
www.youtube.com/user/deividcoptero */
#include <windows.h>
#include <iostream>
#include <conio.h>
//#include <stdlib.h>
#include <stdio.h>
//#include <ctype.h>
//#pragma hdrstop
//#include <tchar.h>
//#pragma argsused
#define IZQUIERDA 75
#define DERECHA 77
#define ABAJO 80
#define ESC 27
#define ENTER 13
int backcolor=0;
int dir = 0;
int x=39,y=22;
int anteriorpx,anteriorpy;
char tecla;
int vidas = 3;
int color[7] = {
0x009,
0x00E,
0x00C,
0x002,
0x00B,
0x005,
0x00F
};
HANDLE hCon;
COORD dwPos;
dwPos.X = x;
dwPos.Y = y;
hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon,dwPos);
char mapa[50][100] = {
" ",
" Y_DXXXXXC_DXXXXXXXC_DXC_DXXXXXXXC_DXXXXXC_Y",
" Y________|_________|___|_________|________Y",
" Y_AXXXXXB_AXB_AXXXXXXXXXXXXXB_AXB_AXXXXXB_Y",
" XXXXXXXXB_AXB_DXXXXXXXXXXXXXC_AXB_AXXXXXXXX",
" Y_DXXXXXXXXXXXXXXC_DXXXC_DXXXXXXXXXXXXXXC_Y",
" Y_________________|_____|_________________Y",
" DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC",
};
gotoxy(i,j);
setCColor(color[1]);
gotoxy(x,y); printf("%c",2);
void teclear(){
if(kbhit()){
tecla = getch();
switch(tecla){
case ARRIBA:
dir = 0;
break;
case ABAJO:
dir = 1;
break;
case DERECHA:
dir = 2;
break;
case IZQUIERDA:
dir = 3;
break;
class fantasma{
int fdir;
int col;
public:
void mover_fantasma();
void choque_pacman();
};
_x = x;
_y = y;
col = color;
fdir = rand()%4;
setCColor(color[col]);
gotoxy(_x,_y); printf("%c",6);
void fantasma::choque_pacman(){
||fdir == 2 && dir == 3 || fdir == 3 && dir == 2 )&&(_y == anteriorpy && _x == anteriorpx)){
x = 39;
y = 22;
dir = 4;
vidas--;
void fantasma::mover_fantasma(){
borrar_fantasma();
choque_pacman();
int bolx=_x,boly=_y;
if(mapa[_y][_x] == '|'){
fdir = rand()%4;
}
if(mapa[_y][_x] == '*'){
fdir = 0;
if(fdir == 2){
if(fdir == 3){
if(fdir == 0){
if(fdir == 1){
}
if(mapa[boly][bolx] == '_') {setCColor(color[1]); gotoxy(bolx,boly);printf("%c",250);}
// rutina atajo
dibujar_fantasma();
void marcador(){
gotoxy(5,4); printf("PUNTOS");
setCColor(color[6]);
gotoxy(5,6); printf("%ld",puntos);
setCColor(color[1]);
gotoxy(5,25); printf("VIDAS");
gotoxy(5,i+27);printf(" ");
gotoxy(5,i+27);printf("%c",2);
}
setCColor(color[2]);
gotoxy(70,27);printf("%c",169);
int main(){
fantasma A(41,14,2);
fantasma B(43,14,3);
fantasma C(40,14,4);
fantasma D(39,14,5);
pintar_mapa();
marcador();
borrar_pacman(x,y);
anteriorpx = x; anteriorpy = y;
teclear();
if(dir == 0 && mapa[y-1][x] != 'X' && mapa[y-1][x] != 'A' && mapa[y-1][x] != 'Y' &&
else if(dir == 1 && mapa[y+1][x] != 'X' && mapa[y+1][x] != 'A' && mapa[y+1][x] != 'Y' &&
pacman(x,y);
Sleep(55);
borrar_pacman(x,y);
B.choque_pacman();
C.choque_pacman();
D.choque_pacman();
A.choque_pacman();
//A.mover_fantasma();
anteriorpx = x; anteriorpy = y;
teclear();
if(dir == 2 && mapa[y][x+1] != 'X' && mapa[y][x+1] != 'A' && mapa[y][x+1] != 'Y' &&
A.mover_fantasma();
B.mover_fantasma();
C.mover_fantasma();
D.mover_fantasma();
pacman(x,y);
Sleep(55);
//pacman(x,y);
//rutina atajo
borrar_pacman(x,y);
x = 61;
borrar_pacman(x,y);
x= 18;
}
}
gotoxy(5,i+27);printf(" ");
system("pause>NULL");
return 0;