Как я могу сравнить две строки, чтобы увидеть, если одна больше другой - PullRequest
0 голосов
/ 10 января 2019

Я работаю над основной карточной игрой. У меня есть пользователь, перетасовывающий две карты, и я хочу знать, равны ли карты или одна больше другой или меньше другой. В настоящее время я могу только сказать, равны ли они.

   //Randomize Dealer Card
func randomDealerNumber(){

    let randomNumber = arc4random_uniform(8)
    if randomNumber == 0 {

        dealerNum.text = "10"
    } else if randomNumber == 1 {

        dealerNum.text = "1"
    } else if randomNumber == 2 {

        dealerNum.text = "2"
    } else if randomNumber == 3 {

        dealerNum.text = "3"
    } else if randomNumber == 4 {

        dealerNum.text = "4"
    }else if randomNumber == 5 {

        dealerNum.text = "5"
    } else if randomNumber == 6 {

        dealerNum.text = "6"
    } else if randomNumber == 7 {

        dealerNum.text = "7"
    }
}



let playerCard = playerNum.text
let dealerCard = dealerNum.text
if playerCard == dealerCard {
    print("These two strings are considered equal")
}

Ответы [ 3 ]

0 голосов
/ 10 января 2019

В основном вы хотите сравнить целочисленные значения текстовых полей. Поэтому вам нужно преобразовать их в целое число. (например, от 10 до 10)

Вы можете сделать это

if(Int(playerCard) > Int(dealerCard)){......}

Просто убедитесь, что вы добавили достаточное количество проверок безопасности, чтобы проверить, можно ли преобразовать введенное значение в целое или нет.

0 голосов
/ 10 января 2019

Вы не должны хранить значения в ваших UIControl s. Значения должны быть в переменных, которые представляют вашу модель, а затем просто сравнить значения в вашей модели.

Я бы предложил сохранить случайные значения, которые вы генерируете, как Int, а затем просто сравнить их. Добавление наблюдателей свойств (didSet) к ним позволит вам установить метки при установке этих значений:

class ViewController: UIViewController {
    @IBOutlet weak var dealerNum: UILabel!
    @IBOutlet weak var playerNum: UILabel!

    var dealerCard = 0 {
        didSet {
            dealerNum.text = String(dealerCard)
        }
    }

    var playerCard = 0 {
        didSet {
            playerNum.text = String(playerCard)
        }
    }

    func randomDealerNumber() {
        var randomNumber = Int.random(in: 0...7)
        if randomNumber == 0 {
            randomNumber = 10
        }
        dealerCard = randomNumber
    }

    func compare() {
        if playerCard == dealerCard {
            print("same")
        } else if playerCard < dealerCard {
            print("less than")
        } else {
            print("greater than")
        }
    }
}
0 голосов
/ 10 января 2019

Возможно, здесь есть какой-то недосмотр, но если я правильно понимаю, то ваше решение довольно простое. Еще одно утверждение:

if playerCard > dealerCard{
    print("Player wins!")
}

PPShein правильно. Если вы говорите о строках, вы должны использовать count.

...