Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Pirat3net en 12 Septiembre 2013, 16:43 pm



Título: mostrar en grupos de 5 50 al azar. error que no arreglo
Publicado por: Pirat3net en 12 Septiembre 2013, 16:43 pm
Bueno , un amigo me pidio un codigo sencillo para que muestre numeros del uno a el 50 al azar, de 5 en 5, recorde que tenia un codigo en el que barajaba un mazo de cartas, asi que recicle.
el problema es que hace ya algunos años que no uso java y eclipse me tira tres errores que no consigo identificar los dejo a continuacion.
gracias de ante mano

Exception in thread "main" java.lang.NullPointerException
   at Mainclass.<init>(Mainclass.java:15)
   at Mainclass.main(Mainclass.java:40)
Código
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3.  
  4.  
  5. public class Mainclass {
  6. public int numeroCartas;
  7. public int[] mazo;
  8.  
  9.  
  10. public Mainclass(){
  11. this.numeroCartas=50;
  12. for(int k=0;k<50;k++){
  13. this.mazo[k]=k;
  14.  
  15. }
  16. }
  17. public void barajar() {
  18. int cambios = (int) ( Math.floor(Math.random() * 100) + (int) Math.floor(Math.random() * 100)+1);
  19.  
  20. for (int k = 0; k < cambios; k++) {
  21. for (int n = 0; n < numeroCartas; n++) {
  22. int aleatorio = (int) Math.floor(Math.random() * numeroCartas);
  23. int aux = mazo[n];
  24. mazo[n] = mazo[aleatorio];
  25. mazo[aleatorio] = aux;
  26. }
  27. }
  28.  
  29. }
  30. public void mostrar() {
  31. for(int k=0;k<50;k++){
  32. System.out.println(mazo[k]+" "+mazo[++k]+" "+mazo[++k]+" "+mazo[++k]+" "+mazo[++k]);
  33. }
  34. }
  35.  
  36.  
  37. public static void main(String[] args) {
  38. Mainclass miclase=new Mainclass();
  39. miclase.barajar();
  40.  
  41. miclase.mostrar();
  42.  
  43. }
  44.  
  45. }
  46.  

sobre todo el error que mas intrigado me deja es el de la linea 15, le doy vueltas pero nada


Título: Re: mostrar en grupos de 5 50 al azar. error que no arreglo
Publicado por: Zoik en 12 Septiembre 2013, 16:52 pm
Te falta especificar el tamaño de la array en la línea 7 sería así:

Código
  1. public int[] mazo = new int[50];

O debajo de la línea 13 le agregas:

Código
  1. this.mazo = new int[numeroCartas];

Un saludo