Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Alien-Z

#61
Cita de: eferion en  6 Agosto 2013, 09:37 AM
si tienes conexión a internet puedes probar el sistema de google.

No es que sea el mejor del mundo pero según tus necesidades puede ser gratuito.

¿Se puede integrar en una aplicación programada en C++?.

Prueba con esto: http://cmusphinx.sourceforge.net/wiki/download/
Aqui tienes algunas demostraciones: http://playback.ning.com/group/speech-to-text/forum/topics/cmu-sphinx?xg_source=activity

Esta es otra opción para C#: http://www.codeproject.com/Articles/22951/Sound-Activated-Recorder-with-Spectrogram-in-C

Un saludo.
#62
Java / Re: Problema con el inicio del programa
5 Agosto 2013, 00:39 AM
No veo dónde puede fallar. En el switch se puede usar variables de tipo Enum, Integer y String, y por lo que has mostrado en los otros posts puedo suponer que "array[j].pz" sigue siendo un Enum, por tanto es correcto.

¿Has inicializado correctamente todas las posiciones del array?. ¿Podrías poner el código completo separado por módulos y utilizando las etiquetas code?.
#63
Java / Re: Problema con el inicio del programa
4 Agosto 2013, 15:26 PM
Ya me parecía a mi que eso te lo debía haber indicado el IDE. Ahora que lo miro detenidamente me he fijado donde falla:

