Swift: Как подать на определенном рисунке, если нажата кнопка? Утверждение?

Вопрос:

Итак, у меня есть игра с tic tac toe, и мне нужна помощь с большим выражением, чтобы сказать в основном:

If button 1 = pressed then feed this set of imgs into the line of code annotated below, else feed in these imgs

И сделайте это для 6 или около того различных кнопок. Мне просто нужна помощь в логистике, и я новичок, поэтому, пожалуйста, объясните все предложения четко. Спасибо!

Мой код:

func setImgforCircle(spot:Int, player:Int) {
var playerMark = player == 1 ? "Red_x" : "Red_o"

if blueBtnClicked(sender: UIButton.self) = highlighted {  //This block does not work
playerMark = player == 1 ? "Blue_x" : "Blue_o"
}

plays[spot] = player
switch spot {
case 1:
circle1.image = UIImage(named: playerMark)
case 2:
circle2.image = UIImage(named: playerMark)
case 3:
circle3.image = UIImage(named: playerMark)
case 4:
circle4.image = UIImage(named: playerMark)
case 5:
circle5.image = UIImage(named: playerMark)
case 6:
circle6.image = UIImage(named: playerMark)
case 7:
circle7.image = UIImage(named: playerMark)
case 8:
circle8.image = UIImage(named: playerMark)
case 9:
circle9.image = UIImage(named: playerMark)

default:
circle2.image = UIImage(named: playerMark)
}

Ответ №1

Храните круги в массиве, а затем вы можете получить доступ к правильному кругу по месту:

var circles = [circle1,circle2,circle3,etc]
circles[spot].image = UIImage(named: playerMark)

Вы должны создать систему именования для изображений. Что-то вроде:

<player>_<spot>_<type>

Таким образом, примерное имя изображения будет

1_3_o

Затем вы можете запрограммировать свое имя изображения:

var imageName = "\(player)_\(spot)_\(type)"
circles[spot].image = UIImage(named: imageName)

Я не понимаю, какую логику вы пытаетесь использовать, чтобы определить, какой из них “тип”, но я полагаю, что это должно основываться на том, кто это делает.

Оцените статью
TechArks.Ru
Добавить комментарий