Swiftでは、UIの特定のボタンに基づいてスコアを集計する簡単な「ゲーム」があります。 15個の通常ボタン。 1 "streak broken"ボタンをクリックします。 「ストライクブレイク」ボタンをタップするとスコアにスコアが反映され、ストリークボーナスが追加されます。Swift - ボーナスストリークを追加するロジック
通常のボタンが押されるまで、正常に動作します。その後、私のストリークはゼロになり、次の「ノーマル・ボタン」を押すと誤ってスコアが追加されます。ここで
は私のログです:
Streak counter: 1/Bonus point total: 0/Score total: 3/TOTAL SCORE: 3
Streak counter: 2/Bonus point total: 0/Score total: 6/TOTAL SCORE: 6
Streak counter: 3/Bonus point total: 0/Score total: 9/TOTAL SCORE: 9
Streak counter: 4/Bonus point total: 0/Score total: 12/TOTAL SCORE: 12
Streak counter: 5/Bonus point total: 0/Score total: 15/TOTAL SCORE: 15
Streak counter: 6/Bonus point total: 0/Score total: 18/TOTAL SCORE: 18
Streak counter: 7/Bonus point total: 2/Score total: 21/TOTAL SCORE: 23
Streak counter: 8/Bonus point total: 4/Score total: 24/TOTAL SCORE: 28
Streak counter: 9/Bonus point total: 6/Score total: 27/TOTAL SCORE: 33
STREAK BROKEN!
Streak counter: 1/Bonus point total: 0/Score total: 30/TOTAL SCORE: 30
あなたはそのSTREAK一度BROKENを見ることができます!ボタンをタップすると、次の通常のボタンを押したときにスコアが正しく加算されません。 (通常のタップ/ストリークボーナス用0 +3)合計スコア36でなければならない30
ノーマルボタンコードを押下:
// Calculate the addition of a score:
normalScore += 3
// Calculate the streak:
streakCounter += 1
switch streakCounter {
case 1...6:
bonusPointTotal += 0
case 7...9:
bonusPointTotal += 2
case 10...12:
bonusPointTotal += 3
case 13...16:
bonusPointTotal += 4
default:
bonusPointTotal += 0
}
bonusLabelCounter.text = "+\(bonusPointTotal)"
totalScore = (normalScore + bonusPointTotal)
scoreLabelCounter.text = "\(totalScore)"
print("Streak counter: \(streakCounter)/Bonus point total: \(bonusPointTotal)/Score total: \(normalScore)/TOTAL SCORE: \(totalScore)")
STREAK BROKENボタンは
を押下しましたtotalScore = (normalScore + bonusPointTotal)
// Reset the streak:
streakCounter = 0
print("STREAK BROKEN!")
bonusPointTotal = 0
ありがとうございました!このソリューションは完全に機能し、ロジックは完全に理解されました。どのように私はそれを見落としていたかわからないが、うーん、私はした。よくやった! – Joe