2013-05-22 33 views
-3

我有,我需要確定一個分配德州的手握住EM如何identy撲克手在C++中

這裏是分配: http://www.scribd.com/doc/142850594/proj1

這裏是我的代碼:http://pastebin.com/Ts387iDw

我不太明白的是如何讓程序從文件中讀取,用雙手,或我應該怎麼得到它的分類和識別手。

如果有人告訴我從零開始設計一個沒有指導原則的程序,我要做的就是給所有52張卡片分配一個唯一的ID,然後定義一個類似皇家同花順的手,並使用if語句以查看這些ID是否符合所定義的手牌類型。然而,我只有一種直覺,認爲這比我的教授在作業中表現出來的方式效率要低很多(畢竟他是教授)。 任何幫助表示讚賞,謝謝!

+0

http://meta.stackexchange.com/q/80978/133242 –

+2

你需要真正讓這個嘗試。我們不是來做你的功課。嘗試一下並針對您遇到的問題提出具體問題。指定所需的和當前的行爲。 – xaxxon

回答

0

所以,你有兩個問題:
1.從文件中讀取手中
2.識別手的行列

您需要的第一個問題:
1.閱讀文件中的行逐線
2.解析的字符串。你可以注意到,這些牌在手中有相同的圖案:它是一個字母加1或2個數字,其次是其他牌。在這種情況下,您可以根據數字和字母之間的切換手動分割字符串。

對於第二個問題,沒有常見的方式。在大多數情況下,您需要手動檢查每個可能的排名。

+0

謝謝,這只是我需要的靈感。 – PhDre

0

從文件中讀取手中應該不是難事,但有更多的方式來識別手,甚至比你的任務意味着,你的教授自己的例子功能是錯誤的。撲克牌手並不關心牌的順序,所以他認識皇家同花順的功能(用R :-)將在120次中失敗119次。你可以通過先分類手來部分解決這個問題,但是你需要特殊的輪子代碼(A2345直線)。而且,識別手的「類型」僅僅是確定雙手中哪一手勝利的第一步。最後,所有這一切只適用於標準的5張牌撲克牌手,並不適用於德州撲克,在那裏你需要做7張牌中最好的5張牌。谷歌「撲克手評估」,你會發現比你想象的更多的信息。一個良好的開端for C++是Pokerstove在Github上(或我自己onejoker)。

我懷疑你的教授並不真正理解所涉及的內容,並且很樂意看到像他自己這樣的半解決方案,只是爲了看到你能夠生成類似於實際工作的代碼。