Мне нужно найти процент вероятности для получения одной пары карт из 5-карточной руки путем симуляции.
До сих пор я создал классы "Карта" (функции: значение карты, масть, сравнение с другой картой по значению) и "Рука" (функции: addCard и isOnePair, которая возвращает значение true, только если экземпляр руки имеет одну пару карточек в нем).
Card.java:
public enum CardValue { s2, s3, s4, s5, s6, s7, s8, s9, s10, J, Q, K, A }
public enum CardSuit { C, D, H, S }
private CardValue value;
private CardSuit suit;
public Card(CardValue value, CardSuit suit) {
this.value = value;
this.suit = suit;
}
@Override
public boolean equals(Object obj) {
if(obj == this) {
return true;
}
if(!(obj instanceof Card)) {
return false;
}
Card card = (Card)obj;
return card.value == this.value;
}
Hand.java
private Set<Card> hand;
public Hand() {
this.hand = new HashSet<>();
}
public void addCard(Card card) {
this.hand.add(card);
}
@Override
public String toString() {
return this.hand.toString();
}
private boolean isOnePair() {
int counter = 0;
for(Card card : hand){
for(Card card2 : hand) {
if(card.equals(card2)) {
counter++;
}
}
if(counter == 2) {
return true;
}
counter = 0;
}
return false;
}