Task_1_1_2#3
Conversation
|
Не совсем уверен что он берет Task_1_1_2 и вообще мне кажется оно сломалось |
|
|
Sharapov-Maksim
left a comment
There was a problem hiding this comment.
Мягкий дедлайн зачтён
| package qangan.blackjack; | ||
|
|
There was a problem hiding this comment.
package не соответствует действительности
| package qangan.blackjack; | ||
|
|
There was a problem hiding this comment.
Названия пакетов лучше строго lowercase писать (это про CardRelated и PlayerRelated)
| /** Deck class constructor. */ | ||
| public Deck() { |
There was a problem hiding this comment.
Для тестирования вам пригодится ещё возможность задавать фиксированную наперёд заданную колоду
|
|
||
| import org.junit.jupiter.api.Test; | ||
|
|
||
| public class BlackjackTest { |
There was a problem hiding this comment.
Тесты лучше разбить на отдельные классы, в соответствии с тестируемыми классами
| void aceIncrease() { | ||
| boolean validated = false; | ||
| for (int tries = 0; tries < 200; tries++) { | ||
| Deck deck = new Deck(); | ||
| deck.shuffle(); | ||
| Hand hand = new Hand(); | ||
| int before = hand.getScore(); | ||
| hand.addCard(deck); | ||
| Card last = hand.getCard(hand.getCardCount() - 1); | ||
| if (last.getRank() == Rank.ACE && before <= 10) { | ||
| assertEquals(before + 11, hand.getScore()); | ||
| validated = true; | ||
| break; | ||
| } | ||
| } | ||
| assertTrue(validated); | ||
| } |
There was a problem hiding this comment.
Какой-то сложный тест. Он упростится (и станет воспроизводимым), если сделать предопределённую колоду.
| /** Draw card. */ | ||
| public void addCard(Deck deck) { |
There was a problem hiding this comment.
Когда будете доделывать, подумайте, насколько вам удобно здесь передавать именно колоду. Может будет удобнее передавать только карту. Или в качестве возвращаемого значения вернуть взятую карту. Ведь "игре" тоже полезно знать, какую карту получает игрок (для логирования).
Сделал все игровые сущности кроме дилера и написал немного тестов