java之扑克牌枚举

编程入门 行业动态 更新时间:2024-10-09 11:29:17

java之<a href=https://www.elefans.com/category/jswz/34/1766301.html style=扑克牌枚举"/>

java之扑克牌枚举

扑克牌的两个属性,花色(suit)和点数(rank)
下面写一个简单的类Card`

package com.syz.card;
import java.io.Serializable;
public class Card implements Serializable{private static final long serialVersionUID = -4279016186402068401L;private int suit;private int rank;public static final int SPADE = 0;public static final int HEART = 1;public static final int CLUB = 2;public static final int DIAMOND = 3;public static final int BLACK = 4;public static final int RED = 5;private static final String[] suits = new String[] { "黑桃", "红桃", "梅花", "方块","小", "大" };public static final int ACE = 1000;public static final int TWO = 1001;public static final int THREE = 1002;public static final int FOUR = 1003;public static final int FIVE = 1004;public static final int SIX = 1005;public static final int SEVEN = 1006;public static final int EIGHT = 1007;public static final int NINE = 1008;public static final int TEN = 1009;public static final int JACK = 1010;public static final int QUEEN = 1011;public static final int KING = 1012;public static final int JOKER = 1013;private static final String[] ranks = new String[] { "A", "2", "3", "4","5", "6", "7", "8", "9", "10", "J", "Q", "K", "王" };public Card(int suit, int rank) {if (suit > -1 && suit < 6) {if (suit < 4) {if (rank < 1000 || rank > 1012) {throw new IllegalArgumentException("花色或点数参数错误!");}}else {if (rank != 1013) {throw new IllegalArgumentException("花色或点数参数错误!");}}}else {throw new IllegalArgumentException("花色参数错误!");}this.suit = suit;this.rank = rank;}public int getSuit() {return suit;}public int getRank() {return rank;}public String toString() {return suits[suit] + ranks[rank - 1000];}
}

写完之后,要new一张扑克牌,需要两个参数,suit和rank,而且suit和rank是有关系的黑红梅方可以对应A2345678910JQK,然后黑色小王,红色大王。这个在构造器里做了校验,如果不符合,则抛出参数错误异常。

下面是测试类

CardClient

package com.syz.card;
import java.util.ArrayList;
import java.util.List;
public class CardClient {public static void main(String[] args) {test2();}private static void test1() {Card c = new Card(Card.BLACK, Card.JOKER);System.out.println(c);}private static void test2() {int[] suits = new int[] { Card.SPADE, Card.HEART, Card.CLUB,Card.DIAMOND };int[] ranks = new int[] { Card.ACE, Card.TWO, Card.THREE, Card.FOUR,Card.FIVE, Card.SIX, Card.SEVEN, Card.EIGHT, Card.NINE,Card.TEN, Card.JACK, Card.QUEEN, Card.KING };List<Card> cards = new ArrayList<Card>();for (int i = 0; i < suits.length; i++) {for (int j = 0; j < ranks.length; j++) {cards.add(new Card(suits[i], ranks[j]));}}cards.add(new Card(Card.BLACK, Card.JOKER));cards.add(new Card(Card.RED, Card.JOKER));System.out.println(cards);}
}

测试结果:
[黑桃A, 黑桃2, 黑桃3, 黑桃4, 黑桃5, 黑桃6, 黑桃7, 黑桃8, 黑桃9, 黑桃10, 黑桃J, 黑桃Q, 黑桃K, 红桃A, 红桃2, 红桃3, 红桃4, 红桃5, 红桃6, 红桃7, 红桃8, 红桃9, 红桃10, 红桃J, 红桃Q, 红桃K, 梅花A, 梅花2, 梅花3, 梅花4, 梅花5, 梅花6, 梅花7, 梅花8, 梅花9, 梅花10, 梅花J, 梅花Q, 梅花K, 方块A, 方块2, 方块3, 方块4, 方块5, 方块6, 方块7, 方块8, 方块9, 方块10, 方块J, 方块Q, 方块K, 小王, 大王]
这样一副扑克就创建成功了。

更多推荐

java之扑克牌枚举

本文发布于:2024-02-07 09:24:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755805.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:扑克牌   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!