1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Re: Programa de Java: ArrayIndexOutOfBoundsException Error
« en: 15 de Junio 2021, 02:38 »
¡Muchas gracias por toda tu ayuda Kabuto!!!!! <3
¡Ya terminé el programa! Te lo comparto para completar el thread. (si tienes algún otro feedback, por favor - adelante!)
Main
Card
Deck
Ya pude limpiar mucho la clase main()... honestamente se ve más bonita así... sin tanto código dentro de ella.
¡Gracias otra vez Kabuto!
¡Ya terminé el programa! Te lo comparto para completar el thread. (si tienes algún otro feedback, por favor - adelante!)
Main
Código: [Seleccionar]
public class Main {
public static void main(String[] args) {
Deck mazo = new Deck();
System.out.println("Deck de Cartas para Iniciar: " + mazo.getSize());
for (Card elemento : mazo.getDeck()) {
System.out.print(elemento + " / ");
}
System.out.println("\n");
mazo.suflle();
System.out.println("\n");
mazo.head();
System.out.println("\n");
mazo.pick();
System.out.println("\n");
mazo.hand();
}
}
Card
Código: [Seleccionar]
public class Card {
private final String palo;
private final String color;
private final String valor;
public Card(String palo, String color, String valor) {
this.palo = palo;
this.color = color;
this.valor = valor;
}
@Override
public String toString() {
return "Palo: " + palo + " | " + "Color: " + color +
" | " + "Valor: " + valor;
}
}
Deck
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Deck {
private final String[] paloDeck = {"corazones", "diamantes", "trébol", "picas"};
private final String[] colorDeck = {"rojo", "negro"};
private final String[] valorDeck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "A", "J", "Q", "K"};
private ArrayList<Card> deck;
public Deck() {
deck = new ArrayList<Card>();
for (int palo = 0; palo < 2; palo++)
for (int valor = 0; valor < valorDeck.length; valor++)
deck.add(new Card(paloDeck[palo], colorDeck[0], valorDeck[valor]));
for (int palo = 2; palo < 4; palo++)
for (int valor = 0; valor < valorDeck.length; valor++)
deck.add(new Card(paloDeck[palo], colorDeck[1], valorDeck[valor]));
}
public int getSize() {
return deck.size();
}
public ArrayList<Card> getDeck() {
return deck;
}
public void suflle() {
Collections.shuffle(deck);
System.out.println("Se mezcló el Deck.");
for (Object elemento : deck) {
System.out.print(elemento + " / ");
}
}
public void head(){
System.out.println(deck.get(0));
deck.remove(0);
System.out.println("Quedan " + deck.size() + " cartas");
}
public void pick() {
Random random = new Random();
System.out.println(deck.get(random.nextInt(deck.size())));
deck.remove(random.nextInt(deck.size()));
System.out.println("Quedan " + deck.size() + " cartas");
}
public void hand() {
for(int i=0; i<=4; i++){
System.out.println(deck.get(i));
}
for(int i=0; i<=4; i++){
deck.remove(i);
}
System.out.println("Quedan " + deck.size()+ " cartas");
}
}
Ya pude limpiar mucho la clase main()... honestamente se ve más bonita así... sin tanto código dentro de ella.
¡Gracias otra vez Kabuto!