我是否需要多个班级才能与1位用户一起制作扑克节目?

时间:2014-07-16 04:34:40

标签: java

我正在制作一个扑克计划。它应该处理5张卡,允许用户更换最多3张卡。然后它将评估手并给出不同手牌的分数,例如:一对= 1分,2对= 2分等。

我已经写出了我认为它应该如何进行的基本概述,但我真的很难将其实际放入代码中。我只是有几个问题可以帮助我开始

我需要做多个课程,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" }; 

我不确定从哪里开始,或者这是一个好的开始?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你绝对应该使用多个类。

将代码分成不同类的想法并不是关于你要编写多少代码,而是关于什么是有意义的。在像Java这样的面向对象语言中,你想要将属于卡片评估的逻辑与属于改组卡片的逻辑与属于常规游戏流程的逻辑分开等。

我不打算给大家介绍一下你应该如何编写这个程序,因为这需要花费太长时间,而且,这实际上取决于你编写的选择方式。写,但首先,这里有一些想法:

  1. 我会用枚举替换你制作的String数组,并给出"二,三......"枚举数值也可以更容易评估手势。
  2. 我会创建一个持有值和套装枚举的卡片类
  3. 我会创建一个卡片枚举,其中包含一系列卡片并知道如何将它们混洗
  4. 我会创建一个手动评估器,它接受一个列表,其中列表中的每个项目包含5张卡片,然后将它们从最强的手分类到最弱的。
  5. 我过去曾多次创造过扑克游戏(德州扑克)。它不是一个简单的编码练习,可以通过编写一些方法轻松完成,它绝对是一个挑战,你应该很好地构建你的代码,使开发更直观。

    修改

    我也会让Card类实现Comparable。能够将卡片从最弱的卡片分类到最强的卡片,这样可以更容易地评估整体手部的力量。