Я собираюсь создать класс Player и AI Players (AIBasicPlayer, AINormalPlayer и AIHardPlayer) для моей карточной игры (джин-рамми).Каков наилучший подход ООП или Шаблон проектирования для создания указанных классов?Я проверил некоторые из карточных игр с открытым исходным кодом и сравнил их подходы, вот следующие подходы, которые я собрал:
***Classes**
1. player class only
public class player{
}
public class AIPlayer{
}
2. base class player
public abstract class player{
}
public class HumanPlayer extends player{
}
public class APlayer extends player{
}
3. interface player
public interface IPlayer{
}
public class Player implements IPlayer{}
public class AIPlayer implements IPlayer{}
*** Methods**
takeTurn()
doDiscard()
doDraw() //pick from discard pile or deck
doKnock()
Я понимаю использование вышеуказанных кодов, но я не мог решить, какой из них применитьили реализовать. Я новичок в ООП или Design Pattern, и ваши советы и пример кода будут очень полезными.