游戏中的卡牌等级

2023-12-06

我是一名 Java 初学者。因此,任何帮助将不胜感激!

我设计了一个卡片类和甲板类,我将在我创建的游戏中使用它们。到目前为止,我的游戏似乎运行得很好,但问题出在我的 Cards 类上。我想利用 getRank() 方法为玩家拥有的牌(无论花色如何)积累积分。

例如,如果他们抽到 2 颗方块,则价值 2 分,3 颗红心则价值 3 分……等等。我创建了一个String[] called ranks尝试这样做,并且我think这就是它的作用。但是,我希望所有人头牌(如国王、王后...)的值为 10。但并非所有这些牌都位于我的数组中的索引 10 处。我能否就如何调整这一点提供一些指导?

先感谢您。

int rank;
int suit;
String[]ranks = { " "," ", " " } //all 13 ranks from Ace to King 
String[]suits = { " ", " ", " "} //all ranks

public Card(int rank, int suit){
   this.rank = rank;
   this.suit = suit; 
}

public void setRank(int rank){
   this.rank = rank;
}

public int getRank(){
   return rank;
}

//more code for suits

public String toString(){
   return ranks[rank]+" of "+suits[suit];
}

枚举是你的朋友。正如你所发现的,ints 是不合适的,因为它们仅适用于某些情况(从 ace 到 10),并且没有什么可以阻止您的用户给出非法值(负值或大于 13)。枚举既可以强制执行正确的值,也可以轻松关联您喜欢的任何数值。

public enum CardRank  {
   ACE(1),
   TWO(2),
   THREE(3),
   ...
   TEN(10),
   JACK(10),
   QUEEN(10),
   KING(10);

   private final int value;
   CardRank(int value)  {
      this.value = value;
   }
   public int getValue()  {
      return  value;
   }
}

使用这个,你可以设置排名

public void Card(CardRank rank, CardSuit suit)  {
   this.rank = rank;
   this.suit = suit;
}
public int getRankValue()  {
   return  rank.getValue();
}

枚举的另一个好处是much更清晰、自记录的功能。如果参数都是int那么,仅仅看签名的类型,并不清楚哪个是等级,哪个是花色。对于枚举来说,这不是问题。

我会离开CardSuit作为练习:)

更多信息:

  • http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
  • Java 中的“枚举”有什么用?
  • 什么是枚举以及它们为何有用?
  • Java 类卡枚举示例。修改
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏中的卡牌等级 的相关文章

