标签:concat str 组合 简单的 样式 list() class numbers game
案例说明:使用Java实现简单的斗地主洗牌发牌的操作;
具体规则:
共有54张牌,顺序打乱;
三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌)。
具体代码实现步骤:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PokerGame {
public static void main(String[] args) {
//定义扑克牌的花色以及数字的数组
String[] flower = {"??","??","??","??"};
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//创建牌组集合
List poker = new ArrayList();
//组合扑克牌样式
//拿出每一个花色,然后跟每一个数字进行结合,储存在牌组中
for (int i = 0; i < flower.length; i++) {
for (int j = 0; j < numbers.length; j++) {
poker.add(flower[i].concat(numbers[j]));
}
}
//添加大小王到牌组集合中
poker.add("大王");
poker.add("小王");
//打印输出所有扑克牌测试
System.out.println(poker);
//定义三个玩家和地主牌的集合
List player1 = new ArrayList();
List player2 = new ArrayList();
List player3 = new ArrayList();
List dizhupai = new ArrayList();
//洗牌操作,使用shuffle方法
Collections.shuffle(poker);
System.out.println(poker); //测试牌有没有被打乱
//发牌操作
for (int k = 0; k<poker.size() ; k++) {
//留出三张牌存到底牌的集合中
if (k > 50) {
dizhupai.add(poker.get(k));
} else if (k % 3 == 0) {
player1.add(poker.get(k));
} else if (k % 3 == 1) {
player2.add(poker.get(k));
} else if (k % 3 == 2) {
player3.add(poker.get(k));
}
}
//最终看牌操作
System.out.println("玩家一的牌"+player1);
System.out.println("玩家二的牌"+player2);
System.out.println("玩家三的牌"+player3);
System.out.println("地主牌"+dizhupai);
}
}
玩家一的牌:[??9, ??A, ??5, ??A, ??2, ??10, ??7, ??J, ??3, ??2, ??5, ??2, ??6, ??7, ??K, ??9, 大王]
玩家二的牌:[??9, ??4, ??4, ??10, ??J, ??4, ??8, ??5, ??A, ??A, ??7, ??3, ??Q, ??K, ??6, ??3, ??Q]
玩家三的牌:[??Q, ??2, ??8, ??7, ??Q, ??10, ??8, ??6, ??4, ??10, 小王, ??K, ??3, ??8, ??6, ??K, ??J]
地主牌:[??9, ??5, ??J]
标签:concat str 组合 简单的 样式 list() class numbers game
原文地址:https://www.cnblogs.com/dingqf/p/12861261.html