Java版斗地主代码免费复制

public class Doudizhu {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] huashe1 = {"♥", "♠", "♦", "♣"};
        int[] daxiao1 = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
        String[] pai1 = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
        ArrayList<Pai> list = new ArrayList<>();
        for (String s : huashe1) {
            for (int i = 0; i < daxiao1.length; i++) {
                list.add(new Pai(s, pai1[i], daxiao1[i]));
            }
        }
        list.add(new Pai("", "大王", 50));
        list.add(new Pai("", "小王", 20));
        Collections.shuffle((List<?>) list);
        ArrayList<Pai> player1 = new ArrayList<>();
        ArrayList<Pai> player2 = new ArrayList<>();
        ArrayList<Pai> player3 = new ArrayList<>();
        ArrayList<Pai> under = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if (i >= list.size() - 3) {
                under.add(list.get(i));
            } else {
                if (i % 3 == 0) {
                    player1.add(list.get(i));
                } else if (i % 3 == 1) {
                    player2.add(list.get(i));
                } else {
                    player3.add(list.get(i));
                }
            }
        }
        System.out.println(under);
        int r = new Random().nextInt(51);
        if (r % 3 == 0) {
            player1.addAll(under);
        } else if (r % 3 == 1) {
            player2.addAll(under);
        } else {
            player3.addAll(under);
        }
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);
        System.out.println(player1);
        System.out.println(player2);
        System.out.println(player3);
        ArrayList<Pai> paikuplayer1 = new ArrayList<>();
        ArrayList<Pai> paikuplayer2 = new ArrayList<>();
        ArrayList<Pai> paikuplayer3 = new ArrayList<>();
        ArrayList<Pai> paikuunderp1 = new ArrayList<>();
        ArrayList<Pai> paikuunderp2 = new ArrayList<>();
        ArrayList<Pai> paikuunderp3 = new ArrayList<>();
        ArrayList<Pai> paikuunder = new ArrayList<>();
        String p1;
        String p2;
        String p3;
        if (player1.size() == 20) {
            p1 = "地主";
            p2 = "玩家一";
            p3 = "玩家二";
        } else if (player2.size() == 20) {
            p1 = "玩家二";
            p2 = "地主";
            p3 = "玩家一";
        } else {
            p1 = "玩家一";
            p2 = "玩家二";
            p3 = "地主";
        }
        if (player1.size() != 20) {
        } else {
            System.out.println("==================");
            System.out.println(p1 + "的牌为" + player1);
            System.out.println("请" + p1 + "出牌");
            System.out.println("请输入想要出的牌,输入-1停止出牌");
            while (true) {
                if (paikuunderp2.size() == 0 && paikuunderp3.size() == 0) {
                    paikuunderp1.clear();
                } else {
                    paikuunderp1.clear();
                    System.out.println("请选择,1.出牌 2.要不起 3.过");
                    if (sc.nextLine().equals("2")) {
                        System.out.println("要不起");
                        break;
                    }else if(sc.nextLine().equals("3")){
                        System.out.println("过");
                        break;
                    }
                }
                while (true) {
                    System.out.println("请输入要出的牌");
                    String a = sc.nextLine();
                    if (a.equals("-1")) {
                        break;
                    } else {
                        if (!isTrue(player1, a)) {
                            System.out.println("您没有这张牌");
                        } else {
                            Pai pai = throwcard(player1, a);
                            paikuplayer1.add(pai);
                            player1.remove(pai);
                        }
                    }
                }
                System.out.println("出的牌为" + paikuplayer1);
                if (chuPai(paikuplayer1)) {
                    System.out.println("可以出牌");
                    if (daNi(paikuplayer1, paikuunderp2) && daNi(paikuplayer1, paikuunderp3)) {
                        paikuunderp1.addAll(paikuplayer1);
                        paikuunder.addAll(paikuplayer1);
                        paikuplayer1.clear();
                        System.out.println(p1 + "出的牌为" + paikuunderp1);
                        paikuunderp3.clear();
                        break;
                    }
                }
                System.out.println("不符合规则,请重新出牌");
                player1.addAll(paikuplayer1);
                Collections.sort(player1);
                System.out.println("当前牌库为" + player1);
                paikuplayer1.clear();
            }
            System.out.println("底库中牌为" + paikuunder);
        }
        if (player2.size() != 20 && paikuunderp1.size() == 0) {
        } else {
            System.out.println("==================");
            System.out.println(p2 + "的牌为" + player2);
            System.out.println("请" + p2 + "出牌");
            System.out.println("请输入想要出的牌,输入-1停止出牌");
            while (true) {
                if (paikuunderp1.size() == 0 && paikuunderp3.size() == 0) {
                    paikuunderp2.clear();
                } else {
                    paikuunderp2.clear();
                    System.out.println("请出入选择,1.出牌 2.要不起 3.过");
                    if (sc.nextLine().equals("2")) {
                        System.out.println("要不起");
                        break;
                    }else if(sc.nextLine().equals("3")){
                        System.out.println("过");
                        break;
                    }
                }
                while (true) {
                    System.out.println("请输入要出的牌");
                    String a = sc.nextLine();
                    if (a.equals("-1")) {
                        break;
                    } else {
                        if (!isTrue(player2, a)) {
                            System.out.println("您没有这张牌");
                        } else {
                            Pai pai = throwcard(player2, a);
                            paikuplayer2.add(pai);
                            player2.remove(pai);
                        }
                    }
                }
                System.out.println("出的牌为" + paikuplayer2);
                if (chuPai(paikuplayer2)) {
                    System.out.println("可以出牌");
                    if (daNi(paikuplayer2, paikuunderp1) && daNi(paikuplayer2, paikuunderp3)) {
                        paikuunderp2.addAll(paikuplayer2);
                        paikuunder.addAll(paikuplayer2);
                        paikuplayer2.clear();
                        System.out.println(p2 + "出的牌为" + paikuunderp2);
                        paikuunderp1.clear();
                        break;
                    }
                }
                System.out.println("不符合规则,请重新出牌");
                player2.addAll(paikuplayer2);
                Collections.sort(player2);
                System.out.println("当前牌库为" + player2);
                paikuplayer2.clear();
            }
            System.out.println("底库中牌为" + paikuunder);
        }
        System.out.println("==================");
        System.out.println(p3 + "的牌为" + player3);
        System.out.println("请" + p3 + "出牌");
        System.out.println("请输入想要出的牌,输入-1停止出牌");
        while (true) {
            if (paikuunderp1.size() == 0 && paikuunderp2.size() == 0) {
                paikuunderp3.clear();
            } else {
                paikuunderp3.clear();
                System.out.println("请出入选择,1.出牌 2.要不起 3.过");
                if (sc.nextLine().equals("2")) {
                    System.out.println("要不起");
                    break;
                }else if(sc.nextLine().equals("3")){
                    System.out.println("过");
                    break;
                }
            }
            while (true) {
                System.out.println("请输入要出的牌");
                String a = sc.nextLine();
                if (a.equals("-1")) {
                    break;
                } else {
                    if (!isTrue(player3, a)) {
                        System.out.println("您没有这张牌");
                    } else {
                        Pai pai = throwcard(player3, a);
                        paikuplayer3.add(pai);
                        player3.remove(pai);
                    }
                }
            }
            System.out.println("出的牌为" + paikuplayer3);
            if (chuPai(paikuplayer3)) {
                System.out.println("可以出牌");
                if (daNi(paikuplayer3, paikuunderp2) && daNi(paikuplayer3, paikuunderp1)) {
                    paikuunderp3.addAll(paikuplayer3);
                    paikuunder.addAll(paikuplayer3);
                    paikuplayer3.clear();
                    System.out.println(p3 + "出的牌为" + paikuunderp3);
                    paikuunderp2.clear();
                    break;
                }
            }
            System.out.println("不符合规则,请重新出牌");
            player3.addAll(paikuplayer3);
            Collections.sort(player3);
            System.out.println("当前牌库为" + player3);
            paikuplayer3.clear();
        }

        while (true) {
            System.out.println("==================");
            System.out.println(p1 + "的牌为" + player1);
            System.out.println("请" + p1 + "出牌");
            System.out.println("请输入想要出的牌,输入-1停止出牌");
            while (true) {
                if (paikuunderp2.size() == 0 && paikuunderp3.size() == 0) {
                    paikuunderp1.clear();
                } else {
                    paikuunderp1.clear();
                    System.out.println("请出入选择,1.出牌 2.要不起 3.过");
                    if (sc.nextLine().equals("2")) {
                        System.out.println("要不起");
                        break;
                    }else if(sc.nextLine().equals("3")){
                        System.out.println("过");
                        break;
                    }
                }
                while (true) {
                    System.out.println("请输入要出的牌");
                    String a = sc.nextLine();
                    if (a.equals("-1")) {
                        break;
                    } else {
                        if (!isTrue(player1, a)) {
                            System.out.println("您没有这张牌");
                        } else {
                            Pai pai = throwcard(player1, a);
                            paikuplayer1.add(pai);
                            player1.remove(pai);
                        }
                    }
                }
                System.out.println("出的牌为" + paikuplayer1);
                if (chuPai(paikuplayer1)) {
                    System.out.println("可以出牌");
                    if (daNi(paikuplayer1, paikuunderp2) && daNi(paikuplayer1, paikuunderp3)) {
                        paikuunderp1.addAll(paikuplayer1);
                        paikuunder.addAll(paikuplayer1);
                        paikuplayer1.clear();
                        System.out.println(p1 + "出的牌为" + paikuunderp1);
                        paikuunderp3.clear();
                        break;
                    } else {
                        System.out.println("你的牌太小,管不上");
                        break;
                    }
                }
                System.out.println("不符合规则,请重新出牌");
                player1.addAll(paikuplayer1);
                Collections.sort(player1);
                System.out.println("当前牌库为" + player1);
                paikuplayer1.clear();
            }
            System.out.println("底库中牌为" + paikuunder);
            if (player1.size() == 0 || player2.size() == 0 || player3.size() == 0) {
                System.out.println("游戏结束");
                break;
            }
            System.out.println("==================");
            System.out.println(p2 + "的牌为" + player2);
            System.out.println("请" + p2 + "出牌");
            System.out.println("请输入想要出的牌,输入-1停止输出");
            while (true) {
                if (paikuunderp1.size() == 0 && paikuunderp3.size() == 0) {
                    paikuunderp2.clear();
                } else {
                    paikuunderp2.clear();
                    System.out.println("请出入选择,1.出牌 2.要不起 3.过");
                    if (sc.nextLine().equals("2")) {
                        System.out.println("要不起");
                        break;
                    }else if(sc.nextLine().equals("3")){
                        System.out.println("过");
                        break;
                    }
                }
                while (true) {
                    System.out.println("请输入要出的牌");
                    String a = sc.nextLine();
                    if (a.equals("-1")) {
                        break;
                    } else {
                        if (!isTrue(player2, a)) {
                            System.out.println("您没有这张牌");
                        } else {
                            Pai pai = throwcard(player2, a);
                            paikuplayer2.add(pai);
                            player2.remove(pai);
                        }
                    }
                }
                System.out.println("出的牌为" + paikuplayer2);
                if (chuPai(paikuplayer2)) {
                    System.out.println("可以出牌");
                    if (daNi(paikuplayer2, paikuunderp1) && daNi(paikuplayer2, paikuunderp3)) {
                        paikuunderp2.addAll(paikuplayer2);
                        paikuunder.addAll(paikuplayer2);
                        paikuplayer2.clear();
                        System.out.println(p2 + "出的牌为" + paikuunderp2);
                        paikuunderp1.clear();
                        break;
                    }
                }
                System.out.println("不符合规则,请重新出牌");
                player2.addAll(paikuplayer2);
                Collections.sort(player2);
                System.out.println("当前牌库为" + player2);
                paikuplayer2.clear();
            }
            System.out.println("底库中牌为" + paikuunder);
            if (player1.size() == 0 || player2.size() == 0 || player3.size() == 0) {
                System.out.println("游戏结束");
                break;
            }
            System.out.println("==================");
            System.out.println(p3 + "的牌为" + player3);
            System.out.println("请" + p3 + "出牌");
            System.out.println("请输入想要出的牌,输入-1停止出牌");
            while (true) {
                if (paikuunderp1.size() == 0 && paikuunderp2.size() == 0) {
                    paikuunderp3.clear();
                } else {
                    paikuunderp3.clear();
                    System.out.println("请出入选择,1.出牌 2.要不起 3.过");
                    if (sc.nextLine().equals("2")) {
                        System.out.println("要不起");
                        break;
                    }else if(sc.nextLine().equals("3")){
                        System.out.println("过");
                        break;
                    }
                }
                while (true) {
                    System.out.println("请输入要出的牌");
                    String a = sc.nextLine();
                    if (a.equals("-1")) {
                        break;
                    } else {
                        if (!isTrue(player3, a)) {
                            System.out.println("您没有这张牌");
                        } else {
                            Pai pai = throwcard(player3, a);
                            paikuplayer3.add(pai);
                            player3.remove(pai);
                        }
                    }
                }
                System.out.println("出的牌为" + paikuplayer3);
                if (chuPai(paikuplayer3)) {
                    System.out.println("可以出牌");
                    if (daNi(paikuplayer3, paikuunderp2) && daNi(paikuplayer3, paikuunderp1)) {
                        paikuunderp3.addAll(paikuplayer3);
                        paikuunder.addAll(paikuplayer3);
                        paikuplayer3.clear();
                        System.out.println(p3 + "出的牌为" + paikuunderp3);
                        paikuunderp2.clear();
                        break;
                    }
                }
                System.out.println("不符合规则,请重新出牌");
                player3.addAll(paikuplayer3);
                Collections.sort(player3);
                System.out.println("当前牌库为" + player3);
                paikuplayer3.clear();
            }
            System.out.println("当前的底牌池" + paikuunder);
            if (player1.size() == 0 || player2.size() == 0 || player3.size() == 0) {
                System.out.println("游戏结束");
                break;
            }
        }
    }
