我正在尝试检查一个简单赌博游戏的中奖号码。用户为每个符号(钻石、心形等)选择 4 张牌,然后为该特定选择创建 256 种组合。4*4*4*4 = 256 种组合。我有一个包含 1000 个抽奖结果的数组。每个结果包含 4 张获胜牌及其数值。
我需要检查每个结果包含多少张获胜牌。
我的代码看起来像这样:
for(int=0;i<results;i++) // [results count] = 1000
{
...
...
//take one results and check it against all combinations
for(int j=0;j<userCombinations;j++) // [userCombinations count] = 256
{
[self checkWins:[userCombinations objectAtIndex:j]]
}
}
-(void)checkWins:(NSMutableArray *)myArray
{
for(int j=0;j<4;j++)
{
//j=0 -> if heart numeric value equals to heart numeric result do something
//j=1 -> if diamond numeric value equals to diamond numeric results do something
}
}
代码中可能有一些错别字(凭记忆写的),但基本思想是一样的。我的问题是,上述过程需要:
在我的 i7 Mac Book Pro 上几秒钟
在旧的 Android 上,上面用 java 编写的,需要 6-9 秒。
在 iPhone 4 上,完成该过程需要整整一分钟。< -这是我的问题
难道我做错了什么?你能想出更好的方法来完成上述工作吗?有没有办法加快速度?
谢谢
编辑:
用户选择这些数字
H D C S
7 8 9 10
10 4 2 11
11 6 5 13
12 5 1 9
并得到 256 种组合。
First 6 combinations: Current Raffle Result: 7 4 9 11
H D C S
7 8 9 10 2 matches
7 8 9 11 3 matches
7 8 9 13 2 matches
7 8 9 9 2 matches
7 8 2 10 1 match
7 8 2 11 1 Match
etc'...
Total for Current Raffle Result 7 4 9 11:
3 matches - one time
2 matches - 3 Times
1 match - 2 times
我需要传递所有创建的 256 个组合,并根据每个获胜结果检查它们。如果其中一个组合包含中奖号码,我将其标记并将其保存在一个数组中,以便稍后显示。