#swift #if-statement #enums #switch-statement
#swift #if-оператор #перечисления #switch-statement
Вопрос:
Итак, я создаю карточную игру с изображением на каждой карте, и я должен использовать swift, чтобы взять данные с карты и превратить их в искусство. Каждая карта имеет 4 атрибута, и каждый атрибут имеет 3 возможности.
Перед тем, как карта будет иметь 4 атрибута (цвет, затенение, форму, числовые формы) в качестве свойств, у меня все готово к работе.
Я попробовал сделать это с помощью циклов if.
if color = 1{
if shape = 1{
if shading = 1{
if numOfShapes = 1 {
Rectangle().fill(color1).opacity(0.5)
}
if numOfShapes = 2 {
Rectangle().fill(color1).opacity(0.5)
Rectangle().fill(color1).opacity(0.5)
}
}
if shading = 2{
}
if shading = 3{
}
}
if shape = 2
if shape = 3
}
и это не сработало, потому что существует слишком много возможных комбинаций для компиляции swift. И тогда я попробовал составлять словари. Они будут иметь ссылающиеся числа в качестве ключей, а значения будут являться требуемым кодом в for строки
var symboler = [
1: "Rectangle()",
2: "Circle()",
3: "RoundedRectangle(cornerRadius: 12)"
]
Но я не смог найти способ превратить строку обратно в исполняемый код.
Каково решение этой проблемы?
Комментарии:
1. почему цвет и затенение находятся в верхних условиях if? разве это не должно быть
swicth
в форме и внутри каждого случая цикла for на основеnumOfShapes
и применять цвет и затенение к каждой фигуре? Таким образом, количество случаев будет равно количеству форм, которые вы поддерживаете2. Я не знаю решения, которое вы предлагаете, или как это сделать, но я был бы рад попробовать.