1
« en: Viernes 28 de Mayo de 2010, 03:07 »
hola a todos.
tengo un problema con un algoritmo que no me quiere funcionar, porfa me podrian ayudar gracias.
*/import java.util.Random;
import javax.swing.JFrame;
import java.awt.*;
public class cartas {
/*Atributo privado para almacenar el numero de la carta
* 1=As de Trebol, 14=As de Pica, 27=As de Corazon, 40=As de Diamante,
* 2=2 de Trebol, 15=2 de Pica, 28=2 de Corazon, 41=2 de Diamante,
* 3=3 de Trebol, 16=3 de Pica, 29=3 de Corazon, 42=3 de Diamante;
* 4=4 de Trebol, 17=4 de Pica, 30=4 de Corazon, 43=4 de Diamante;
* 5=5 de Trebol, 18=5 de Pica, 31=5 de Corazon, 44=5 de Diamante;
* 6=6 de Trebol, 19=6 de Pica, 32=6 de Corazon, 45=6 de Diamante;
* 7=7 de Trebol, 20=7 de Pica, 33=7 de Corazon, 46=7 de Diamante;
* 8=8 de Trebol, 21=8 de Pica, 34=8 de Corazon, 47=8 de Diamante;
* 9=9 de Trebol, 22=9 de Pica, 35=9 de Corazon, 48=9 de Diamante;
* 10=10 de Trebol, 23=10 de Pica, 36=10 de Corazon, 49=10 de Diamante;
* 11=j de Trebol, 24=j de Pica, 37=j de Corazon, 50=j de Diamante;
* 12=Q de Trebol, 25=Q de Pica, 38=Q de Corazon, 51=Q de Diamante;
* 13=K de Trebol, 26=K de Pica, 39=K de Corazon, 52=K de Diamante;
*/
private int indice=0;
public cartas(Random r)
{
//el numero de la carta es generado aleatoriamente entre 1 y 52
indice=r.nextInt(51)+1;
}
//obtener el numero de la pinta de la carta
public int obtenerNumeroPinta()
{
if (indice<=13)
return 0; //Trebol
else if (indice<=26)
return 1; //Pica
else if (indice<=39)
return 2; //Corazon
else return 3; //Diamante
}
//obtener la pinta de la carta
public String obtenerPinta()
{
if (indice<=13)
return "Trebol";
else if (indice<=26)
return "Pica";
else if (indice<=39)
return "Corazon";
else return"Diamante";
}
//obtener el numero de la figura de la carta
public int obtenerNumeroFigura()
{
if (indice % 13==0 )
return 13;
else
return indice % 13;
}
//obtener la figura de la carta
public String obtenerFigura()
{
switch (indice % 13)
{
case 0:
return "k";
case 1:
return"A";
case 11:
return "J";
case 12:
return "Q";
default:
return String.valueOf(indice % 13);
}
}
//metodo para mostrar la carta en la interface de usuario
public void mostrarCarta(int x, int y, JFrame v, boolean tapada) {
//obtener el nombre del archivo de la carta
String archivo="carta"+String.valueOf(indice)+"•jpg•";
//si la carta no se debe de ver, el archivo es otro
if (tapada)
archivo="tapada.jpg";
//obtener la imagen desde el archivo
Image imagen=Ventanas.abrirImagen(archivo,v);
//mostrar la carta en la ventana
Ventanas.mostrarImagen(imagen,x,y,v);
}
//metodo que devuelve el valor de la carta
//si es figura (A,J,Q, y K) vale 10
//en caso contrario vale el numerocarta
public int obtenervalor()
{
int numerocarta=indice %13;
if (numerocarta>=2&& numerocarta<=10)
return numerocarta;
else
return 10;
}
//metodo que devuelve el valor a la carta con base en el valor del puntaje.
//sirve para determinar el valor del As cuando el puntaje es igual a 10 o 20
//es una sobre carga del metodo anterior
public int obtenervalor(int puntaje)
{
int numeroCarta;
if (numeroCarta >=2&& numeroCarta<=10)
return numeroCarta;
else if (numeroCarta==1)
{
if (puntaje==10)
return 11;
else
if (puntaje==20)
return 1;
else
return 10;
}
else
return 10;
}
}