Foros del Web » Programación para mayores de 30 ;) » C/C++ »

dudas de poo en c++

Estas en el tema de dudas de poo en c++ en el foro de C/C++ en Foros del Web. hem en c++ es valido usar funciones comunes junto con las class,porque donde estudio el profesor programo y uso algunas funciones comunes para mostrar lista ...
  #1 (permalink)  
Antiguo 05/01/2009, 15:21
 
Fecha de Ingreso: mayo-2007
Ubicación: Buenos aires
Mensajes: 19
Antigüedad: 16 años, 11 meses
Puntos: 0
dudas de poo en c++

hem en c++ es valido usar funciones comunes junto con las class,porque donde estudio el profesor programo y uso algunas funciones comunes para mostrar lista objetos?, me conviene acostumbrarme a usar solo class?
dejo un intento de buscaminas usando class no esta terminado, pero la idea es ver si aplico bien las class. o si tienen alguna idea mejor de como quedaria mas simplificado usando class.
Código:
#include <iostream> 
#include <conio.c> 
#include "random.h" 

using namespace std; 

class menu 
{ 
   public: 
      void ingresa_cant_bomb(); 
      int get_bombas(){return bombas;} 

   private: 
    int bombas; 
}; 

void menu::ingresa_cant_bomb() 
{ 
  cout<<"ingrese la cantidad de bombas: "; 
  cin>>bombas; 
} 

class cuadricula 
{ 
   public: 
      cuadricula(); 
      void contar_bombas(); 
      void mostrar_cadricula(); 
      void set_bomba_casillero(int i,int j){m[i][j]='*';} 
      void set_valor_casillero(cuadricula &c2,int i,int j){m[i][j]=c2.m[i][j];} 
      bool verificar_casillero(int,int); 
      void mostrar_bombas(); 
      char get_valor_casillero(int i,int j){return m[i][j];} 

      private: 
      char m[8][8]; // 
}; 

void cuadricula::mostrar_bombas() 
{ 
  for(int i=1; i<=8; i++) 
  { 
    for(int j=1; j<=8; j++) 
    { 
      if(m[i][j]=='*') 
      cout<<m[i][j]; 

    } 
    cout<<endl; 
  } 
} 

bool cuadricula::verificar_casillero(int i, int j) 
{ 
  if(m[i][j]!='*') 
  return true; 

return false; 
} 

void cuadricula::contar_bombas() 
{ 
   int ct=0; 

   for(int i=1; i<=8; i++) 
   {                               //1 < 21 
      for(int j=1; j<=8; j++) 
       { 
         ct=0; 
         if(m[i][j]!='*') 
         { 
            if(m[i][j+1]=='*')  //delante 
            ++ct; 
            if(m[i-1][j+1]=='*') 
            ++ct; 
            if(m[i+1][j+1]=='*') 
            ++ct; 
            if(m[i][j-1]=='*')  //atras 
            ++ct; 
            if(m[i+1][j-1]=='*') 
            ++ct; 
            if(m[i-1][j-1]=='*') 
            ++ct; 
            if(m[i-1][j]=='*')  //arriba 
            ++ct; 
            if(m[i+1][j]=='*') 
            ++ct;               //abajo 
            m[i][j]=ct+48; 
         } 

       } 
   } 

} 
cuadricula::cuadricula() 
{ 
  for(int i=1; i<=8; i++) 
    for(int j=1; j<=8; j++) 
      m[i][j]='-'; 
} 

void cuadricula::mostrar_cadricula() 
{ 
  for(int i=1; i<=8; i++) 
  { 
    for(int j=1; j<=8; j++) 
    { 
      cout<<m[i][j]; 
    } 
    cout<<endl; 
  } 
} 

class bomba 
{ 
   public: 
      void bomba_al_azar(); 
      int get_posx(){return ejex;} 
      int get_posy(){return ejey;} 

   private: 
      int ejex,ejey; 
}; 

void bomba::bomba_al_azar() 
{ 

  ejex=random(8)+1; 
  ejey=random(8)+1; 
} 

class jugador : public menu 
{ 
   public: 
    int get_posx_jug(){return posx;} 
    int get_posy_jug(){return posy;} 
      void ingresa_posjug_x_y(); 

   private: 
      int posx,posy; 
}; 

void jugador::ingresa_posjug_x_y() 
{ 
    cout<<"ingrese numero de posicion de la fila: "; 
    cin>>posx; 
    cout<<endl<<"ingrese numero de posicion de la columna: "; 
    cin>>posy; 
} 


void colocarbombas(cuadricula &,jugador &); 
int main (int argc, char* argv[]) 
{ 
  cuadricula c1; 
  cuadricula c2;//otro objeto 
  jugador j1; 

  c1.mostrar_cadricula();//en 0 
  j1.ingresa_cant_bomb(); 
  colocarbombas(c2,j1); 
  c2.contar_bombas(); 
  while(1) 
  { 
    j1.ingresa_posjug_x_y(); 
    clrscr(); 
  if(c2.verificar_casillero(j1.get_posx_jug(),j1.get_posy_jug())) 
  { 
    c1.set_valor_casillero(c2,j1.get_posx_jug(),j1.get_posy_jug()); 
    c1.mostrar_cadricula(); 

  } 
  else 
  { 
    c2.mostrar_bombas(); 
    cout<<endl<<"           Perdiste"<<endl; 
  break; 
  } 
  } 

  return 0; 
} 
void colocarbombas(cuadricula &c2,jugador &j1)//funcion exterior 
{ 
  randomize(); 
   int ct=0; 

  while(ct!=(j1.get_bombas())) 
  { 
  bomba b; 
  b.bomba_al_azar(); 
  if(c2.verificar_casillero(b.get_posx(),b.get_posy())) 
  { 
  c2.set_bomba_casillero(b.get_posx(),b.get_posy()); 
   ct++; 
  } 

  } 
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:06.