Как добавить функцию оценки и позволить пользователям вводить свои имена в игре XCode? - PullRequest
0 голосов
/ 08 января 2019

Я создал игру Tic Tac Toe в Xcode, но мне нужна помощь с , реализующей табло , а также функцию, которая показывает имя пользователя и текущий счет .

Я только что попал в Xcode и Я хочу узнать больше , буду признателен за любую помощь и предложения. Это то, что я сделал. Я добавил весь свой код, спасибо:)

import UIKit

class ViewController: UIViewController {

    var PlayerTurn = 1 //cross
    var BoardStatus = [0, 0, 0, 0, 0, 0, 0, 0, 0,]
    var GameisActive = true
    let WinningCombos = [[0, 1, 2], [0, 3, 6], [0, 4, 8], [3, 4, 5], [6, 7, 8], [1, 4, 7], [2, 5, 8], [2, 4, 6]]

    @IBOutlet weak var Label: UILabel!

    @IBAction func action(_ sender: AnyObject)
    {
        if (BoardStatus[sender.tag-1] == 0 && GameisActive == true)
        {
            BoardStatus[sender.tag-1] = PlayerTurn

            if(PlayerTurn == 1)
            {
                sender.setImage(UIImage(named: "crossimage.png"), for: UIControlState())
                PlayerTurn = 2
            }
            else
            {
                sender.setImage(UIImage(named: "noughtimage.png"), for: UIControlState())
                PlayerTurn = 1
            }
        }

        for combination in WinningCombos
        {
            if BoardStatus[combination[0]] != 0 && BoardStatus[combination[0]] == BoardStatus[combination[1]] && BoardStatus[combination[1]] == BoardStatus[combination[2]]
            {
                GameisActive = false

                if BoardStatus[combination[0]] == 1
            {
                //cross wins
                print ("cross")
                Label.text = "CROSS HAS WON!"
            }
            else
            {
                //Nought has won
                print ("nought")
                Label.text = "NOUGHTS HAS WON!"

            }                
                PlayAgainButton.isHidden = false
                Label.isHidden = false

             }
    }
        GameisActive = false        
        for i in BoardStatus
        {
            if i == 0
            {
               GameisActive = true
               break
            }
       }          
        if GameisActive == false
        {
            Label.text = "It was a Draw!"
            Label.isHidden = false
            PlayAgainButton.isHidden = false
        }

    }

    @IBOutlet weak var PlayAgainButton: UIButton!
    @IBAction func PlayAgain(_ sender: Any)
    {
        BoardStatus = [0, 0, 0, 0, 0, 0, 0, 0, 0]
        GameisActive = true
        PlayerTurn = 1

        PlayAgainButton.isHidden = true
        Label.isHidden = true

        for i in 1...9
        {
            let button = view.viewWithTag(i) as! UIButton
            button.setImage(nil, for: UIControlState())
        }
    } 

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.view.backgroundColor = UIColor(red: 184/255, green: 184/255, blue: 184/255, alpha: 1)
     }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

1 Ответ

0 голосов
/ 09 января 2019

Чтобы показать текущий результат, просто добавьте метку в свою раскадровку, как вы это делали:

@IBOutlet weak var Label: UILabel!

совет: попробуйте назвать менее универсальным хехехе

После этого просто используйте свойство .text, но если вам нужна логика этой проблемы, вероятно, swift - не та тема, которую вы ищете.

https://freecontent.manning.com/classic-computer-science-problems-in-swift-tic-tac-toe/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...