我有一个基于尝试而不是得分的游戏。我希望每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的任何间隔。
答案 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整除,即。 %
。