点击注册
点击注册
.

你的位置:赌大小游戏 > 棋牌百科 >

java小游戏之斗地主

发布日期:2022-04-15 17:30    点击次数:205

java小游戏之斗地主

按照斗地主的规则,完成洗牌发牌的动作。
具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。


准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌。 每张牌由花色 数字两部分组成,可以使用 花色集合 与 数字集合 嵌套迭代完成每张牌的组装。
牌由Collections类的shuffle方法进行随机排序。
发牌 : 将每个人以及底牌设计为ArrayList集合,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
看牌 : 直接打印每个集合。
package Demo09;
import java.util.ArrayList;
import java.util.Collections;


public class Poker {
public static void main(String[] args) {
/*
* 1: 准备牌操作
*/
//1.1 创建一个装牌的容器 将来存储每一张牌的
ArrayList<String> pokerBox = new ArrayList<String>();
//1.2 创建花色的集合
ArrayList<String> flowers = new ArrayList<String>();


//1.3 创建数字的集合 为什么是String不是Integer 因为扑克里的JQKA没用数字表示
ArrayList<String> numbers = new ArrayList<String>();


//1.4 分别给花色 以及 数字集合添加元素
flowers.add("♥");
flowers.add("♦");
flowers.add("♠");
flowers.add("♣");


for(int i = 2;i<=10;i++){
numbers.add(i+" ");//这里将2~10用字符串表示即加“ ”
}
//数字集合添加J,Q,K,A
numbers.add("J");
numbers.add("Q");
numbers.add("K");
numbers.add("A");
//1.5 创造牌即拼接牌,将花色和数字拼接组建每一张牌
// 拿出每一个花色 然后跟每一个数字 进行结合 存储到装牌的容器中
//用增强for循环,数字循环在里在外都可以
for (String flower : flowers) {
//flower每一个花色
//遍历数字集合
for(String number : numbers){
//结合
String card = flower+number;
//存储到装牌的容器中
pokerBox.add(card);
}
}
//用普通的for循环来实现
/* for (int i = 0; i <flowers.size() ; i++) {
for (int j = 0; j <numbers.size() ; j++) {
String card= flowers.get(i)+numbers.get(j);
pokerBox.add(card);


}
}*/
//1.6添加大王小王
pokerBox.add("小☺");
pokerBox.add("大☠");
// System.out.println(pokerBox);


//2:洗牌 将容器里的牌的索引打乱
Collections.shuffle(pokerBox);
//3 发牌
//3.1 创建 三个 玩家集合 再创建一个底牌集合
ArrayList<String> player1 = new ArrayList<String>();
ArrayList<String> player2 = new ArrayList<String>();
ArrayList<String> player3 = new ArrayList<String>();
ArrayList<String> dipai = new ArrayList<String>();


//遍历装牌容器 必须知道索引
for(int i = 0;i<pokerBox.size();i++){
//获取 每一张牌
String card = pokerBox.get(i);
//留出三张底牌 存到 底牌集合中
if(i>=51){//存到底牌集合中,一定要把判断底牌放在前面
dipai.add(card);
} else {
//玩家1 %3 ==0
if(i%3==0){
player1.add(card);
}else if(i%3==1){//玩家2
player2.add(card);
}else{//玩家3
player3.add(card);
}
}
}
//看看
System.out.println("刘备:"+player1);
System.out.println("关羽:"+player2);
System.out.println("张飞:"+player3);
System.out.println("底牌:"+dipai);
}
}运行结果:

————————————————
版权声明:本文为CSDN博主「DearNingning」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:java小游戏之斗地主_DearNingning的博客-CSDN博客

上一篇:「三国杀」这款游戏你有哪些惊为天人的操作    下一篇:三国杀ol界张角的存在是否破坏游戏体验