-1

I am making a game where there's a grid of squares, and one is a different color (all colors are shades of turquoise). I'm using a function to generate two different random colors

func generateColors() -> (main: UIColor, diff: UIColor) {

    let redMain: CGFloat = CGFloat(arc4random(104.0))
    let greenMain: CGFloat = redMain + 105
    let blueMain: CGFloat = redMain + 83

    let redColorMain: CGFloat = redMain / 255.0
    let greenColorMain: CGFloat = greenMain / 255.0
    let blueColorMain: CGFLoat = blueMain / 255.0
    let main = UIColor(red: redColorMain, green: greenColorMain, blue: blueColorMain, alpha: 0.8)

    let redDiff: CGFloat = CGFloat(arc4random(104.0))
    let greenDiff: CGFloat = redDiff + 105
    let blueDiff: CGFloat = redDiff + 83

    let redColorDiff: CGFloat = redDiff / 255.0
    let greenColorDiff: CGFloat = greenDiff / 255.0
    let blueColorDiff: CGFloat = blueDiff / 255
    let diff = UIColor(red: redColorDiff, green: greenColorDiff, blue: blueColorDiff, alpha: 0.8)

    return (main, diff)
}

However, I keep getting an error that says "Cannot invoke arc4random with an argument type 'Double'". Why does it say this, and do you know how to solve it? Thanks!

sw2037122
  • 63
  • 6

1 Answers1

1

Try like this:

func generateColors() -> (main: UIColor, diff: UIColor) {

    let redMain: CGFloat = CGFloat(arc4random_uniform(104))
    let greenMain: CGFloat = redMain + 105.0
    let blueMain: CGFloat = redMain + 83.0

    let redColorMain: CGFloat = redMain / 255.0
    let greenColorMain: CGFloat = greenMain / 255.0
    let blueColorMain: CGFloat = blueMain / 255.0
    let main = UIColor(red: redColorMain, green: greenColorMain, blue: blueColorMain, alpha: 0.8)

    let redDiff: CGFloat = CGFloat(arc4random_uniform(104))
    let greenDiff: CGFloat = redDiff + 105.0
    let blueDiff: CGFloat = redDiff + 83.0

    let redColorDiff: CGFloat = redDiff / 255.0
    let greenColorDiff: CGFloat = greenDiff / 255.0
    let blueColorDiff: CGFloat = blueDiff / 255.0
    let diff = UIColor(red: redColorDiff, green: greenColorDiff, blue: blueColorDiff, alpha: 0.8)

    return (main, diff)
}
Leo Dabus
  • 229,809
  • 59
  • 489
  • 571