2016-08-18 53 views
0

我正在写代码给五个随机数赋值。然后这五个值按数字顺序排列在一个数组中。但是,当一个值等于1时,我希望该数字位于排序数组的中间。如何在Swift中将特定的整数放入排序数组的中间?

当没有数字1时,排序的数组将正常工作。

let fourthRandomNumber:Int = Int(arc4random_uniform(52)) 
let fifthRandomNumber:Int = Int(arc4random_uniform(52)) 
let sixthRandomNumber:Int = Int(arc4random_uniform(52)) 
let seventhRandomNumber:Int = Int(arc4random_uniform(52)) 
let eighthRandomNumber:Int = Int(arc4random_uniform(52)) 

var loFourthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 1, 1, 1, 1] 
var loFifthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 1, 1, 1, 1] 
var loSixthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 1, 1, 1, 1] 
var loSeventhRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 1, 1, 1, 1] 
var loEighthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 1, 1, 1, 1] 

var hiFourthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11] 
var hiFifthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11] 
var hiSixthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11] 
var hiSeventhRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11] 
var hiEighthRandomNumberOutput: [Int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11] 



let loFourthRandomNumber:Int = loFourthRandomNumberOutput [fourthRandomNumber] 
let loFifthRandomNumber:Int = loFifthRandomNumberOutput [fifthRandomNumber] 
let loSixthRandomNumber:Int = loSixthRandomNumberOutput [sixthRandomNumber] 
let loSeventhRandomNumber:Int = loSeventhRandomNumberOutput [seventhRandomNumber] 
let loEighthRandomNumber:Int = loEighthRandomNumberOutput [eighthRandomNumber] 

let hiFourthRandomNumber:Int = hiFourthRandomNumberOutput [fourthRandomNumber] 
let hiFifthRandomNumber:Int = hiFifthRandomNumberOutput [fifthRandomNumber] 
let hiSixthRandomNumber:Int = hiSixthRandomNumberOutput [sixthRandomNumber] 
let hiSeventhRandomNumber:Int = hiSeventhRandomNumberOutput [seventhRandomNumber] 
let hiEighthRandomNumber:Int = hiEighthRandomNumberOutput [eighthRandomNumber] 

//NEED TO WORK OUT THIS ISSUE **(add ace)** 
var loDealerCardsArray = [loFourthRandomNumberOutput [fourthRandomNumber], loFifthRandomNumberOutput [fifthRandomNumber], loSixthRandomNumberOutput [sixthRandomNumber], loSeventhRandomNumberOutput [seventhRandomNumber], loEighthRandomNumberOutput [eighthRandomNumber]] 

//NEED TO WORK OUT THIS ISSUE **(add ace)** 
var hiDealerCardsArray = [hiFourthRandomNumberOutput [fourthRandomNumber], hiFifthRandomNumberOutput [fifthRandomNumber], hiSixthRandomNumberOutput [sixthRandomNumber], hiSeventhRandomNumberOutput [seventhRandomNumber], hiEighthRandomNumberOutput [eighthRandomNumber]] 

loDealerCardsArray.sort() 

loDealerCardsArray[0] 
loDealerCardsArray[1] 
loDealerCardsArray[2] 

print (loDealerCardsArray[0] + loDealerCardsArray[1] + loDealerCardsArray[2]) 

//NEED TO WORK OUT THIS ISSUE **(PULL IN RANDOM NUMBER FROM ARRAY SO THAT CARD APPEARS IN PROPER LOCATION when there is an ace 


hiDealerCardsArray.sort() 

hiDealerCardsArray[2] 
hiDealerCardsArray[3] 
hiDealerCardsArray[4] 

print (hiDealerCardsArray[2] + hiDealerCardsArray[3] + hiDealerCardsArray[4]) 

////NEED TO WORK OUT THIS ISSUE **(PULL IN RANDOM NUMBER FROM ARRAY SO THAT CARD APPEARS IN PROPER LOCATION when there is an ace 

var DealerCardsArray = [fourthRandomNumber, fifthRandomNumber, sixthRandomNumber, seventhRandomNumber, eighthRandomNumber] 

DealerCardsArray.sort() 
DealerCardsArray[0] 
DealerCardsArray[1] 
DealerCardsArray[2] 
DealerCardsArray[3] 
DealerCardsArray[4] 

例如,五张卡的值为[0,1,2,9,10],并且数组排序正确。我正在尝试对数组进行排序,以使1总是在中间。

当ACE(1或11值)出现在排序后的数组中我希望它看起来如下:[0,2,1,9,10]

预先感谢您的协助

回答

-1
var dealerCardsArray = [0, 1, 2, 9, 10] 

dealerCardsArray.sort() 

// Only if the value 1 exists in the array, remove it and add it back in the center position 
if let indexOfOne = dealerCardsArray.index(of: 1) { 
    dealerCardsArray.remove(at: indexOfOne) 
    dealerCardsArray.insert(1, at: array.count/2) 
} 

print(dealerCardsArray) // [0,2,1,9,10] 
0

喜欢的东西:

var cards = [0, 1, 2, 9, 10] 

// Get a list of all the aces in the array. 
let aces = cards.filter { $0 == 1 || $0 == 11 } 

// Now take the aces out of the array. 
cards = cards.filter { $0 != 1 && $0 != 11 } 

// Sort the array (unnecessary if its definitely already sorted). 
cards = cards.sort() 

// Re-insert the aces into the middle. 
aces.forEach { cards.insert($0, atIndex: cards.count/2) } 

// [0, 2, 1, 9, 10] 

可能做的伎俩(哈哈)!

相关问题