2014-12-13 48 views
1
對象的隨機量

基本上,我試圖做這傢伙正在試圖做的,但斯威夫特:聲明斯威夫特

Declaring a random amount of objects in c++

我很新的節目,非常新斯威夫特,所以我對如何做某些事情有些模糊。基本上,我只是想宣佈我的球員必須編織的隨機數量的敵人,並在他擊中其中一個敵人時進行登記。我一直在尋找答案的每一個地方,或者這是一個非常愚蠢的問題,愚蠢的是,從來沒有人需要把它放到網上,或者Sift對於別人來說太新了。我猜這是一個愚蠢的問題,但不管我如何解決這個問題都沒有想法。

謝謝。

回答

0

Swift數組是動態的,至少是用var array聲明的可變類型。
所以你可以直接添加對象到你的數組中,直到你有足夠的對象。

如:

var objects = [String]() 

//let numberOfObjects = arc4random_uniform(10) // between 0 and 9 
let numberOfObjects = arc4random_uniform(5) + 5 // between 5 and 9 
for i in 0..<numberOfObjects { 
    let object = String() 
    objects.append(object) 
} 


println("we have \(countElements(objects)) objects") 
0

也許我太密集理解的問題,但在我看來,僅僅宣佈一個NSMutableArray會做你想要什麼:

let myArray:NSMutableArray = NSMutableArray() 

你將不得不所有的靈活性可以隨意添加或移除物體。

在任何給定的循環中,您可以刪除所有對象,然後使用隨機數生成器來添加隨機數目的對象,如果這是您正在嘗試執行的操作。

我在其他答案,這額外的評論是,我會明確地類型,產生隨機數的聲明投下的一切:

​​3210
0

下面是一個使用簡單的敵對階級的例子:

class Enemy : NSObject { 
    override init() { 
     super.init() 
    } 
} 

let range = (5, 20) 
let numEnemies = Int(arc4random_uniform(UInt32(range.1 - range.0) + 1) + UInt32(range.0)) 
var enemyArray = [Enemy]() 

for i in 0..<numEnemies { 
    enemyArray.append(Enemy()) 
} 
0

你想要一個數組中的隨機數的對象。假設:

class MyObject {} 

和你有對象的數量上限:

let theObjectLimit = 10 

,那麼你可以創建MyObject新的,不同實例的隨機數與簡單:

let theObjects = (1...arc4random_uniform(theObjectLimit)).map { 
    _ -> MyObject in return MyObject() 
} 

當學習像Swift這樣的語言,它具有頭等功能(又稱閉包)時,您將需要使用像mapreduce這樣的函數w儘可能 - 尤其是代替迭代。