• Jueves 16 de Mayo de 2024, 23:32

Autor Tema:  revicion de un algoritmo  (Leído 1110 veces)

VERO0190

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
revicion de un algoritmo
« en: Viernes 28 de Mayo de 2010, 03:07 »
0
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;
    }



}