斗地主怎么玩
简而言之,斗地主玩法以下几步:
1.约3个人
2.准备一副牌
3.洗牌
4.发牌
5.看牌
如何用代码模拟呢
Java实现,同样也是上面四步
不多说,上代码:
import java.util.ArrayList;
import java.util.Collections;
/*
斗地主:
1.约3个人
2.准备一副牌
3.洗牌
4.发牌
5.看牌
*/
public class DouDiZhu2 {
public static void main(String[] args) {
//1.********约3个人
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
//2.********准备一副牌,54张牌
//poker集合用于存放扑克牌
ArrayList<String> poker = new ArrayList<>();
//扑克牌由花色和点数构成
String[] colors = {"♠","♥","♣","♦"};
String[] numbers = {"A","K","Q","J","10","9","8","7","6","5","4","3","2"};
//生成52张牌
for(String number : numbers){
for (String color : colors) {
//System.out.println(color+number);
//把组装好的牌存储到poker集合中
poker.add(color+number);
}
}
//再把大小王放进牌中
poker.add("大王");
poker.add("小王");
//System.out.println(poker);
//3.********洗牌
//使用集合的工具类Collections中的方法,进行随机置换。
Collections.shuffle(poker);
//4.********发牌
//存放底牌的集合
ArrayList<String> di = new ArrayList<>();
for (int i = 0; i < poker.size() ; i++) {
//获取每一张牌
String p = poker.get(i);
if(i>=51){ //剩余3张牌为底牌,发牌结束
di.add(p);
}else if(i%3==0){ //给3个玩家轮流发牌
//给player1发牌
player1.add(p);
}else if(i%3==1){
//给player2发牌
player2.add(p);
}else if(i%3==2){
//给player3发牌
player3.add(p);
}
}
//5.发牌结果
System.out.println("小明:"+player1);
System.out.println("小巧:"+player2);
System.out.println("小强:"+player3);
System.out.println("底牌:"+di);
}
}
效果
更多案例