随机推荐

  • 为什么我的 ObservableCollection 序列化不起作用?

    我正在尝试序列化和反序列化这个 ObservableCollection public class DataCollection ObservableCollection
  • 使用 jQuery-UI 的文件输入按钮样式

    我正在使用 jQuery UI 我注意到 输入文件 按钮
  • AIR 将服务器托管的 swf 加载到同一沙箱中

    我正在开发一个 AIR 应用程序 需要加载一个 swf 始终来自本地主机 它将访问其父级中的一些方法 反之亦然 不过 我并不关心在桌面应用程序中打开巨大的安全漏洞 我一直在到处寻找 但每次实施都遇到困难 我当前的设置加载到 swf 中并播放
  • R bnlearn Grow-Shrink结构学习返回无向图

    Nagarajan 等人 书 R 中的贝叶斯网络 奥莱利 2013 年 第 14 页 35 说 当我获取 R bnlearn 包的标记数据集并要求通过编写使用增长 收缩实现来学习结构时 library bnlearn data marks
  • 如何在 LIBGDX 游戏中完全禁用多窗口支持

    我在渲染线程中分配了很多内存 并且我已经traced多窗口支持的原因很奇怪 因为我有我的手机禁用了此功能 我已将以下内容添加到 AndroidManifest 基于this 应用程序标记内的代码 但运气不好 我仍然得到不需要的内存分配 仅当
  • JSON.stringify 大对象优化

    我想使用以下方法将大型 JSON 对象转换为字符串JSON stringify 但由于对象的大小 我得到了一个错误 lt Last few GCs gt 20817 0x2cc2830 295727 ms Scavenge 1335 8 1
  • XmlElement 的 Xml 签名无法验证

    我提前为相当长的代码块表示歉意 但这是我可以生成的最小的可编译示例 我已经省略了原始代码中的所有错误检查 我正在使用 Visual Studio 2012 和 NET 4 5 尽管这对于 4 5 来说并不是什么新鲜事 但它应该适用于任何版本
  • Linux bash:多变量赋值

    Linux bash 中是否存在类似于 PHP 中的以下代码的内容 list var1 var2 var3 function that returns a three element array 即 您在一个句子中为 3 个不同的变量分配了
  • 使用 addEventListener 添加带有参数的回调

    我正在使用画布创建拖放系统 canvas addEventListener mousedown function window initialClickX mouse x window initialClickY mouse y windo
  • 循环遍历 CSV 文件并使用 while read? 创建新的 csv 文件

    I have while read field1 field2 field3 field4 do trimmed field2 sed s g echo trimmed field3 gt gt new csv done lt FEEDS
  • SQL:将 ISNULL 与动态枢轴结合使用

    我想让枢轴产生的所有 NULL 值都变成 0 我已经将 ISNULL 放置在每个可以想象到的地方 但似乎没有任何效果 枢轴与 ISNULL 兼容吗 代码如下 DECLARE startDate datetime SET startDate
  • 笔记数据库检索条件

    有了这个代码 Set col db Search Form formname id 212 time 0 例如 我明确给出搜索函数 212 但是如果我想给出一个变量怎么办 dim var as Integer 我的搜索会是什么样子 因为这不
  • 如何通过运行应用程序在 Tomcat 上部署 Web 应用程序

    我想开发更新程序应用程序 可以说我有 运行Tomcat 在 Tomcat 上运行更新程序应用程序 在同一个 Tomcat 上运行旧版本的应用程序 我想 停止旧应用程序 取消部署旧应用程序 部署新版本的应用程序 假设我在更新程序应用程序资源中
  • 当我在棒棒糖 5.1 中单击浏览器上的共享时,我的应用程序不显示

    当您单击任何网络链接上的共享时 我尝试打开我的应用程序 我该怎么做 我需要广告任何许可吗 我已添加下面的代码 但我在共享列表中没有看到我的应用程序 我怎样才能让它发挥作用 我真的很感谢任何帮助 显现
  • 自定义注释 JSF

    我想制作自定义注释来检查 JSF Web 应用程序某些功能的安全性 为了安全起见 我将 Tomcat 安全性与 JaaS 结合使用 因此我没有可用的应用程序管理安全性 实际上想要做的是在 Spring Security Secured ro
  • 如果无法继承QSlider,如何为滑块添加刻度线

    我有一个 Qt 对话框 里面有一个滑块 当对话框初始化时 滑块将被设置一个值 为了提醒用户默认值是什么 我想给滑块添加一个标记 只需在手柄上方画一条线或一个三角形即可 这里 滑块应该是QSlider类型 这意味着我无法实现从QSlider派
  • Neo4j 强制索引的问题

    我遇到了一个问题 我在 Cypher 批量查询中强制使用索引 UNWIND rows AS row MATCH s Entity USING INDEX s Entity uuid WHERE s uuid row source MATCH
  • 如何在postgresql中查找任意大小的数组的所有组合(子集)[重复]

    这个问题在这里已经有答案了 给定一个数组 如何在 postgresql 中查找特定大小的元素的所有组合 子集 例如 给定一个数组 1 2 3 4 大小为 3 的所有组合都是 1 2 3 1 2 4 1 3 4 2 3 4 组合中的顺序并不重
  • NSURLSession:如何增加 URL 请求的超时时间?

    我正在使用iOS 7的新功能NSURLSessionDataTask检索数据如下 NSURLSession session NSURLSession sharedSession NSURLSessionDataTask dataTask s
  • 游戏中的卡牌等级

    我是一名 Java 初学者 因此 任何帮助将不胜感激 我设计了一个卡片类和甲板类 我将在我创建的游戏中使用它们 到目前为止 我的游戏似乎运行得很好 但问题出在我的 Cards 类上 我想利用 getRank 方法为玩家拥有的牌 无论花色如何