Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: anonimo12121 en 17 Junio 2012, 14:09 pm



Título: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: anonimo12121 en 17 Junio 2012, 14:09 pm
Qué puntos en contra y a favor veis en esta forma de programar?
Pregunto por el archivo camara.cpp
area.hpp
Código
  1. #ifndef _AREAHPP_
  2. #define _AREAHPP_
  3. struct Area {
  4.    int x;
  5.    int y;
  6.    int w;
  7.    int h;
  8. };
  9. #endif
  10.  
camara.hpp
Código
  1. #ifndef _CAMARAHPP_
  2. #define _CAMARAHPP_
  3. #include "area.hpp"
  4. #include <iostream>
  5. using namespace std;
  6. class CamaraGame{
  7.    private:
  8.        Area CArea;
  9.        int LW;
  10.        int LH;
  11.    public:
  12.        CamaraGame(int _mw,int _mh,int _x,int _y,int _h,int _w);
  13.        bool Move(int x,int y);
  14.        bool ResizeLimit(int _lw,int _lh);
  15.        Area Get();
  16.  
  17.  
  18. };
  19. #endif
  20.  
camara.cpp
Código
  1. #include "camara.hpp"
  2. //
  3. CamaraGame::CamaraGame(int _mw,int _mh,int _x,int _y,int _w,int _h){
  4.    if(_x>=0)CArea.x=_x;
  5.    else {
  6.        CArea.x=0;
  7.        cout << "\nERROR CAMARA 0007: valor inferior a 0, se le asigna 0\n";
  8.    }
  9.    if(_y>=0)CArea.y=_y;
  10.    else {
  11.        CArea.y=0;
  12.        cout << "\nERROR CAMARA 0008: valor inferior a 0, se le asigna 0\n";
  13.    }
  14.    if(_w>=0)CArea.w=_w;
  15.    else {
  16.        CArea.w=0;
  17.        cout << "\nERROR CAMARA 0009: valor inferior a 0, se le asigna 0\n";
  18.    }
  19.    if(_h>=0)CArea.h=_h;
  20.    else {
  21.        CArea.h=0;
  22.        cout << "\nERROR CAMARA 0010: valor inferior a 0, se le asigna 0\n";
  23.    }
  24.    if(_mw>=0)LW=_mw;
  25.    else {
  26.        LW=0;
  27.        cout << "\nERROR CAMARA 0011: valor inferior a 0, se le asigna 0\n";
  28.    }
  29.    if(_mh>=0)LH=_mh;
  30.    else {
  31.        LH=0;
  32.        cout << "\nERROR CAMARA 0012: valor inferior a 0, se le asigna 0\n";
  33.    }
  34. };
  35. bool CamaraGame::Move(int _x,int _y){
  36.    if(_x<0){
  37.        _x=0;
  38.        cout << "\nERROR CAMARA 0003: valor inferior a 0, se le asigna 0\n";
  39.    }
  40.    if(_y<0){
  41.        _y=0;
  42.        cout << "\nERROR CAMARA 0004: valor inferior a 0, se le asigna 0\n";
  43.    }
  44.    if(_x+CArea.w>LW){
  45.        _x=LW-CArea.w;
  46.        cout << "\nERROR CAMARA 0005: valor superior a lo permitido se le asigna " << _x << "\n";
  47.    }
  48.    if(_y+CArea.h>LH){
  49.        _y=LH-CArea.h;
  50.        cout << "\nERROR CAMARA 0006: valor superior a lo permitido se le asigna " << _y << "\n";
  51.    }
  52.    CArea.x=_x;
  53.    CArea.y=_y;
  54.    return true;
  55. }
  56. bool CamaraGame::ResizeLimit(int _w,int _h){
  57.    if(_w>=0)LW=_w;
  58.    else {
  59.        LW=0;
  60.        cout << "\nERROR CAMARA 0001: valor inferior a 0, se le asigna 0\n";
  61.    }
  62.    if(_h>=0 )LH=_h;
  63.    else {
  64.        LH=0;
  65.        cout << "\nERROR CAMARA 0002: valor inferior a 0, se le asigna 0\n";
  66.    }
  67.    return true;
  68. }
  69.  
  70. Area CamaraGame::Get(){
  71.    return CArea;
  72. }


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: 0xDani en 17 Junio 2012, 20:40 pm
¿A que te refieres?

Saludos ;D


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: anonimo12121 en 17 Junio 2012, 21:22 pm
a los mensajes por consola cuando los valores no están en el rango necesario para que todo funcione bien :)


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: 0xDani en 17 Junio 2012, 21:38 pm
Lo cierto es que no se ve muy bien que parametros hay que pasarle a las funciones, sobre todo en camaragame.


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: overxfl0w13 en 18 Junio 2012, 00:35 am
xafi, veo demasiados archivos no? No te parece demasiada carga emplear un archivo (area.hpp) únicamente para declarar una estructura? :S

Respecto a lo otro no te puedo ayudar, pero como dice daniyo, son bastante confusos los nombres de los argumentos pasados a las funciones tio xD.

Un saludo y cuidate mucho :)


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: Foxy Rider en 18 Junio 2012, 11:07 am
Si tenés muchas estructuras chicas, armate un .hpp con el nombre Types por ejemplo, y poné todo ahí ...
Area diría que la declares clase, le agregues algunos operadores y un constructor, por que vá a permitirte hacer algo como esto : http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fcplr388.htm

Código
  1. CamaraGame::CamaraGame(int _mw,int _mh,int _x,int _y,int _w,int _h): CArea(_x,_y,_w,_h,_mw,_mh)
  2.  
Y después arrancás a verificar (que también, eso luce bastante "optimizable")

Por cierto, lo de los guiones bajos es algo que se vé feo en este contexto de los parámetros  (yo tenía esa horrible costumbre, pero con variables privadas y que consideraba "privadas" - léase : encapsulamiento se fue de vacaciones - , me dá cáncer recordarlo x'D), te diría que cambies el estilo de nombramiento de variables ... relajalo en parámetros, para los internos de la clase  podés estar prefijeando m, y con eso indicás "mine" como por ejemplo mWidth (tampoco abuse de este prefijo)

Y un consejo más personal? no mezcles idiomas en el código :S

Saludos.


Título: Re: Qué puntos en contra y a favor veis en esta forma de programar?
Publicado por: anonimo12121 en 18 Junio 2012, 15:29 pm
La verdad que me hice un lío en los nombres de los parámetros.
Lo  mezclar idioma ya estoy solucionando.

Gracias por los consejos los pondré en práctica.