Что бы это ни стоило, я обычно считаю продуктивным попытаться начать думать в проблемной области, а не в коде, как это было затронуто другими.
Я предполагаю, что это настольная игра, похожая на монополию. Как будет происходить оплата в реальной жизни? Какой процесс на самом деле пытаются моделировать?
Я понимаю, что вы заявили, что у вас есть класс банковского счета, но если процесс заключается в том, что Джо Блоггс действительно платит наличными (из своего тайника в бачке унитаза) Фреду, не имея никакого отношения к банку, тогда он не собирается нужен счет в банке. Если затем Фред решит в какой-то момент положить его в банк, а не продолжать запихивать его под матрас (или игровую доску), то в этот момент ему понадобится банк и счет.
Предполагая, что player может получить/получить доступ к другим игрокам, первый процесс увидит (в Player) что-то вроде:
void payPlayer( player, amount )
{
spendCash( amount ); // reduces stash by "amount"
player.recieveCash( amount );
}
Размер тайника с деньгами может быть просто атрибутом класса игрока.
Второй вид деятельности — это совсем другое. Теперь Фред должен сначала сообщить своему банку, что он хочет внести 100 долларов, а затем его банк либо через дырку в стене, либо через кассира (надеюсь) кредитует его Счет. Так что Фреду сейчас действительно нужен банк и, возможно, счет. Но зачем ему нужна учетная запись? Какой цели он служит в игре? Это обязательно необходимый компонент программы или он просто есть, потому что в реальной жизни деньги уходят в банки?
Кроме того, есть случай, когда игрок действительно хочет перевести банковские средства со своего счета на счет другого игрока в качестве платежа. В этом сценарии обоим игрокам нужен банк и счет, но только банк может фактически переводить средства, поэтому для этого им просто нужно знать о банке. Конечно, это можно было бы сделать только в том случае, если бы у банка была какая-то другая, значительная роль в игре.
Так что ответ, как реализовать перевод денег в игре, полностью зависит от игровой механики. Если вам действительно нужен класс, похожий на банковский счет, то можно с уверенностью сказать, что у вас должен быть банк. Но вы должны спросить себя, зачем вам вообще нужны летающие вокруг банковские счета? И если банковский счет игрока напрямую связан с ним, то действительно ли это больше банковский счет или просто Джо опускает руку в бачок унитаза?
person
Mike G
schedule
28.02.2012