jeudi 19 novembre 2015

Swift: Algorithm To Change A Random Number After Multiple Loops

I want to let the zombies move 30 times in one random direction and after that change the direction of every zombie individual. I have multiple zombie. All of them should NOT move in the same direction. I am sure I am missing something stupid. My code:

         for zombie in Zombies{
            if(zombieCounter >= 30){
                for zombie in Zombies{
                    direction = Int(arc4random_uniform(4))
                    switch direction{
                    case 0:
                        zombie.position.y += step
                        zombie.direction = 1
                    case 1:
                        zombie.position.y -= step
                        zombie.direction = 2
                    case 2:
                        zombie.position.x -= step
                        zombie.direction = 3
                    case 3:
                        zombie.position.x += step
                        zombie.direction = 4
                    default:()
                    }
                }
                zombieCounter = 0
            }   
        }

zombieCounter += 1

Before I had this code:

         if(zombieCounter >= 25){
            zombieCounter = 0
            for zombie in Zombies{
                let direction = arc4random_uniform(4)
                switch direction{
                case 0: zombie.position.y += stepZombie
                zombie.direction = 0
                case 1: zombie.position.y -= stepZombie
                zombie.direction = 1
                case 2: zombie.position.x -= stepZombie
                zombie.direction = 2
                case 3: zombie.position.x += stepZombie
                zombie.direction = 3
                default:()
                }
            }
        }

It get a random direction for each of the zombie and moves the zombie just once. What I want to do is to move the zombies multiple time in the same direction without a for-loop in the cases. The function should be called one time. The next time the direction should be the same like the first time. After 30 runs the direction should be randomly calculated for each of the zombies.




Aucun commentaire:

Enregistrer un commentaire