Código (java) [Seleccionar]
public class Tablero {
  Pieza array[][]=new Pieza[7][7];
  public Tablero(){  
     for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
           array[ i][j]=new Pieza();
       
  }


Creas un array de tamaño 7x7 pero pones como condición de continuación en los bucles que "i, j"sea  menor que "8, 8", por tanto el bucle intentará acceder a la posición "array[7][7]" sin embargo el array va desde array[0][0] hasta array[6][6]; te sales de él e intentas acceder a una posición que no existe. La condición de continuación debe ser "i < 7".

Y un pequeño matiz:

Código (java) [Seleccionar]
  public Pieza() {
    this.pz=null;
    this.cl=null;
  }


No es necesario utilizar "this" en este constructor porque las variables no están siendo ocultadas, debes utilizarlo cuando por ejemplo recibes como parámetro una variable con el mismo nombre que un atributo miembro y quieras distinguirlos:

this.pz -> atributo del objeto
pz -> Variable que me han pasado como parámetro

Un saludo.
#64
No hay de qué.

Un saludo.
#65
Java / Re: Problema con el inicio del programa
3 Agosto 2013, 16:57 PM
El error está en que no se puede acceder a una posición de un array bidimensional si solo indicas una de las dimensiones. Lo tienes en casi todo el código así:

Código (java) [Seleccionar]
         Pieza array[][]=new Pieza[7][7];
        array[j]=new Pieza();
...
        array [1].pz=Piezas.CABALLO;
        array [2].pz=Piezas.ALFIL;
        array [3].pz=Piezas.DAMA;
        array [4].pz=Piezas.REY;
...
        array [7].cl=Colores.NEGRO;
        array [6].pz=Piezas.PEON;
        array [6].cl=Colores.NEGRO;


Se debe utlizar de la siguiente forma:

Código (java) [Seleccionar]
array[COLUMNA][FILA] = new Pieza();

Un saludo.
#66
1- El parpadeo ocurre porque tienes demasiados frames por segundo, procura no pasar de 25 frames/segundo si no quieres que te suceda.

2- La imagen del fondo debes moverla del mismo modo que moverías al personaje activo porque depende de si éste avanza o no:

El personaje se mueve hacia la izquierda -> Las montañas se mueven hacia la derecha
El personaje se mueve hacia la derecha -> Las montañas se mueven hacia la izquierda

Para el deplazamiento de las montañas tendrás que variar únicamente la coordenada "x" de su posición.
También podrías hacer que bajaran un poco si Mario salta modificando la coordenada "y".

Un saludo.
#67
Java / Re: MVC en Eclipse - JAVA
31 Julio 2013, 21:36 PM
Eclipse y Netbeans son IDE's y realmente no tienen nada que ver con el código Java en sí, que uses uno u otro no afecta al programa, es decir, lo que escribas en una IDE te debe funcionar en las demás. De hecho ni si quiera pueden compilar, cuando tú le das al botón "compilar", lo que hacen es llamar a la aplicación creada por Sun Microsystems (propietaria de java) que se encuentra en la carpeta ...\jdk\bin\javac y es la que realmente crea el fichero ".class" con el código compilado.

En definitva, no importa qué plataforma o IDE utilices para desarrollar tu aplicación porque debe funcionarte en las demás.

Sobre las que mencionas, no puedo darte una opinión clara acerca de cuál de las dos IDE's es más potente porque pocas veces he tocado netbeans; en la universidad nos incitaban a utilizar eclipse (supongo que por algo será) y es con el que más he trabajado. Vas a encontrar gente que se incline hacia una u otra plataforma, pero lo que yo te recomiendo es que vayas alternando hasta que veas con cuál te sientes más cómodo.

En tu proyecto no veo ningún error importante, solo un pequeño fallo conceptual:

ArrayList<T> es un tipo genérico que hereda de otro tipo genérico List<T> que a su vez hereda de otro Collection<T>, éste último es la raíz de todas las colecciones predefinidas de java (listas, arrays dinámicos, árboles, etc.). Si te fijas todas utilizan un tipo genérico pero es casi obligatorio parametrizarla a un tipo declarado. Por tanto, cuando creas un array dinámico:

Código (java) [Seleccionar]
private ArrayList<T> lista = new ArrayList<T>();

Hay que sustituir el tipo genérico T por uno ya declarado e implementado, por ejemplo:

Código (java) [Seleccionar]
private ArrayList<Cuenta> lista2= new ArrayList<Cuenta>(); //Un array dinámico de cuentas

También puedes utilizar el tipo comodín ? para decirle a la lista que le vas a asignar tanto listas cuyos objetos son de tipo "Cuenta" como los subtipos de "Cuenta":

Código (java) [Seleccionar]
private ArrayList<? extends Cuenta> lista = new ArrayList<CuentaEstructurada>();

Lo que tú haces en el programa es trabajar con tipos "Object", por tanto debes organizarlo del siguiente modo:

Código (java) [Seleccionar]
private ArrayList<Object> lista = new ArrayList<Object>();

Cuando quieras utilizar un método de uno de los objetos que hay en la lista debes aplicar casting:

Código (java) [Seleccionar]
Cuenta cuenta = (Cuenta) lista.get(5); //Obtienes el quinto elemento de la lista y se lo asignas a la variable "cuenta"
cuenta.metodo(); //Ahora podrás utilizar sus funciones


Espero que te sirva, si tienes alguna duda o no comprendes algo comenta.

Un saludo.
#68
Java / Re: MVC en Eclipse - JAVA
31 Julio 2013, 20:02 PM
Pues a mi me funciona sin problemas en Eclipse, da avisos en algunas líneas en las que se puede depurar el código y eliminar instrucciones innecesarias, pero se ejecuta perfectamente sin haber modificado nada:



Me parece que ya comprendo cuál es el problema, ¿no consigues trasladar el programa desde netbeans a eclipse?, si es eso abre eclipse y crea un nuevo proyecto (no importes el que tienes), vuelve a crear los paquetes y las clases y copia el código desde netbeands a las nuevas clases de eclipse (copiar y pegar). En teoría importando el proyecto debería funcionar pero si hay algún error de compatibilidad de este modo tiene que ejecutarse.

Un saludo.
#69
Java / Re: MVC en Eclipse - JAVA
30 Julio 2013, 20:06 PM
Podrías por favor expresar de otro modo cuál es tu pregunta, ¿no puedes usar el método "setControlador()" o qué es lo que le ocurre exactamente al código?.

A parte de eso hay un pequeño error en el constructor: Cuando creas una clase que hereda de otra, como es este caso, en los constructores es obligatorio llamar al menos al constructor por defecto de la clase padre, y esta debe ser siempre la primera instrucción:

Código (java) [Seleccionar]
   public PantallaPrincipal() {
      super(); //super(...); llama al constructor de la clase padre pasándole esos argumentos, puede ser el constructor por defecto o cualquier otro
      initComponents();
      SOCIO.setActionCommand(MENU_SOCIO);
      PAGO.setActionCommand(MENU_PAGO);
  }
#70
Cita de: KlaHavoK en 29 Julio 2013, 06:53 AM
>> Supongamos que Cuenta tiene un atributo más del tipo int llamado numeroCuenta que almacenará el número de la cuenta. Cómo hago para poder acceder a un determinado número de cuenta sin necesidad de usar el ID? Es decir, supongamos que en arregloCuenta[1] tengo un objeto de tipo cuenta con un numeroCuenta 1234... Cómo hago para (por ejemplo) cuando seleccione la opción de depositar en mi programa, que el programa me pida el número de cuenta y de ahí acceda a la posición en el arreglo donde se encuentra la cuenta con dicho númeroCuenta y realizar las aciones pertinentes? O es esto imposible?  ;D

Ya veo lo que quieres hacer, para esto tendrás que:

1- Recoger el número de cuenta en una variable.
2- Crear un bucle que vaya comparando el número de cuenta que tienes almacenada en la variable con los números de cuenta de todas las cuentas del array.

Código (java) [Seleccionar]
boolean encontrada = false; //Cuando encontremos la cuenta, finalizará el bucle
final int totalCuentas = 10; //Aqui pondrás el total de cuentas que tienes
int i = 0;

while(i < totalCuentas && !encontrada) { //Mientras no nos salgamos del array y no encontremos la cuenta
  if (arrayCuentas[i].getNumCuentas() == numCuentas) { //Si el número de cuenta es igual al que buscamos
     encontrada = true; //Nos salimos del bucle
  }
  i++;
}

if (i != totalCuentas) { //ATENCION: Hay que comprobar si nos hemos salido del bucle porque hemos encontrado la cuenta o porque hemos recorrido todo el array y no está

//Colocamos las instrucciones que se ejecutarán una vez encontrada
}


Citar>> Hoy cambiaron un poco el ejercicio. Ahora al parecer necesito una clase Cliente que va a tener un ID y un arreglo de cuentas (arregloCuentasCliente). Entonces en vez de crear una cuenta en la opcion 1, crearé un Cliente y lo almacenaré en un arregloClientes junto con la información de su cuenta. El cliente tiene un arregloCuentasCliente ya que el puede tener varias cuentas. Cómo hago la lógica de esto? Osea, sé cómo crear el cliente y almacenarlo; pero cómo hago si quiero añadir una cuenta adicional a un cliente ya creado?

Es interesante darle vueltas a estos problemas. Ahora en el menú tendrás que dar dos opciones:
1- Nuevo Cliente
2- Nueva cuenta
3- ...

Cuando el usuario elija crear una nueva cuenta tendrás que preguntarle obligatoriamente a qué cliente pertenece esta cuenta, recoges el dato y vas comparando en el array de clientes (viene a ser el mismo bucle que el apartado anterior) hasta dar con el propietario de la nueva cuenta. La creas y la almacenas en el array de éste cliente.

Saludos.