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