Meine Frage wäre, warum er ind er Situation nicht die random generierte Karte ausgibt (Code anbei).
Oder auch hier nochmal:
package schwimmen;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Card> cardList = new ArrayList<>();
Hand hand = new Hand(cardList);
hand.addCards();
System.out.println(cardList.toString());
}
}
package schwimmen;
import java.util.ArrayList;
import java.util.List;
public class Hand {
public List<Card> cardList;
public Hand(List<Card> cardList) {
this.cardList = cardList;
}
public List<Card> addCards() {
Card card=new Card();
cardList.add(card.generateCard(card));
return cardList;
}
public String toString() {
return cardList.get(0).getCardName()+""+cardList.get(0).getCardValue()+""+cardList.get(0).getCardPicture();
}
}
package schwimmen;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Card {
/**
* final arrays because these can no longer be changed and are universal
* private variables to make the random cards
*/
private String cardName;
private int cardValue;
private String cardPicture;
private final String[] CARD_NAMES = new String[]{null, "7", "8", "9", "10", "Jack", "Lady", "king", "ace"};
private final int[] CARD_VALUES = new int[]{0, 7, 8, 9, 10, 10, 10, 10, 11};
private final String[] CARD_PICTURES = new String[]{null, "Cross", "Spade", "Diamond", "Heart"};
/**
* default constructor
*/
public Card() {
}
public Card(String cardName, int cardValue, String cardPicture) {
this.cardName = cardName;
this.cardValue = cardValue;
this.cardPicture = cardPicture;
}
public String addCardName(String cardName) {
this.cardName = cardName;
return this.cardName;
}
public int addCardValue(int cardValue) {
this.cardValue = cardValue;
return this.cardValue;
}
public String addCardPicture(String cardPicture) {
this.cardPicture = cardPicture;
return this.cardPicture;
}
public int getCardValue() {
return cardValue;
}
public String getCardName() {
return cardName;
}
public String getCardPicture() {
return cardPicture;
}
public Card generateCard(Card card) {
card.addCardName(CARD_NAMES[(int) (Math.random() * 8 + 1)]);
card.addCardValue(CARD_VALUES[(int) (Math.random() * 8 + 1)]);
card.addCardPicture(CARD_PICTURES[(int) (Math.random() * 4 + 1)]);
return card;
}
}
Oder auch hier nochmal:
package schwimmen;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Card> cardList = new ArrayList<>();
Hand hand = new Hand(cardList);
hand.addCards();
System.out.println(cardList.toString());
}
}
package schwimmen;
import java.util.ArrayList;
import java.util.List;
public class Hand {
public List<Card> cardList;
public Hand(List<Card> cardList) {
this.cardList = cardList;
}
public List<Card> addCards() {
Card card=new Card();
cardList.add(card.generateCard(card));
return cardList;
}
public String toString() {
return cardList.get(0).getCardName()+""+cardList.get(0).getCardValue()+""+cardList.get(0).getCardPicture();
}
}
package schwimmen;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Card {
/**
* final arrays because these can no longer be changed and are universal
* private variables to make the random cards
*/
private String cardName;
private int cardValue;
private String cardPicture;
private final String[] CARD_NAMES = new String[]{null, "7", "8", "9", "10", "Jack", "Lady", "king", "ace"};
private final int[] CARD_VALUES = new int[]{0, 7, 8, 9, 10, 10, 10, 10, 11};
private final String[] CARD_PICTURES = new String[]{null, "Cross", "Spade", "Diamond", "Heart"};
/**
* default constructor
*/
public Card() {
}
public Card(String cardName, int cardValue, String cardPicture) {
this.cardName = cardName;
this.cardValue = cardValue;
this.cardPicture = cardPicture;
}
public String addCardName(String cardName) {
this.cardName = cardName;
return this.cardName;
}
public int addCardValue(int cardValue) {
this.cardValue = cardValue;
return this.cardValue;
}
public String addCardPicture(String cardPicture) {
this.cardPicture = cardPicture;
return this.cardPicture;
}
public int getCardValue() {
return cardValue;
}
public String getCardName() {
return cardName;
}
public String getCardPicture() {
return cardPicture;
}
public Card generateCard(Card card) {
card.addCardName(CARD_NAMES[(int) (Math.random() * 8 + 1)]);
card.addCardValue(CARD_VALUES[(int) (Math.random() * 8 + 1)]);
card.addCardPicture(CARD_PICTURES[(int) (Math.random() * 4 + 1)]);
return card;
}
}