每次第n次尝试我该怎么办?

时间:2017-06-08 15:52:55

标签: swift

我有一个基于尝试而不是得分的游戏。我希望每10次尝试显示一次弹出窗口。使用Swift计算每10个区间的最佳方法是什么?

目前我调用一个函数来增加尝试值,包括:gamesPlayedSaved += 1。我在here uses timers上找到的最接近的问题,在我的案例中不起作用。

到目前为止,我有这个(非常非常):

if(gamesPlayedSaved == 10 ||
                    gamesPlayedSaved == 20 ||
                    gamesPlayedSaved == 30 ||
                    gamesPlayedSaved == 40 ||
                    gamesPlayedSaved == 50 ||
                    gamesPlayedSaved == 60 ||
                    gamesPlayedSaved == 70 ||
                    gamesPlayedSaved == 80 ||
                    gamesPlayedSaved == 90 ||
                    gamesPlayedSaved == 100){
    // call pop up
}

并且它也没有考虑超过100的任何间隔。

3 个答案:

答案 0 :(得分:2)

这可以使用数学来解决。您只需要确定gamesPlayedSaved是否是10的倍数。为此,请使用模运算符gamesPlayedSaved / 10查找%的余数并检查它是否为0:

if gamesPlayedSaved % 10 == 0 && gamesPlayedSaved > 0 {
    // show pop up
}

或者,每次达到10时重置计数器:

if gamesPlayedSaved == 10 {
    // show pop up
    gamesPlayedSaved = 0
}

答案 1 :(得分:1)

使用模数%。 if (gamesPlayedSaved % 10 == 0)

它会在10分之后找到余数。

答案 2 :(得分:1)

看看这个:

public void Continue1()
    {            
            BillingInformation.HeaderContainer.Style.Add("pointer-events", "auto");
            BillingInformation.HeaderContainer.Style.Add("cursor", "pointer");

            ShippingInformation.HeaderContainer.Style.Add("pointer-events", "auto");
            ShippingInformation.HeaderContainer.Style.Add("cursor", "pointer");

            DelieveryMethodsPanel.HeaderContainer.Style.Add("pointer-events", "none");

            PromoCode.HeaderContainer.Style.Add("pointer-events", "none");

            PaymentInformation.HeaderContainer.Style.Add("pointer-events", "none");

    }

哪个输出:

for i in 1...100 {
    if i % 10 == 0 {
        print("Yep: \(i)")
    }
}

Yep: 10 Yep: 20 Yep: 30 Yep: 40 Yep: 50 Yep: 60 Yep: 70 Yep: 80 Yep: 90 Yep: 100 运算符名为 modulo ,它将数字A与数字B分开时返回余数。在您的情况下,您感兴趣的是当比赛次数为可被10整除,即。 %