I have a problem with following error: Cannot use instance member 'card0' within property initializer; property initializers run before 'self' is available
I am freshman, so I would be very thankful for advices and tips :)
Code: View Controller:
import UIKit
class ViewController: UIViewController {
let card0: Card = startingcard()
var pl1: Card = firstplayercard(card0: card0)
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
struct Card {
var signs: [Int]
var restSymbols: [Int]
var matching: Int
}
func startingcard() -> Card {
let randomChoice = GKRandomDistribution(lowestValue: 0, highestValue: 15)
var symbols = [Int]()
for index in 0...15{
symbols.append(index)
}
var card = [Int]()
var i = 5
while i >= 0 {
let a = randomChoice.nextInt()
let n = symbols[a]
if n > 0 {
card.append(n)
symbols[a] = 0
}else{
i += 1
}
i -= 1
}
print(symbols)
print(card)
return Card(signs: card, restSymbols: symbols, matching: 0)
}
func firstplayercard(card0: Card) -> Card{
let randomChoice = GKRandomDistribution(lowestValue: 0, highestValue: 15)
let secondRandom = GKRandomDistribution(lowestValue: 0, highestValue: 5)
var symbols = card0.restSymbols
var playerCard = [Int]()
var i = 5
while( i >= 0) {
let a = randomChoice.nextInt()
let n = symbols[a]
if( n != 0){
playerCard.append(n)
symbols[a] = 0
}else{
i += 1
}
i -= 1
}
let k = secondRandom.nextInt()
let l = secondRandom.nextInt()
playerCard[k] = card0.signs[l]
//return k to symbols, because it's unused
symbols[k] = k
print("Player card:\n")
print(playerCard)
print(symbols)
print(l)
return Card(signs: playerCard, restSymbols: symbols, matching: l )
}