2014-07-16 24 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

相关问题