2015-12-09 23 views
-2

我使用Windows.Forms GUI在C#上創建了一個紙牌遊戲。我不知道遊戲的名稱,但規則是這樣的:C#獲取所有組合(用於紙牌遊戲)

(例如,你有手中的卡10) 如果在桌子上是另一個10或一對卡的總和相等到10(2,3和5; 7和3等),你從手中拿到那張牌。 !

這僅使用數字卡和等於1

問題的王牌是,我不知道該表的卡的數量;它是多變的。我怎樣才能使循環(或其他)誰添加所有可能的組合與表(作爲字符串)到列表框?

我有所有卡的字符串陣列上的表(實施例):

tableCards [0] = 「2_of_clubs」 tableCards [1] = 「ace_of_diamonds」 ...

對於輸出我只需要列表框或其他數組,名爲cardsToGet與所有可能的compinations(如字符串):

示例10手和表中的5,7,2和3: cardsToGet [0] - 「5_of_clubs和2_of_diamonds和3_of_hearts「 cardsToGet [1] - 」7_of_heart S和3_of_diamonds」 ...

+0

您需要爲您的帖子提供更多詳細信息。要包括的內容:你已經嘗試過什麼,什麼沒有工作,你的代碼不工作,準確描述你期望的結果/輸出是什麼,等等。 – test

+0

好吧,我現在已經添加了更準確的描述。 – user3246250

+0

#家庭??!???? –

回答

0

允許使用該數據結構爲表狀態:

//Ace, 2, 3, 3, 3, 5, 7 
int[] table = new int[10] { 1, 1, 3, 0, 1, 0, 1, 0, 0, 0 }; 

結果組合可以由零個或一個王牌,零個或一個2,零個或一個或兩個或三個3,四個等等。您可以通過十個嵌套for循環遍歷所有組合。或者你可以使用遞歸。當部分和已經大於期望值時,您可以中斷循環(或從遞歸函數中返回)以加快速度。如果您遇到代碼,請隨時再次提問(使用具體代碼)。