Я пока реализовал только через ООПНуууу нет. У тебя класс Program делает вообще всё: и заполняет данные, и обрабатывает и выводит.
Вообще у тебя три одинаковых блока кода, отличаются только тем что выйдет в консоль и тем что подается в цикл. Ты бы это мог передавать параметрами в метод ChooseRandomPerk и вызвать его три раза. Так же ты бы мог добавить цвет в свойства класс perk и обрабаывать как один массив не вызывая три раза.
Ну и по логике, тебе впринципе не нужен цикл, ты можешь просто обратиться к нужному элементу и вывести его параметры
Не вникал в логику, но вынеси перки в отдельный статический класс. Можно отдельным файлом. Уже будет лучше. При чем ты можешь сделать AllPerks, в нем Red, Blue, Yellow, и дальше уже в них отдельные перки.
Наверно повторюсь во многом, но вот что приходит лично мне в голову. Ты упомянул, что данный код - лишь часть программы, поэтому исходя из того, что ты привел:
Во-первых, у тебя логика перемешана с данными, так лучше не делать. Вынеси и храни перки где-то в другом месте, лучше вообще в каком-нибудь json, который можно поменять без необходимости собирать программу заново.
Да, нет необходимости гонять циклы, просто бери элемент по рандомному индексу. Я бы добавил приватный метод. который принимает на вход массив и возвращает\выводит рандомный элемент из него.
Не очень понятно, где применяется haveInfluence, ты говоришь, что должен браться всегда один перк, который имеет влияние и остальные без.
Может стоит группировать их по этому признаку тоже? Perk является классом, так что ты можешь создать еще два массива, сложить туда объекты которые влияют и не влияют. И брать один рандомный с первого массива и остальное нужно количество со второго.
Нужна ли тебе группировка по цвету вовсе - тоже тяжело сказать.
По поводу Dictionary, ты можешь использовать для ассоциации цвет => перки, но мне кажется это меньшая из проблем.
Я пока реализовал только через ООПНуууу нет. У тебя класс Program делает вообще всё: и заполняет данные, и обрабатывает и выводит.
Вообще у тебя три одинаковых блока кода, отличаются только тем что выйдет в консоль и тем что подается в цикл. Ты бы это мог передавать параметрами в метод ChooseRandomPerk и вызвать его три раза. Так же ты бы мог добавить цвет в свойства класс perk и обрабаывать как один массив не вызывая три раза.
Ну и по логике, тебе впринципе не нужен цикл, ты можешь просто обратиться к нужному элементу и вывести его параметры
Не вникал в логику, но вынеси перки в отдельный статический класс. Можно отдельным файлом. Уже будет лучше.
При чем ты можешь сделать AllPerks, в нем Red, Blue, Yellow, и дальше уже в них отдельные перки.
Выбери как тебе удобнее, проще и привычней писать. В данном случае не важно как до тех пор пока оно работает.
Понял, спасибо!
Наверно повторюсь во многом, но вот что приходит лично мне в голову.
Ты упомянул, что данный код - лишь часть программы, поэтому исходя из того, что ты привел:
Во-первых, у тебя логика перемешана с данными, так лучше не делать. Вынеси и храни перки где-то в другом месте, лучше вообще в каком-нибудь json, который можно поменять без необходимости собирать программу заново.
Да, нет необходимости гонять циклы, просто бери элемент по рандомному индексу. Я бы добавил приватный метод. который принимает на вход массив и возвращает\выводит рандомный элемент из него.
Не очень понятно, где применяется haveInfluence, ты говоришь, что должен браться всегда один перк, который имеет влияние и остальные без.
Может стоит группировать их по этому признаку тоже? Perk является классом, так что ты можешь создать еще два массива, сложить туда объекты которые влияют и не влияют. И брать один рандомный с первого массива и остальное нужно количество со второго.
Нужна ли тебе группировка по цвету вовсе - тоже тяжело сказать.
По поводу Dictionary, ты можешь использовать для ассоциации цвет => перки, но мне кажется это меньшая из проблем.
Блин интересная тема, а я уже спать(
Слышь. Помогай.