public static int sameNum(ArrayList<Pai> list) {
    int max = 0;
    for (int i = 0; i < list.size(); i++) {
        int num = 0;
        for (int j = 0; j < list.size(); j++) {
            if (list.get(i).getId() == list.get(j).getId()) {
                num++;
            }
        }
        max = max >= num ? max : num;
    }
    return max;
}
   public static boolean chuPai(ArrayList<Pai> list) {
        switch (list.size()) {
            case 1:
                return true;
            case 2:
                if (list.get(0).getId() == list.get(1).getId()) {
                    return true;
                } else if (list.get(0).getId() + list.get(1).getId() == 70) {
                    return true;
                } else {
                    return false;
                }
            case 3:
                if (sameNum(list)==3) {
                    return true;
                } else return false;
            case 4:
                if (sameNum(list) == 4 || sameNum(list) == 3) {
                    return true;
                } else
                    return false;
            case 5:
                if (sameNum(list) == 1 && (max(list) - min(list) == list.size() - 1)) {
                    return true;
                } else if (sameNum(list) == 3) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) < 2) {
                            return false;
                        }
                    }
                    return true;
                }
            case 6:
                if (sameNum(list) == 1 && (max(list) - min(list) == list.size() - 1)) {
                    return true;
                } else if (sameNum(list) == 4) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 2) {
                            return false;
                        }
                    }
                    return true;
                } else if (sameNum(list) == 2 && (max(list) - min(list)) * 2 + 2 == list.size() && max(list) != 15) {
                    return true;
                } else
                    return false;
            case 8:
                if (sameNum(list) == 1 && (max(list) - min(list) == list.size() - 1)) {
                    return true;
                } else if (sameNum(list) == 4) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 2) {
                            return true;
                        }
                    }
                    return false;
                } else if (sameNum(list)==2 && (max(list) - min(list)) * 2 + 2 == list.size() && max(list) != 15) {
                    return true;
                } else if (sameNum(list) == 3 && noSameNum(list) == 4 &&
                        (whichNumSame(list, 3).get(1) - whichNumSame(list, 3).get(0) == 1) && max(list) != 15) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 2) {
                            return false;
                        }
                    }
                    return true;
                } else if (sameNum(list) == 3 && noSameNum(list) == 3 &&
                        (whichNumSame(list, 3).get(1) - whichNumSame(list, 3).get(0) == 1) && max(list) != 15) {
                    return true;
                } else return false;

            default:
                if (sameNum(list) == 1 && (max(list) - min(list) == list.size() - 1) && max(list) < 15) {
                    return true;
                } else if (list.size() % 2 == 0&&sameNum(list)==2 && (max(list) - min(list)) * 2 + 2 == list.size() && max(list) != 15) {

                    return true;
                } else if (list.size() == 10 && sameNum(list) == 3 && noSameNum(list) == 4 &&
                        (whichNumSame(list, 3).get(1) - whichNumSame(list, 3).get(0) == 1) && max(list) != 15) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 1) {
                            return false;
                        }
                    }
                    return true;
                } else if (list.size() == 12 && sameNum(list) == 3 && noSameNum(list) == 6 &&
                        (whichNumSame(list, 3).get(2) - whichNumSame(list, 3).get(0) == 2) && max(list) != 15) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 2) {
                            return false;
                        }
                    }
                    return true;
                } else if (list.size() == 15 && sameNum(list) == 3 && noSameNum(list) == 6 &&
                        (whichNumSame(list, 3).get(2) - whichNumSame(list, 3).get(0) == 2) && max(list) != 15) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 1) {
                            return false;
                        }
                    }
                    return true;
                } else if (list.size() == 16 && sameNum(list) == 3 && noSameNum(list) == 8 &&
                        (whichNumSame(list, 3).get(2) - whichNumSame(list, 3).get(0) == 2) && max(list) != 15) {
                    for (int i = 0; i < list.size(); i++) {
                        if (theSameNum(list, list.get(i).getNum()) == 1) {
                            return false;
                        }
                    }
                    return true;
                }
                return false;
        }
    }
