2011-01-05 11 views
0

Ich versuche, ein Memory-Spiel zu erstellen und ich habe keine Ahnung, wie ich meine Zellen zufällig mit Bildern aus einem Array bevölkern soll. Ich habe gerade mit der Xcode-Programmierung angefangen, hauptsächlich für das iOS, und ich habe Tage auf Stack Overflow gesucht, aber ich kann keine Antwort finden. Entweder das oder ich verstehe nicht wirklich, was Sie Profis gesagt und erklärt haben.Wissen Sie, wie Sie eine Tabelle zufällig mit einer Reihe von Bildern füllen können?

Konnte jemand freundlich mich bitte erleuchten?

+0

Ich denke, Sie müssen eine klarere Vorstellung von dem, was Sie versuchen, bevor wir wirklich helfen können. Kannst du beschreiben, welche Daten deiner Meinung nach aussehen werden und wie du denkst, dass du sie aus deiner Sicht präsentieren möchtest? Wenn Sie diese zwei Stücke kennen, können Sie wahrscheinlich Hilfe finden, sie zusammen zu verbinden. – Jonah

Antwort

0

Dieser Code nimmt ein NSArray, das die Bilder enthält, und erzeugt ein neues Array, das die Bilder in zufälliger Reihenfolge enthält. Dann können Sie das neue Array speichern und in Ihrer Datenquelle für Ihre Tabelle verwenden.

NSArray *pictures; //Array containing all of the pictures to display 
srandomdev(); 
NSArray *randomPictures = [pictures sortedArrayUsingComparator:(NSComparisonResult)^(id obj1, id obj2) { 
    long val = random(); 
    if(val & 1) return NSOrderedAscending; 
    return NSOrderedSame; //or NSOrderedDescending 
}]; 
+0

OP: Wenn ich Sie richtig verstehe, wollen Sie eines dieser passenden Memory-Spiele erstellen, wo ein Benutzer zwei Dinge aus einem Raster herausholt, ja? Wenn dies der Fall ist, würde ich ein NSArray von UIImage-Objekten erstellen, die alle gewünschten Kacheln enthalten (also zwei von jedem UIImage, zum Vergleichen) und dann diesen Code verwenden, um das Array zu randomisieren. Sie können dann in der Reihenfolge (von links nach rechts, von oben nach unten) durch Ihr Gitter iterieren und das nächste UIImage in dem Array der jeweiligen Kachel zuweisen, auf der Sie sich befinden. – Tim

+0

Ja, genau das habe ich gesucht! Vielen Dank! – user563496

+0

Hi Der obige Code gibt einen Fehler zurück: Ungültige Konvertierung Initialisierung der Ganzzahl 'int', erwarteter Blockzeiger. Gibt es eine Möglichkeit, dieses Problem zu lösen? – user563496

0

Wenn Sie immer den gleichen Satz von Elementen haben, und Sie wollen einfach nur, sie in zufälliger Reihenfolge bringen, dann empfehle ich Ihnen, auf dem Fisher-Yates-Algorithmus schlurfenden nachlesen (http: //en.wikipedia .org/wiki/Fisher-Yates_shuffle). Es ist der gleiche Prozess, den Sie verwenden würden, um ein Kartenspiel in einem Kartenspiel oder einem beliebigen anderen endlichen Satz zu permutieren.

Verwandte Themen