Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2011, 06:34
-thor-
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 10 meses
Puntos: 3
Duda con este codigo java

Hola, saben quiero continuar mi aprendisaje en java analizando codigos. En particular me podrian explicar unas lineas especificas de esta aplicacion

aqui para que sirve la linea cuenta%13
// llenar paquete con objetos Carta

Código PHP:
for ( int cuenta 0cuenta paquete.lengthcuenta++ ) 
paquetecuenta ] = new Cartacarascuenta 13 ],
paloscuenta 13 ] ); 
¨
y esta es mi ultima duda que espero no molestar a nadie. En este metodo, ¿por que se inicializa la varible cartaActual en menos 1 cartaActual = -1? ¿cual es su funcionalidad especificamente, si fuera inicializada en 0 cual seria el problema?
¿para que sirve esta linea de codigo:Math.random() * 52 ); ?
gracias


Código PHP:
private void barajar()
{
cartaActual = -1;

// para cada carta, elegir otra carta aleatoria e intercambiarlas
for ( int primera 0primera paquete.lengthprimera++ ) {
int segunda = ( int ) ( Math.random() * 52 );
Carta temp paqueteprimera ];
paqueteprimera ] = paquetesegunda ];
paquetesegunda ] = temp;
}

repartirBoton.setEnabledtrue );

************************************************** ***************************************
// Programa para barajar y repartir cartas.
Código PHP:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class 
PaqueteDeCartas extends JFrame {
private 
Carta paquete[];
private 
int cartaActual;
private 
JButton repartirBotonbarajarBoton;
private 
JTextField pantallaCampo;
private 
JLabel estadoEtiqueta;

// configurar paquete de cartas y GUI
public PaqueteDeCartas()
{
super"Programa para repartir cartas" );

String caras[] = { "As""Dos""Tres""Cuatro""Cinco""Seis"
"Siete""Ocho""Nueve""Diez""Joto""Qüina""Rey" };
String palos[] = { "Corazones""Diamantes""Tréboles""Espadas" };

paquete = new Carta52 ];
cartaActual = -1;

// llenar paquete con objetos Carta
for ( int cuenta 0cuenta paquete.lengthcuenta++ ) 
paquetecuenta ] = new Cartacarascuenta 13 ],
paloscuenta 13 ] );

// configurar GUI y manejo de eventos
Container contenedor getContentPane();
contenedor.setLayout( new FlowLayout() ); 

repartirBoton = new JButton"Repartir carta" );
repartirBoton.addActionListener(

new 
ActionListener() { // clase interna anónima

// repartir una carta
public void actionPerformedActionEvent eventoAccion )
{
Carta repartida repartirCarta();

if ( 
repartida != null ) {
pantallaCampo.setTextrepartida.toString() );
estadoEtiqueta.setText"Carta #: " cartaActual );
}
else {
pantallaCampo.setText"NO HAY MAS CARTAS QUE REPARTIR" );
estadoEtiqueta.setText"Barajee las cartas para continuar" );
}
}

// fin de la clase interna anónima

); // fin de la llamada a addActionListener

contenedor.addrepartirBoton );

barajarBoton = new JButton"Barajar cartas" );
barajarBoton.addActionListener(

new 
ActionListener() { // clase interna anónima

// barajar paquete
public void actionPerformedActionEvent eventoAccion )
{
pantallaCampo.setText"BARAJANDO ..." );
barajar();
pantallaCampo.setText"SE BARAJO EL PAQUETE" );
}

// fin de la clase interna anónima

); // fin de la llamada a addActionListener

contenedor.addbarajarBoton );

pantallaCampo = new JTextField20 );
pantallaCampo.setEditablefalse );
contenedor.addpantallaCampo );

estadoEtiqueta = new JLabel();
contenedor.addestadoEtiqueta );

setSize275120 ); // establecer tamaño de ventana
setVisibletrue ); // mostrar ventana
}

// barajar paquete de cartas con algoritmo de una pasada
private void barajar()
{
cartaActual = -1;

// para cada carta, elegir otra carta aleatoria e intercambiarlas
for ( int primera 0primera paquete.lengthprimera++ ) {
int segunda = ( int ) ( Math.random() * 52 );
Carta temp paqueteprimera ];
paqueteprimera ] = paquetesegunda ];
paquetesegunda ] = temp;
}

repartirBoton.setEnabledtrue );
}

// repartir una carta
private Carta repartirCarta()
{
if ( ++
cartaActual paquete.length )
return 
paquetecartaActual ];
else

repartirBoton.setEnabledfalse );
return 
null;
}
}

// ejecutar aplicación
public static void mainString args[] )
{
PaqueteDeCartas aplicacion = new PaqueteDeCartas();

aplicacion.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE );


// fin de la clase PaqueteDeCartas

// clase para representar una carta
class Carta
{
private 
String cara;
private 
String palo;

// constructor para inicializar una carta
public CartaString caraCartaString paloCarta )
{
cara caraCarta;
palo paloCarta;
}

// devolver representación String de Carta
public String toString()

return 
cara " de " palo
}

// fin de la clase Carta