2014-07-16 23 views
0

我正在從事撲克計劃。它應該處理5張卡片,允許用戶替換最多3張卡片。然後它會評估手和給不同的手分,例如:一對= 1分,2對= 2分等。我是否需要多個課程才能用1個用戶製作一個撲克課程?

我已經寫出了我認爲應該去的基本輪廓,但是我真的很努力地將它放入代碼中。我只是有幾個問題來幫助我開始

我需要做多個類,EX:甲板類,卡類,手類嗎?或者我可以只參加一個撲克課程,只需要單獨的方法?

這是我到目前爲止。

接下來我想我可以讓

public class Poker 
{ 
    private int rank, suit; 

    private static String[] suits = { "hearts", "spades", "diamonds", "clubs" }; 
    private static String[] ranks = { "Ace", "2", "3", "4", "5", "6", "7", 
        "8", "9", "10", "Jack", "Queen", "King" }; 

我真的不知道從哪裏何去何從,或者如果這是連一個良好的開端?有什麼建議麼?

+3

你不需要*多個類,但這是很好的做法。 – AntonH

+0

謝謝。到目前爲止,我只用過一堂課。那麼第二個,但第二個總是包含我的主要運行其他類 – user3769297

+2

您應該使用多個類,當且僅當他們使您的程序更好。在哪裏更好意味着「易於書寫」,「易於閱讀」,「在未來更容易改變」等。 – immibis

回答

1

你應該絕對使用多個類。

將代碼分成不同類的想法並不是要寫出多少代碼,而是關於什麼是有意義的。在像Java這樣的面向對象的語言中,你想要將屬於卡片評估的邏輯從邏輯屬於從屬於常規遊戲流程的邏輯中洗牌出來,等等。

我不會告訴你如何你應該編寫這個程序,因爲這會花費太長時間,而且,這實際上取決於你編寫代碼的風格,但是要開始,這裏有一些想法:

  1. I將取代您使用枚舉製作的字符串數組,並給出「二,三,...」枚舉數值,以便更容易評估手的優勢。
  2. 我想創建一個卡類,它同時擁有價值和西裝枚舉
  3. 我想創建持有的卡的列表,並且知道如何洗牌他們
  4. 我想創建一個求值,它接受一個甲板枚舉列表中,列表中的每個項目都包含5張牌,然後從最強的牌到最弱的牌進行分類。

我在過去幾次創建過撲克遊戲(德州撲克)。這不是一個簡單的編碼練習,可以通過編寫幾個方法輕鬆完成,這絕對是一個挑戰,您應該很好地構建代碼以使開發更直觀。

編輯:

我還要做卡類實現可比。能夠從最弱牌到最強牌的手牌進行分類,可以更容易地評估整體手牌的實力。

+0

感謝您的幫助 – user3769297

相關問題