石头剪刀布游戏
一、题目
二、代码
import SwiftUI
struct ContentView: View {
@State private var RSP = ["Rock", "Scissors", "Paper"]
@State private var winOrLose = ["Win", "Lose"]
@State private var correctAnswer = Int.random(in: 0...2)
@State private var choose = Int.random(in: 0...1)
@State private var sholdWin = false
@State private var scoreTitle = ""
@State private var totalScore = 0
@State private var amount = 0
var body: some View {
if(amount < 10)
{
ZStack {
AngularGradient(gradient: Gradient(colors: [.blue, .green,.purple, .yellow, .red,.white, .blue]), center: .center)
VStack {
Text(RSP[correctAnswer])
.foregroundColor(.black)
.font(.largeTitle)
.fontWeight(.black)
Text(winOrLose[choose])
.foregroundColor(.black)
.font(.title)
.fontWeight(.black)
ForEach(0..<3) { number in
Button(action: {
gameTapped(number)
}) {
Text(RSP[number])
.padding(5)
.background(Color.pink)
.clipShape(Capsule())
.font(.title2)
}
}
}
}
.alert(isPresented: $sholdWin) {
Alert(title: Text(scoreTitle),
message: Text("Your score is \(totalScore)"), dismissButton: .default(Text("Continue")) {
askQuestion()
})
}
} else {
ZStack {
AngularGradient(gradient: Gradient(colors: [.blue, .green,.purple, .yellow, .red,.white, .blue]), center: .center)
}
.alert(isPresented: $sholdWin) {
Alert(title: Text("Game over!"),
message: Text("Your total score is \(totalScore)"), dismissButton: .default(Text("OK"))
)
}
}
}
func gameTapped(_ number: Int) {
print(correctAnswer)
print(RSP[correctAnswer])
print(choose)
print(winOrLose[choose])
print(number)
print(RSP[number])
print("end")
if(correctAnswer == 0 && choose == 0 && number == 2) {
scoreTitle = "Correct"
totalScore += 1
} else if(correctAnswer == 0 && choose == 1 && number == 1) {
scoreTitle = "Correct"
totalScore += 1
} else if(correctAnswer == 1 && choose == 0 && number == 0) {
scoreTitle = "Correct"
totalScore += 1
} else if(correctAnswer == 1 && choose == 1 && number == 2) {
scoreTitle = "Correct"
totalScore += 1
} else if(correctAnswer == 2 && choose == 0 && number == 1) {
scoreTitle = "Correct"
totalScore += 1
} else if(correctAnswer == 2 && choose == 1 && number == 0) {
scoreTitle = "Correct"
totalScore += 1
} else {
scoreTitle = "Wrong"
totalScore -= 1
}
sholdWin = true
amount += 1
}
func askQuestion() {
correctAnswer = Int.random(in: 0...2)
choose = Int.random(in: 0...1)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}