Ios 如何更新滑块的最大值?

Ios 如何更新滑块的最大值?,ios,swift,slider,uislider,dice,Ios,Swift,Slider,Uislider,Dice,我有一个应用程序,你可以在其中下注一定金额。您可以使用滑块确定要下注的金额 每次回合(掷骰子)时,你的全部宝藏都会更新(无论是赢还是输)。滑块的最大值与宝藏的值相同 我希望滑块在每次掷骰子后(即每次总宝藏更新时)更新其最大值 这是一个很短的应用程序,所以我复制了整个代码 class ViewController: UIViewController { @IBOutlet weak var gains: UILabel! @IBOutlet weak var dicePlayer

我有一个应用程序,你可以在其中下注一定金额。您可以使用滑块确定要下注的金额

每次回合(掷骰子)时,你的全部宝藏都会更新(无论是赢还是输)。滑块的最大值与宝藏的值相同

我希望滑块在每次掷骰子后(即每次总宝藏更新时)更新其最大值

这是一个很短的应用程序,所以我复制了整个代码


class ViewController: UIViewController {
    @IBOutlet weak var gains: UILabel!
    @IBOutlet weak var dicePlayer: UIImageView!
    @IBOutlet weak var diceComputer: UIImageView!

    //slider et label approprié
    @IBOutlet weak var slider: UIView!

    @IBOutlet weak var sliderValueLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        // on appelle le generateur de gains ici
        gainsAleatoires()
        // et on genere aleatoirement les dés
        //lancerDeDes()

    }

    //MARK: - Variables pour l'application
    //tableau qui contient le nom des differents dés
    let des: Array = ["one", "two", "three", "four", "five", "six"]

    // tableau qui genere les gains
    var generateurDeGains = Int.random(in: 100 ... 1000)

    // deux variables qui vont simuler les lancers pour le joueur et l'ordinateur
    var lancerJoueur: Int = 1
    var lancerOrdinateur: Int = 1

    // deux variables pour enregistrer le tresor initial ainsi que le tresor mis a jour
    var initialGains = 0




    //MARK: - Gestion lancer de dés

    @IBAction func boutonLancerDes(_ sender: UIButton) {
        // on appelle la fonction lancer de dés
        lancerDeDes()

    }
    //MARK: - Gestion reinitialisation du jeu et des gains

    @IBAction func boutonReinitialisation(_ sender: UIBarButtonItem) {
        // on appelle de nouveau la fonction gains aleatoires
        gainsAleatoires()
        // on change la valeur du slider
        //sliderValueLabel.text = "0"
    }

    //MARK: - Fonction qui genere un gain aleatoire entre 100 et 1000
    func gainsAleatoires () {
        gains.text = String(generateurDeGains)

    }
    //MARK: - Bouton pour changer la valeur de la somme que le joueur parie
    @IBAction func sliderValueChanged(_ sender: UISlider) {
        // on s'assure que la valeur du slider est affichée dans le label correspondant
        let currentValue = Int(sender.value)
        sliderValueLabel.text = String(currentValue)

        // on donne la valeur maximale du slider qui est celle des gains générés aleatoirement
        sender.maximumValue = Float(generateurDeGains)
    }


    //MARK:- Fonction qui gere le lancer des deux dés
    func lancerDeDes() {
        //on rend aleatoire les lancers du joeur et de l'ordinateur
        self.lancerJoueur = Int.random(in: des.indices) + 1 // code qui rend les erreurs plus faciles a detecter
        //autre ecriture : self.lancerJoueur = Int.random(in: 1...6)
        self.lancerOrdinateur = Int.random(in: des.indices) + 1

        UIView.animate(withDuration: 0.5) {
            self.dicePlayer.image = UIImage(named: self.des[self.lancerJoueur - 1])
            self.diceComputer.image = UIImage(named: self.des[self.lancerOrdinateur - 1])

        }
        // on appelle la fonction qui gere les scores
        gestionDesScores()
    }

    //MARK: - Fonction qui gere les scores pour le joueur et l'ordinateur

    func gestionDesScores() {
        // 2 switch statements

        //on appelle ici la fonction qui va donner une alerte en fonction du resultat du lancer
        alertesEnFonctionDuResultat()
    }

    //MARK: - Fonction qui gere les resultats
    func alertesEnFonctionDuResultat() {
        // si le joueur gagne
        if lancerJoueur > lancerOrdinateur {
            // on recupere la valeur actuelle des gains
            initialGains = generateurDeGains
            // on appelle l'alerte
            alerteSucces()
            // on met a jour la valeur des gains initiale
            initialGains = generateurDeGains + Int(sliderValueLabel.text!)!
            //on change la valeur totale des gains
            gains.text = String(initialGains)
            // et on change la valeur maximale du slider


        } // si l'ordinateur gagne
        else if lancerJoueur < lancerOrdinateur {
            //idem
            initialGains = generateurDeGains
            alerteEchec()
            initialGains = generateurDeGains - Int(sliderValueLabel.text!)!
            gains.text = String(initialGains)
        } // en cas de parité
        else {
            alerteParite()
        }
        // fin de partie
        if gains.text == "0" {
            //on appelle la fonction fin de partie
            finDeLaPartie()

        }

    }

    //MARK: - Fonction avec alerte en cas de succès du joueur
    func alerteSucces() {
        let alert = UIAlertController(title: "Votre lancer est supérieur !", message: "Vous gagnez votre mise", preferredStyle: .actionSheet)
        let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }

    //MARK: - Fonction avec alerte en cas d'echec du joueur
    func alerteEchec() {
        let alert = UIAlertController(title: "Votre lancer est inférieur !", message: "Vous perdez votre mise", preferredStyle: .actionSheet)
        let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }

    //MARK: - Fonction en cas de parité entre joueur et ordinateur
    func alerteParite() {
        let alert = UIAlertController(title: "Vos lancers sont égaux !", message: "Vous devez de nouveau lancer les dés", preferredStyle: .actionSheet)
        let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }

    //MARK: - Fonction qui gere le cas où on n'a plus de tresor et donc il faut reinitialiser
    func finDeLaPartie() {
        let alert = UIAlertController(title: "Vous n'avez plus d'argent !", message: "Réinitialisez ou secouez l'appareil pour débuter une nouvelle partie", preferredStyle: .alert)
        let action = UIAlertAction(title: "Compris", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }


}

类ViewController:UIViewController{
@IBV弱var增益:UILabel!
@IBP播放器:UIImageView!
@iBMI计算机:UIImageView!
//滑块et标签专用
@IBVAR滑块:UIView!
@IBOutlet弱var sliderValueLabel:UILabel!
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后执行任何其他设置。
//关于ici发电商的上诉
gainsAleatoires()
//关于一般行政指示
//兰瑟德斯()
}
//马克:-l'应用程序的变量
//不同名称的表格
设des:Array=[“一”、“二”、“三”、“四”、“五”、“六”]
//总收益表
var GeneraterDegains=Int.random(单位:100…1000)
//两个变量模拟了长矛的焦耳和纵坐标
var Lancerjouer:Int=1
var Lancerrdinateur:Int=1
//两个变量的初始值是多少
var initialGains=0
//马克:兰瑟·德·戴斯的手势
@iAction func boutonLancerDes(uu发送方:UIButton){
//关于兰瑟·德·戴斯基金会上诉案
兰瑟德斯()
}
//MARK:-重新初始化jeu和des增益的手势
@IBAction func Bouton重新初始化(uu发送方:UIBarButtonItem){
//新丰盛食品展
gainsAleatoires()
//论滑杆的变化
//sliderValueLabel.text=“0”
}
//标记:-通用功能未获得100和1000
func Gainsaleatories(){
gains.text=字符串(generateurDeGains)
}
//马克:-Bouton倒酒是为了享受同等待遇
@iAction func sliderValueChanged(\发送方:UISlider){
//关于s'assure que la valeur du slider是否贴上了相应的标签
让currentValue=Int(sender.value)
sliderValueLabel.text=字符串(currentValue)
//关于滑球的最大值是多少
sender.maximumValue=浮动(generateurDeGains)
}
//马克:-这是一个非常有趣的故事
func lancerDeDes(){
//关于长矛队的比赛
self.lancerjouer=Int.random(in:des.index)+1//code-qui-rend-les-erruers+faciles-a-detector
//主持人:self.lancerjouer=Int.random(in:1…6)
self.lancerodinateur=Int.random(in:des.index)+1
UIView.animate(持续时间:0.5){
self.dicePlayer.image=UIImage(名称:self.des[self.lancerjouer-1])
self.diceComputer.image=UIImage(名称:self.des[self.lancerrdinateur-1])
}
//关于足球比赛的成绩
手势
}
//马克:-用焦耳和坐标表示分数
func gestionDesScores(){
//2个开关语句
//在《柳叶刀》的最后一篇文章中,我们要提醒大家注意效果
AlerteSInfonctionDuresultat()
}
//马克:-结果的作用
函数AlerteSInfonctionDuresultat(){
//我是朱厄尔·加涅
如果LancerJouer>Lancerrdinateur{
//关于收益法
初始收益=生成收益
//阿佩勒·勒阿泰尔酒店
alerteSucces()
//一天,我遇到了一个姓首字母的人
initialGains=generateurDeGains+Int(sliderValueLabel.text!)!
//关于收益总额的变化
gains.text=字符串(initialGains)
//更换滑杆上的最大值
}//我是加涅
否则,如果LancerJouer// et on change la valeur maximale du slider
yourSlider.maximumValue = Float(initialGains)
// on met a jour la valeur des gains initiale
initialGains = generateurDeGains + Int(sliderValueLabel.text!)!
// on donne la valeur maximale du slider qui est celle des gains générés aleatoirement
sender.maximumValue = Float(generateurDeGains)