2011-02-14 78 views
2

我有一個程序,每個老虎機有5列和5個圖像。我試圖找到一個有效的算法,可以檢查幾個組合的所有排列,這些組合可能表明勝利。這些組合是:2對匹配的圖像,3個相同的圖像,4個相同的圖像,5個相同的圖像,最後3個相同的圖像和2個相同的圖像不同於前3個。我是不關心命令。感謝您提供任何提示或建議。檢查老虎機的所有排列算法Win

+1

這實際上幾乎與計算撲克牌的5張牌(一對,兩對,三種,四種,滿屋等)相同。只是爲了幫助您拓寬搜索條件。 – 2011-02-14 20:18:57

+0

謝謝你,我會看看 – aahrens 2011-02-14 20:25:38

回答

3

使用字典/ HashMap的:

counts = {} 
foreach image in row: 
    // TODO: If the image is not already in the dictionary, add it. 
    counts[image] += 1 

然後你就可以檢查你有多少通過遍歷在字典中值的每個圖像。

2

你也可以有5種元素的某種Dictionary或Hashtable數據結構(鍵/值對)。在列舉每一列時,爲值添加+1(圖片或Mark Byers所說的「唯一標識它們」的關鍵字將成爲關鍵)。然後對您的鍵/值數據結構進行排序。然後,您可以使用上面的邏輯創建一個FSM來分類獎金。