elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Algun forero de buena fe que me lo pueda pasar a python3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algun forero de buena fe que me lo pueda pasar a python3  (Leído 2,325 veces)
Weng Weng

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Algun forero de buena fe que me lo pueda pasar a python3
« en: 3 Diciembre 2018, 20:28 pm »

public class SieteyMedia {
 public static void main(String[] args) {
  //Se crean el mazo, el jugador y la banca
  Mazo mazo = new Mazo();
  ManoSieteyMedia jugador = new ManoSieteyMedia();
  ManoSieteyMedia banca = new ManoSieteyMedia();
  
  //Se reparten las cartas iniciales:
                //Una al jugador y una a la banca
  jugador.agnadeCarta(mazo.daCarta());
  banca.agnadeCarta(mazo.daCarta());
  
  //El jugador pide cartas mientras según su estrategia
  while(jugador.cuentaPuntos()<=5){
   System.out.println(
                              "El jugador pide una carta extra");
   jugador.agnadeCarta(mazo.daCarta());
  }
  
  //La banca se planta si el jugador se ha pasado.
                //En caso contrario pide cartas
  if(jugador.cuentaPuntos()<=7.5){
                  //el jugador no se ha pasado
   while(banca.cuentaPuntos()<7.5 &&
                            banca.cuentaPuntos()<jugador.cuentaPuntos()){
    System.out.println(
                                       "La banca pide una carta extra");
    banca.agnadeCarta(mazo.daCarta());
   }
  }
  //Se cuentan los puntos obtenidos y se decide el ganador
  double puntosJ = jugador.cuentaPuntos();
  double puntosB = banca.cuentaPuntos();
  
  if(puntosJ<=7.5 && (puntosB>7.5 || puntosJ>puntosB)){

   System.out.println("Gana el jugador con "+jugador
                            +" ("+ puntosJ+" puntos) frente a "+ banca+
                            " ("+puntosB+" puntos) de la banca");
  }else if (puntosB<=7.5){
   System.out.println("Gana la banca con "
                            +banca+" ("+ puntosB+
                            " puntos) frente a "+ jugador+" ("+
                            puntosJ+" puntos) del jugador");
  }else{
   System.out.println("No hay ganador: Jugador "+
                            jugador+" ("+puntosJ+" puntos) y banca "
                            + banca +" ("+
                            puntosB+" puntos) se han pasado");
  }
 }
}
Ahora procedo a poneros las soluciones ;)

Primero la clase abstracta Mano.

public abstract class Mano{
 protected Carta[] cartas;
 protected int numCartas;
 static final int TOPE = 20;
 public Mano() {
  numCartas = 0;
  cartas = new Carta[TOPE];
 }
 
 public Mano(int num) {
  cartas = new Carta[num];
  numCartas = 0;
 }
 
 public void descartaTodas() {
  numCartas = 0;
 }
 
 public void agnadeCarta(Carta c) {
  if(numCartas >= TOPE)
               throw new RuntimeException("No puedes añadir mas cartas");
  cartas[numCartas] = c;
  numCartas ++;
 }
 
 public int numeroDeCartas() {
  return numCartas;
 }
 
 public abstract double cuentaPuntos();
 
 public String toString() {
  String std = "";
  for(int i = 0; i < numCartas; i++) {
   std = std + " "+ cartas;
  }
  return std;
 }
}

Ahora os pondré la clase Carta: Nota: Fijaos que el enum de los palos va dentro de ésta ;)
public class Carta {
 public static enum Palo { PICA, TREBOL, DIAMANTE, CORAZON};
 private static String[] nombreCarta = {"AS", "2", "3", "4",
                                               "5", "6", "7", "8",
                                               "9", "10", "J", "Q",
                                               "K"};
 
 private int valor;
 private Palo palo;
 
 public Carta(int v, Palo p){
  valor = v;
  palo = p;
 }
 public int valor() {return valor;}
 public Palo palo() {return palo;}
 public String toString() {
  return nombreCarta[valor-1] + " de " + palo;
 }
 
}
Vamos ahora con la clase Mazo ;)
import java.util.Random;
public class Mazo {
 private static Random alea = new Random();
 private Carta[] mazo;
 private int numCartas;
 
 public Mazo() {
  mazo = new Carta[52]; //Creo el array de cartas.
  for(int n = 1; n < 13; n++) {
   for(Carta.Palo p: Carta.Palo.values()) {
    mazo[numCartas] = new Carta(n, p);
    numCartas++;
   }
  }
 }

 public void baraja() {
  for(int i = 0; i< numCartas; i++) {
   int r = alea.nextInt(numCartas);
   Carta c = mazo;
   mazo = mazo[r];
   mazo[r] = c;
  }
 }

 public int numeroDeCartas() {
  return numCartas;
 }
 
 public Carta daCarta(){
  if (this.numeroDeCartas()==0)
                   throw new RuntimeException("No quedan cartas.");
  numCartas--;
  return mazo[this.numeroDeCartas()];
 }
}

Y ya por último con la clase ManoSieteYMedia:
public class ManoSieteyMedia extends Mano{
 public double cuentaPuntos() {
  double puntos = 0;
  for(int i = 0; i<numCartas; i++) {
   puntos += cartas.valor();
  }
  return puntos;
 }
}


« Última modificación: 4 Diciembre 2018, 23:56 pm por Weng Weng » En línea

Machacador


Desconectado Desconectado

Mensajes: 5.018


El original...


Ver Perfil WWW
Re: Algun forero de buena fe que me lo pueda pasar a python3
« Respuesta #1 en: 3 Diciembre 2018, 20:47 pm »

-------E R R O R ------


« Última modificación: 3 Diciembre 2018, 21:56 pm por Machacador » En línea

"Solo tu perro puede admirarte mas de lo que tu te admiras a ti mismo"
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Algun forero de buena fe que me lo pueda pasar a python3
« Respuesta #2 en: 3 Diciembre 2018, 21:13 pm »

No lo he probado, pero quizás te venga bien: https://pypi.org/project/java2python/
En línea


Interesados hablad por Discord.
Weng Weng

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: Algun forero de buena fe que me lo pueda pasar a python3
« Respuesta #3 en: 4 Diciembre 2018, 23:57 pm »

No lo he probado, pero quizás te venga bien: https://pypi.org/project/java2python/


GRACIAS, se te ve buen zamarro!!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algun sitio en donde pueda descargar anime?
Dudas Generales
flacc 4 4,422 Último mensaje 7 Abril 2012, 06:05 am
por flacc
¿Algún trabajo que se pueda hacer desde casa con el pc? « 1 2 3 4 »
Foro Libre
Hason 30 10,642 Último mensaje 28 Julio 2016, 12:17 pm
por okik
hay algún script con bat que pueda buscar y mandar la dirección IP
Scripting
lordluisiv 4 4,551 Último mensaje 27 Septiembre 2017, 13:55 pm
por warcry.
Presentación nuevo forero
Foro Libre
Arrako23 4 2,829 Último mensaje 18 Febrero 2022, 14:48 pm
por DJKENSHIN
Lo que le falta a cada forero.
Foro Libre
Tachikomaia 8 5,182 Último mensaje 1 Abril 2023, 03:41 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines