纸牌煮稀饭听过没

以前小时候经常玩这个,规则就是一人一半扑克,我先放一张,只能拿手里的第一张牌,你也拿你手里的第一张,如果相同了你就全拿走,不相同我再拿一张,如果我的牌和之前两张有一张相同了,从那张开始到后面的全归我。
代码:

public class Mytest {
private static volatile Integer q= 0;
private static volatile Integer k= 0;
public static void main(String[] args) {

   List<String>  list1= new ArrayList<>();
   List<String>  list2= new ArrayList<>();
   List<String>  list3= new ArrayList<>();
   List<String>  list4= new ArrayList<>();
    String[] color = {"红桃","梅花","黑桃","方片"};
    String[] cardValue = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
    Set<String> set = new HashSet<>();
    set.add("大王S");
    set.add("小王S");
    for (String s : color) {
        for (String s1 : cardValue) {
            set.add(s+s1);
        }
    }

    //发牌
    boolean flag = true;
    Iterator<String> iterator = set.iterator();
    while (iterator.hasNext()){
            if (flag){
                list1.add(iterator.next());
                Collections.shuffle(list1);
                flag = false;
            }else {
                list2.add(iterator.next());
                Collections.shuffle(list2);
                flag = true;
            }

        }


    System.out.println(list1);
    System.out.println(list2);
    list3.add(list1.get(0).substring(2));
    list4.add(list1.get(0));
    list1.remove(0);  //玩家1在桌面放一张扑克
    guoMe(list1, list2, list3, list4);

}

private static void guoMe(List<String> list1, List<String> list2, List<String> list3, List<String> list4) {
    if (list1.size()>0 && list2.size()>0){      //如果谁手里扑克耗尽Game Over
    if (list3.contains(list2.get(0).substring(2))){    //判断玩家2的牌和桌面的牌是否一致,如果一致,就收取一致的那张扑克之后的扑克(备注判断扑克一致不需要判断花色)
        list3.add(list2.get(0).substring(2));
        list4.add(list2.get(0));
        for (int i = 0; i < list3.size(); i++) {
            if(list2.get(0).substring(2).equals(list3.get(i))){
                q=i;
                break;
            }
        }
        list2.remove(0);      //无论拿出的牌是否和桌面牌一致,都放上去
        System.out.println("剩余list2"+list2);
        System.out.println("剩余list4"+list4);
        List<String> temList = new ArrayList<>();
        for (int i = q; i < list4.size(); i++) {  //收取扑克
            list2.add(list4.get(i));
            temList.add(list4.get(i));
        }
        for (int i = 0; i < list4.size(); i++) {
            for (String s1 : temList) {
                if (list4.get(i).equals(s1)){
                    list4.remove(s1);
                    list3.remove(s1.substring(2));
                }
            }
        }
        //收牌之后自己放牌 
        list3.add(list2.get(0).substring(2));
        list4.add(list2.get(0));
        list2.remove(0);
    }else {
        list3.add(list2.get(0).substring(2));    //牌不一样,就放下牌
        list4.add(list2.get(0));
        list2.remove(0);
        System.out.println("剩余list2"+list2);
        System.out.println("剩余list4"+list4);
    }
    if (list3.contains(list1.get(0).substring(2))){
        list3.add(list1.get(0).substring(2));
        list4.add(list1.get(0));
        for (int i = 0; i < list3.size(); i++) {
            if(list1.get(0).substring(2).equals(list3.get(i))){
                k=i;
                break;
            }
        }
        list1.remove(0);
        System.out.println("剩余ist1"+list1);
        System.out.println("剩余list4"+list4);
        List<String> temList2 = new ArrayList<>();
        for (int i = k; i < list4.size(); i++) {
            list1.add(list4.get(i));
            temList2.add(list4.get(i));
        }
        for (int i = 0; i < list4.size(); i++) {
                for (String s1 : temList2) {
                    if (list4.get(i).equals(s1)){
                        list4.remove(s1);
                        list3.remove(s1.substring(2));
                }
            }
        }
        //收牌之后自己放牌 TODO
        list3.add(list1.get(0).substring(2));
        list4.add(list1.get(0));
        list1.remove(0);
    }else {
        list3.add(list1.get(0).substring(2));
        list4.add(list1.get(0));
        list1.remove(0);
        System.out.println("剩余list1"+list1);
        System.out.println("剩余list4"+list4);
    }
    System.out.println("list1:"+list1.size()+"--"+list1);
    System.out.println("list2:"+list2.size()+"--"+list2);
    System.out.println("list4:"+list4.size()+"--"+ list4);
    guoMe(list1, list2, list3, list4);


}else {
        System.out.println("OVER");
        System.out.println("list1:"+list1.size());
        System.out.println("list1:"+list2.size());
        System.out.println("list4:"+list4.size());
    }
}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容