OsamaSaif نشر 18 نوفمبر 2015 أرسل تقرير مشاركة نشر 18 نوفمبر 2015 أقوم بالعمل على لعبة بطاقات playing cards على iOS بلغة البرمجة swift ، عندي 52 بطاقة أريد أن أغيّر ترتيبيهم في المصفوفة بشكل عشوائي كل مرة كيف أفعل ذلك؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Lujain نشر 19 نوفمبر 2015 أرسل تقرير مشاركة نشر 19 نوفمبر 2015 يوجد عدّة طرق لتغيير ترتيب عناصر في مصفوفة بشكل عشوائي في Swift، الطريقة الأولى هي باستخدام Shuffle كـ دالة method.اكتب الشيفرة التالية:func shuffle<C: MutableCollectionType where C.Index == Int>(var list: C) -> C { let c = count(list) if c < 2 { return list } for i in 0..<(c - 1) { let j = Int(arc4random_uniform(UInt32(c - i))) + i swap(&list[i], &list[j]) } return list } shuffle([1, 2, 3, 4, 5, 6, 7, 8]) // e.g., [6, 1, 8, 3, 2, 4, 7, 5] shuffle(["hello", "goodbye", "ciao"]) // e.g., ["ciao", "goodbye", "hello"]الطريقة الثانية باستخدام (extension (shuffle as a mutating array methodاكتب الشيفرة التالية:extension Array { mutating func shuffle() { if count < 2 { return } for i in 0..<(count - 1) { let j = Int(arc4random_uniform(UInt32(count - i))) + i swap(&self[i], &self[j]) } } } var numbers = [1, 2, 3, 4, 5, 6, 7, 8] numbers.shuffle()الطريقة الثالثة باستخدام (extension (shuffle as a non-mutating array methodاكتب الشيفرة التالية:extension Array { func shuffled() -> [T] { if count < 2 { return self } var list = self for i in 0..<(list.count - 1) { let j = Int(arc4random_uniform(UInt32(list.count - i))) + i swap(&list[i], &list[j]) } return list } } let numbers = [1, 2, 3, 4, 5, 6, 7, 8] let mixedup = numbers.shuffled() // e.g., mixedup == [6, 1, 8, 3, 2, 4, 7, 5] 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
OsamaSaif
أقوم بالعمل على لعبة بطاقات playing cards على iOS بلغة البرمجة swift ، عندي 52 بطاقة أريد أن أغيّر ترتيبيهم في المصفوفة بشكل عشوائي كل مرة كيف أفعل ذلك؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.