swanrnd
@swanrnd
Издатель HTML5 игр

Как хранить данную структуру данных?

Есть у нас 10 игроков у каждого есть свой номер. Не обязательно по порядку.
1,7,25,13,44,18,77,84,33,10
На игрок могут быть наложены быть эффекты, например:
Яд с уроном 3-5 на 5 ходов и горение на 10-20 на 2 хода. Одновременно может быть неограниченное количество эффектов.
P[1] [1,3,7,5],[2,10,20,2].
P[7] [1,3,7,5]
P[25] [2,10,20,2]
Эффекты могут меняться. Допустим один кончился он удалился, либо добавляться новые.

Мы проходим по всем эффектам каждый раз, когда доходим до нужного.

Поэтому нужно:
1) возможность проходить по списку эффектов.
2) добавление в конец
3) удаление из любого места.
Хотя тут спорно, может стоит отмечать, как "Закончилось" и пропускать

var P = new Dictionary();

Либо в структуре должны лежать LIST<> состоящий из массивов?

Как все это хранить?
  • Вопрос задан
  • 359 просмотров
Решения вопроса 2
master2016
@master2016
Всё нормально.
1. id игрока с прикрепленным к нему массивом ссылок на эффекты (с длительностью эффекта)
2. список всех возможных эффектов.
Ответ написан
lexxpavlov
@lexxpavlov
Программист, преподаватель
Игроки в списке. У каждого игрока список наложенных эффектов - List<Effect>. Эффект не должен обрабатывать изменения на игрока, он только хранит информацию об эффекте (это будут очень простые классы с парой-тройкой свойств).

Игрок не должен сам обрабатывать эффекты, для обработки сделать отдельный класс, что-то типа EffectDealer. И в классе обработки хода для каждого игрока запускать этот класс - что-то типа new EffectDealer(gamer).Deal();

И для каждого эффекта у вас будет отдельный класс, который будет изменять свойства игрока в зависимости от эффекта.

Умеете пользоваться интерфейсами? С ними будет гораздо удобнее, если сделать такую архитектуру, как я предлагаю. Если нужна помощь по моей архитектуре, то скажите, я напишу образцы классов для пары эффектов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
В классе игрока(актора) добавьте массив или список наложенных эффектов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы