25/3/10

CÓDIGO HASTA AHORA DE PACMAN (SIN FANTASMAS)

#include <cstdlib>
#include <conio.h>
#include <dos.h>
#include <iostream>

//#include "pacman.h"
#define ARRIBA 72
#define DERECHA 77
#define ABAJO 80
#define IZQUIERDA 75
#define ESC 27
using namespace std;

class tablero
{
    private:
        int tabla[15][15];
        friend void pacman::mov_pacman();
    public:
        int n_galletas;
        int pos_galletas[15][15];
        void imprimirTablero ();      
};

class tablero *screen=new tablero;
class pacman
{
    private:
        int pos_pacman[1][1];
        int next_pos_pacman[1][1];
    public:
        void mov_pacman(int actual[], int proxima[], tablero *screen::tabla)
        {
            char tecla;
            do
            {
                if(tecla==ARRIBA)
                {
                    proxima[1]=actual[1]--;
                }
                else if(tecla==DERECHA)
                {
                    proxima[0]=actual[0]++;
                }
                else if(tecla==ABAJO)
                {
                    proxima[1]=actual[1]++;
                }
                else
                {
                    proxima[0]=actual[0]--;
                }
              
               if(tablero::tabla[proxima[0]][proxima[1]]==0)
               {
                    for(int h=0;h<2;h++)
                    {
                        actual[h]=proxima[h];
                    }
                }
              
                tecla=getch();
                kbhit();
            }
            while(tecla!=ESC);
        }
        void limit_time()
        {
            for (int time=1;time<=120;)
            {
                delay(1000);
                time++;
            }
        }
      
        void puntaje(int actual[], int siguiente[],tablero::pos_galletas)
        {
            int puntos=0;
            if(tablero::pos_galletas[proxima[0]][proxima[1]]==1)
            {
                puntos+=5;
                tablero::pos_galletas[proxima[0]][proxima[1]]=0;
            }
            else if(tablero::pos_galletas[proxima[0]][proxima[1]]==2)
            {
                puntos+=10;
                tablero::pos_galletas[proxima[0]][proxima[1]]=0;
            }
        }
};


void titlepage(){
cout<<endl;
cout<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"-\t"<<"              1111        1111    11111111111111                      -"<<endl;
cout<<"-\t"<<"              1111        1111    111111111111111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"              1111        1111    1111       1111                     -"<<endl;
cout<<"-\t"<<"               111111111111111    1111       1111                     -"<<endl;
cout<<"-\t"<<"                 1111111111111    1111       1111                     -"<<endl;
cout<<"-\t"<<"                                                                      -"<<endl;
cout<<"-\t"<<"                                                                      -"<<endl;
cout<<"-                        UNIVERSIDAD NACIONAL DE COLOMBIA                     -"<<endl;
cout<<"-                             FACULTAD DE INGENIERIA                          -"<<endl;
cout<<"-                        PROGRAMACION ORIENTADA A OBJETOS                     -"<<endl;
cout<<"-                       Andrés Gerardo Bernal Arias-258029                    -"<<endl;
cout<<"-                       Joanna Dulima Ochoa Mancipe-258050                    -"<<endl;
cout<<"-                     Pedro Alejadro Valderrama Tapias-258031                 -"<<endl;
cout<<"-                      Estudiantes de Ingenieria de Sistemas                  -"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;  
cout<<endl;
cout<<endl;
}
int main(int argc, char *argv[])
{
    titlepage ();
    system("PAUSE");
    return EXIT_SUCCESS;
}
#include <iostream>
#include <iomanip>
using namespace std;

#define filas 6
#define col 7
void ImprimirTablero(char bitArray[filas][col]){
char galleta='*'; // caracter iniciado en a para el indice de las columnas//
int k=1; //indice para las filas//
cout<<"\n"; //fin de linea//
    cout<<"\t  "; // tabulacion//
    //imprimimos la letras de las columnas //
for(int i=0; i<col; i++){
    cout<<setw(4)<<galleta;
}
cout<<"\n\t  ------------------------------"<<endl;
for(int i=0; i<filas; i++){
    cout<<"\t"<<i+1<<" | ";
    for(int j=0; j<col; j++){
cout<<setw(2)<<bitArray[i][j]<<" |";   
   }
        cout<<"\n\t  ------------------------------"<<endl;
     }
}
void class pacman
{
public:
int x,y;
char simbolo_pacman='@';
pacman(int xx,int yy,direccion d)
{
x=xx;
y=yy;
dibujarPacman();
}
};
void dibujarPacman (char pacman, char bitArray)
{

}
/*void movimiento_pacman (char u, char h, char j, char n, char pacman)
{
if (mover==u)
    {
    
    }
}*/
int proximaPosPacman (char pacman, char bitArray,char mpacman, char u, char h, char j, char n, char pacman)
    {
    if (char mpacman==u)
        {
        coordenadaActualPacman(bitArray);
        }
    }*/
int main ()
{
cout<<"****************************PaCmAn MiNi*********************"<<endl;
char galleta='*';
//char pacman='@'; clase pacman
char mpacman=getchar ();
char u;// h, j,n; //teclas de movimiento
/*u->arriba
h->izquierda
j->derecha
n->abajo*/
char bitArray[filas][col];
for (int i=0;i<filas;i++)
{
        for (int j=0;j<col;j++)
        {
            bitArray[i][j]=' ';
        } 
            bitArray[0][0]=galleta;
            bitArray[0][2]=galleta;
            bitArray[0][5]=galleta;
            bitArray[1][1]=galleta;
            bitArray[2][0]=galleta;
            bitArray[2][3]=pacman;
            bitArray[2][5]=galleta;
            bitArray[3][1]=galleta;
            bitArray[4][2]=galleta;
            bitArray[5][0]=galleta;
            bitArray[5][3]=galleta;
            bitArray[5][5]=galleta;
ImprimirTablero(bitArray);
cin>>mpacman;
system ("pause");
return 0;
}

PREINFORME PAC-MAN


INTEGRANTES: Andrés G. Bernal A.CÓD.: 258029
                               Joanna D. Ochoa M. CÓD.: 258050
                               Pedro A. Valderrama T. CÓD.: 258031


Descripción del Problema

El problema que se nos plantea en esta ocasión se trata de crear un "pac-man" en un grid de 6x7, se debe mover el personaje por medio del teclado para ir recogiendo las "galletas" pequeñas y grandes, también debemos mostrar el efecto que tiene este movimiento en la matriz de "galletas", suprimiendo la presencia de fantasmas, desarrollándolo a través del paradigma de orientación a objetos, es decir, definiendo los siguientes diagramas de clases.




Además, se nos pidió indagar sobre la técnica de situar datos en objetos de manera que no se pueda acceder directamente a ellos, la cual, según lo entendido es el llamado encapsulamiento, el cual consiste en unir en la clase las variables y métodos. Es tener todo esto en una sola entidad, esto se logra gracias a la abstracción y el ocultamiento que tiene que ver con la facilidad para manejar la complejidad, ya que tendremos a las clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la clase pero no será necesario saber cómo lo hace, es decir los datos que maneja y los procedimientos que emplea. (Con base en http://java.ciberaula.com/articulo/tecnologia_orientada_objetos/)