gpt4 book ai didi

java - 我是否需要多个类来制作一个只有 1 个用户的扑克程序?

转载 作者:行者123 更新时间:2023-12-01 12:45:12 26 4
gpt4 key购买 nike

我正在开发一个扑克程序。它应该发 5 张牌,允许用户更换最多 3 张牌。然后它将评估这手牌并为不同的手牌给出分数,例如:一对 = 1 分,2 对 = 2 分等。

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

我需要参加多个类(class)吗,例如:套牌类(class)、纸牌类(class)、手牌类(class)?或者我可以只做一个扑克类并且只有单独的方法吗?

这是我到目前为止所拥有的。

接下来我想我可以做

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" };

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

最佳答案

你绝对应该使用多个类。

将代码分成不同的类的想法并不在于您要编写多少代码,而在于什么是有意义的。在像 Java 这样的面向对象语言中,您希望将属于纸牌评估的逻辑、属于洗牌的逻辑、属于常规游戏流程的逻辑等分开。

我不会给你一个关于如何编写这个程序的概述,因为这会花费太长时间,而且,它实际上取决于你在编写时所做的选择的编码风格,但是首先,这里有一些想法:

  1. 我会用枚举替换您创建的字符串数组,并给出“二,三,...”枚举数值,以便更轻松地评估手牌强度。
  2. 我将创建一个包含值和花色枚举的卡片类
  3. 我会创建一个牌组枚举,其中包含纸牌列表并知道如何洗牌
  4. 我会创建一个手牌评估器,它接受一个列表,其中列表中的每个项目包含 5 张牌,然后将它们从最强的牌到最弱的牌进行排序。

我过去曾多次创建过扑克游戏(德州扑克)。这不是一个可以通过编写几个方法轻松完成的简单编码练习,这绝对是一个挑战,您应该很好地构建代码以使开发更加直观。

编辑:

我还会使 Card 类实现 Comparable。能够将手牌中的牌从最弱的牌到最强的牌进行排序将使评估整手牌的强度变得更加容易。

关于java - 我是否需要多个类来制作一个只有 1 个用户的扑克程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com