需求:
通过程序实现斗地主过程中的洗牌,发牌和看牌
思路:
1:创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
2:往牌盒里面装牌
3:洗牌,也就是把牌打撒,用Collections的shuffle()方法实现
4:发牌,也就是遍历集合,给三个玩家发牌
5:看牌,也就是三个玩家分别遍历自己的牌
package DouDiZhu;
import java.util.ArrayList;
import java.util.Collections;
/*
需求:
通过程序实现斗地主过程中的洗牌,发牌和看牌
思路:
1:创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
2:往牌盒里面装牌
3:洗牌,也就是把牌打撒,用Collections的shuffle()方法实现
4:发牌,也就是遍历集合,给三个玩家发牌
5:看牌,也就是三个玩家分别遍历自己的牌
* */
public class DouDiZhu_Poker {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<>();
String [] str1 = {"♠","♥","♣","♦"};
String [] str2 = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
for (String s : str1) {
for (String s1 : str2) {
arr.add(s+s1);
}
}
arr.add("大王");
arr.add("小王");
Collections.shuffle(arr);
ArrayList<String> xiaohei = new ArrayList<>();
ArrayList<String> xiaohua = new ArrayList<>();
ArrayList<String> xiaobai = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
for (int i = 0; i < arr.size(); i++) {
if(i>=arr.size()-3){
dipai.add(arr.get(i));
}else if(i%3==0){
xiaohei.add(arr.get(i));
}else if(i%3==1){
xiaohua.add(arr.get(i));
}else {
xiaobai.add(arr.get(i));
}
}
kanPoker("小白",xiaobai);
kanPoker("小黑",xiaohei);
kanPoker("小花",xiaohua);
kanPoker("底牌",dipai);
}
public static void kanPoker(String name,ArrayList<String> arr){
System.out.println(name+"的牌");
for (String s : arr) {
System.out.print(s+" ");
}
System.out.println();
}
}
下面是斗地主升级版,就是要把发的牌给排序下,把小牌放到左边大牌放到右边
package DouDiZhu;
import java.util.*;
public class DouDiZhu_PokeMax {
public static void main(String[] args) {
String [] str1 = {"♠","♥","♣","♦"};
String [] str2 = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
HashMap<Integer,String> hm = new HashMap<>();
ArrayList<Integer> arr = new ArrayList<>();
int index = 0;
for (String s : str2) {
for (String s1 : str1) {
String s2 = s1 + s;
hm.put(index,s2);
arr.add(index);
index++;
}
}
hm.put(index,"小王");
arr.add(index);
index++;
hm.put(index,"大王");
arr.add(index);
Collections.shuffle(arr);
// System.out.println(arr);
TreeSet<Integer> xiaohei = new TreeSet<>();
TreeSet<Integer> xiaobai = new TreeSet<>();
TreeSet<Integer> xiaohua = new TreeSet<>();
TreeSet<Integer> dipai = new TreeSet<>();
for (int i = 0; i < arr.size(); i++) {
if(i>=arr.size()-3){
dipai.add(arr.get(i));
}else if(i%3==0){
xiaohei.add(arr.get(i));
}else if(i%3==1){
xiaohua.add(arr.get(i));
}else {
xiaobai.add(arr.get(i));
}
}
/* Set<Map.Entry<Integer, String>> entries = hm.entrySet();
for (Map.Entry<Integer, String> entry : entries) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(value);
}*/
kanPoker("小白",xiaobai,hm);
kanPoker("小黑",xiaohei,hm);
kanPoker("小花",xiaohua,hm);
kanPoker("底牌",dipai,hm);
}
public static void kanPoker(String name,TreeSet<Integer> arr,HashMap<Integer,String> hm){
System.out.println(name+"的牌");
for (Integer integer : arr) {
System.out.print(hm.get(integer)+" ");
}
System.out.println();
}
}
大家有疑问可以留言,我会争取为大家解决,希望大家都能学号自己想学的语言。