public static int max(ArrayList<Pai> list) {
    int max = 0;
    for (int i = 0; i < list.size(); i++) {
        max = max >= list.get(i).getId() ? max : list.get(i).getId();
    }
    return max;
}
public static int min(ArrayList<Pai> list) {
    int min = list.get(0).getId();
    for (int i = 0; i < list.size(); i++) {
        min = min <= list.get(i).getId() ? min : list.get(i).getId();
    }
    return min;
}
public static int theSameNum(ArrayList<Pai> list, String a) {
    int num = 0;
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i).getNum().equals(a)) {
            num++;
        }
    }
    return num;
}
 public static Pai throwcard(ArrayList<Pai> list, String a) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getNum().equals(a)) {
                return list.get(i);
            }
        }
        System.out.println("您手中没有" + a );
        return null;
    }
   public static boolean daNi(ArrayList<Pai> list, ArrayList<Pai> list1) {
        if ((list.size() >= 2 && list.get(0).getId() + list.get(1).getId() == 70) || list1.size() == 0)
            return true;
        if (list1.size() == 2 && list1.get(0).getId() + list1.get(1).getId() == 70)
            return false;
        if (list.size() == list1.size()) {
            switch (list1.size()) {
                case 1:
                    return max(list) > max(list1);
                case 2:
                    return max(list) > max(list1);
                case 3:
                    return max(list) > max(list1);
                case 4:
                    if (sameNum(list) == 4 && sameNum(list1) == 4 && max(list) > max(list1)) {
                        return true;
                    } else if (sameNum(list) == 4) {
                        return true;
                    } else if (sameNum(list) == 3 && sameNum(list1) == 3) {
                        return (list.get(0).getId() == list.get(1).getId() ?
                                list.get(0).getId() : list.get(2).getId()) >
                                (list1.get(0).getId() == list1.get(1).getId() ?
                                        list1.get(0).getId() : list1.get(2).getId());
                    }
                    return false;
                case 5:
                    if (sameNum(list) == sameNum(list1) && sameNum(list) == 1) {
                        return max(list) > max(list1);
                    } else {
                        return (theSameNum(list, idtoNum(list, max(list))) == 3 ? max(list) : min(list))
                                > (theSameNum(list1, idtoNum(list1, max(list1))) == 3 ? max(list1) : min(list1));
                    }
                case 6:
                    if (sameNum(list) == sameNum(list1) && sameNum(list) == 1) {
                        return max(list) > max(list1);
                    } else if (sameNum(list) == sameNum(list1) && sameNum(list) == 2) {
                        return max(list) > max(list1);
                    } else {
                        return (theSameNum(list, idtoNum(list, max(list))) == 4 ? max(list) : min(list))
                                > (theSameNum(list1, idtoNum(list1, max(list1))) == 4 ? max(list1) : min(list1));
                    }
                default:
                    if (sameNum(list) == sameNum(list1) && sameNum(list) == 1) {
                        return max(list) > max(list1);
                    } else if (sameNum(list) == sameNum(list1) && sameNum(list) == 2) {
                        return max(list) > max(list1);
                    } else if (sameNum(list) == sameNum(list1) && sameNum(list) == 3) {
                        return whichNumSame(list, 3).get(0) > whichNumSame(list1, 3).get(1);
                    } else if (list.size() == 10 && sameNum(list) == 3) {
                        return whichNumSame(list, 3).get(0) > whichNumSame(list1, 3).get(1);
                    } else if (list.size() == 12 && sameNum(list) == 3) {
                        return whichNumSame(list, 3).get(0) > whichNumSame(list1, 3).get(2);
                    } else if (list.size() == 15 && sameNum(list) == 3) {
                        return whichNumSame(list, 3).get(0) > whichNumSame(list1, 3).get(3);
                    } else if (list.size() == 16 && sameNum(list) == 3) {
                        return whichNumSame(list, 3).get(0) > whichNumSame(list1, 3).get(3);
                    } else return false;
            }

        } else {
            if (list.size() == 4 && sameNum(list) == 4) {
                return true;
            } else if (list1.size() == 4 && sameNum(list1) == 4) {
                return false;
            } else
                return false;
        }
    }
   public static boolean isTrue(ArrayList<Pai> list, String a) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getNum().equals(a)) {
                return true;
            }
        }
        return false;
    }
   public static String idtoNum(ArrayList<Pai> list, int id) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getId() == id) {
                return list.get(i).getNum();
            }
        }
        return "";
    }
  public static int noSameNum(ArrayList<Pai> list) {
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < list.size(); i++) {
            set.add(list.get(i).getId());
        }
        return set.size();
    }
public static ArrayList<Integer> whichNumSame(ArrayList<Pai> list, int a) {
    ArrayList<Integer> li = new ArrayList<>();
    for (int i = 0; i < list.size(); i++) {
        if (theSameNum(list, list.get(i).getNum()) == a && !li.contains(list.get(i).getId())) {
            li.add(list.get(i).getId());
        }
    }
    return li;
}

实体类

public class Pai  implements Comparable<Pai>{
    private String name ;
    private String num ;
    private int id ;

    public Pai(String name, String num, int id) {
        this.name = name;
        this.num = num;
        this.id = id;
    }

    public Pai() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return name+num;
    }


    @Override
    public int compareTo(Pai o) {
        return this.getId()-o.getId();
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页