用java把多米诺的28张牌写成枚举
时间: 2023-11-10 11:00:06 浏览: 124
可以使用Java中的`enum`(枚举)来实现这个功能,以下是一个可能的实现:
```java
public enum Domino {
BLANK_BLANK, BLANK_ONE, BLANK_TWO, BLANK_THREE, BLANK_FOUR, BLANK_FIVE, BLANK_SIX,
ONE_ONE, ONE_TWO, ONE_THREE, ONE_FOUR, ONE_FIVE, ONE_SIX,
TWO_TWO, TWO_THREE, TWO_FOUR, TWO_FIVE, TWO_SIX,
THREE_THREE, THREE_FOUR, THREE_FIVE, THREE_SIX,
FOUR_FOUR, FOUR_FIVE, FOUR_SIX,
FIVE_FIVE, FIVE_SIX,
SIX_SIX
}
```
其中,每个枚举常量代表一张牌,例如`BLANK_BLANK`代表两个空白的面,`BLANK_ONE`代表一个空白的面和一个带有一个点的面,以此类推。
这个枚举中共有28个常量,分别对应多米诺的28张牌。
相关问题
用java写一个多米诺游戏牌型的枚举
以下是一个简单的Java程序,用于枚举多米诺游戏的牌型:
```
public class Domino {
private int left;
private int right;
public Domino(int left, int right) {
this.left = left;
this.right = right;
}
public int getLeft() {
return left;
}
public int getRight() {
return right;
}
public static void main(String[] args) {
// 枚举所有的多米诺牌型
for (int i = 0; i <= 6; i++) {
for (int j = i; j <= 6; j++) {
Domino domino = new Domino(i, j);
System.out.println(domino.getLeft() + " | " + domino.getRight());
}
}
}
}
```
在上面的代码中,我们定义了一个 `Domino` 类来表示多米诺牌型。每个多米诺牌型由左右两个数字组成。我们使用两个嵌套的 `for` 循环来枚举所有可能的牌型。在每个循环迭代中,我们创建一个新的多米诺牌型对象,然后打印出左右数字,以此来输出所有的多米诺牌型。
用java写一个多米诺游戏发牌
好的,以下是一个简单的 Java 多米诺游戏发牌的代码示例:
```java
import java.util.ArrayList;
import java.util.Collections;
public class DominoGame {
private ArrayList<DominoTile> deck; // 多米诺牌组
public DominoGame() {
deck = new ArrayList<>();
// 初始化多米诺牌组
for (int i = 0; i <= 6; i++) {
for (int j = i; j <= 6; j++) {
deck.add(new DominoTile(i, j));
}
}
}
// 打乱牌组
public void shuffleDeck() {
Collections.shuffle(deck);
}
// 发牌
public ArrayList<ArrayList<DominoTile>> deal(int numPlayers, int numTilesPerPlayer) {
ArrayList<ArrayList<DominoTile>> players = new ArrayList<>();
for (int i = 0; i < numPlayers; i++) {
players.add(new ArrayList<>());
}
for (int i = 0; i < numTilesPerPlayer; i++) {
for (int j = 0; j < numPlayers; j++) {
players.get(j).add(deck.remove(0)); // 从牌组中移除第一张牌并添加到玩家手牌中
}
}
return players;
}
public static void main(String[] args) {
DominoGame game = new DominoGame();
game.shuffleDeck();
ArrayList<ArrayList<DominoTile>> players = game.deal(4, 5);
System.out.println(players);
}
}
class DominoTile {
private int leftPip;
private int rightPip;
public DominoTile(int leftPip, int rightPip) {
this.leftPip = leftPip;
this.rightPip = rightPip;
}
public int getLeftPip() {
return leftPip;
}
public int getRightPip() {
return rightPip;
}
@Override
public String toString() {
return "[" + leftPip + "|" + rightPip + "]";
}
}
```
上述代码定义了一个 `DominoGame` 类表示多米诺游戏,其中包括了牌组的初始化、打乱牌组和发牌的方法。还定义了一个 `DominoTile` 类表示多米诺牌,包括了左右点数和 `toString()` 方法用于输出牌的字符串形式。`main()` 方法中演示了如何使用 `DominoGame` 类进行发牌。
阅读全文