Maison  >  Article  >  Java  >  Comment implémenter le système de mélange et de distribution des cartes du jeu Doudizhu en Java

Comment implémenter le système de mélange et de distribution des cartes du jeu Doudizhu en Java

PHPz
PHPzavant
2023-04-24 15:55:07975parcourir

    1. Landlord Fight

    1. Introduction

    Je crois que tous les étudiants qui ont regardé "God of Gamblers" savent qu'il contient un pouvoir magique similaire à la magie.

    C'est vrai ! La chose magique dont nous allons parler aujourd'hui est : la fonction spéciale (pas ????)

    C'est : le système de mélange et de distribution de cartes du propriétaire ! ! !

    2. Introduction

    Je pense que beaucoup de gens peuvent jouer au jeu de poker classique "Dudi Zhu". Cette fois, j'utiliserai le langage Java pour écrire un programme de mélange et de distribution de cartes pour Dou Landlord, qui nécessite le mélange et la distribution des cartes. être complété selon les règles du processus du propriétaire Dou.

    Un jeu de cartes à jouer contient un total de 54 cartes. Les cartes sont composées de couleurs et de chiffres ou de lettres : ♠, ♣, ♦ et ♥, qui représentent respectivement les piques, les trèfles, les diamants et les cœurs. . ♛ représente le roi ♝ signifie Xiao Wang.

    Il y a trois joueurs qui participent au jeu du propriétaire. Tout d'abord, l'ordre des 54 cartes est mélangé. Ensuite, chaque personne tire à tour de rôle une carte. Les trois cartes restantes sont réservées comme cartes fermées. joueurs et les trois cartes sont imprimées sur la console. Un atout.

    3. Illustration

    Comment implémenter le système de mélange et de distribution des cartes du jeu Doudizhu en Java

    2. Préparez les cartes

    Les codes suivants sont tous écrits dans la méthode main ! ! ! main方法中编写!!!

    1.代码示例

    //准备牌
            HashMap<Integer,String> map=new HashMap<>();
            ArrayList<Integer> list=new ArrayList<>();
            map.put(1,"大王");
            map.put(2,"小王");
            list.add(1);
            list.add(2);
    
            String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
            String[] colors={"♠","♥","♦","♣"};
    
            int index=3;
            for (String number : numbers) {
                for (String color : colors) {
                    map.put(index,number + color);
                    list.add(index);
                    index++;
                }
            }

    注:此处代码编写要导入两个包:

    import java.util.HashMap;

    import java.util.ArrayList;

    2.数据展示

    使用System.out.println(map);System.out.println(list);语句展示数据如下:

    {1=大王, 2=小王, 3=2♠, 4=2♥, 5=2♦, 6=2♣, 7=A♠, 8=A♥, 9=A♦, 10=A♣, 11=K♠, 12=K♥, 13=K♦, 14=K♣, 15=Q♠, 16=Q♥, 17=Q♦, 18=Q♣, 19=J♠, 20=J♥, 21=J♦, 22=J♣, 23=10♠, 24=10♥, 25=10♦, 26=10♣, 27=9♠, 28=9♥, 29=9♦, 30=9♣, 31=8♠, 32=8♥, 33=8♦, 34=8♣, 35=7♠, 36=7♥, 37=7♦, 38=7♣, 39=6♠, 40=6♥, 41=6♦, 42=6♣, 43=5♠, 44=5♥, 45=5♦, 46=5♣, 47=4♠, 48=4♥, 49=4♦, 50=4♣, 51=3♠, 52=3♥, 53=3♦, 54=3♣}
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54]

    三、洗发牌与排序

    代码示例

    	//洗牌
    	Collections.shuffle(list);
    	
    	//发牌
    	ArrayList<Integer> diPai=new ArrayList<>();
    	ArrayList<Integer> player1=new ArrayList<>();
    	ArrayList<Integer> player2=new ArrayList<>();
    	ArrayList<Integer> player3=new ArrayList<>();
    	
    	for (int i = 0; i < list.size(); i++) {
    	    if(i>=51){
    	        diPai.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));
    	    }
    	}
    	//排序
        Collections.sort(diPai);
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);

    注:此处代码编写要导入一个包:

    import java.util.Collections;

    四、看牌(打印到控制台)

    1.代码示例

    //看牌
        look("周润发",player1,map);
        look("刘德华",player1,map);
        look("周星驰",player1,map);
        look("底牌",diPai,map);

    其中,要创建一个 look

    1. Exemple de code

      private static void look(String name, ArrayList<Integer> list, HashMap<Integer, String> map) {
            System.out.println(name+":");
            for (Integer number : list) {
                System.out.print(map.get(number)+" ");
            }
            System.out.println();
        }

    Remarque : L'écriture du code ici nécessite l'importation de deux packages :

    import java.util.HashMap;

    import java.util.ArrayList;<br><br>2. Affichage des données<br><br>Utilisez les instructions <code>System.out.println(map); et System.out.println(list); pour afficher les données comme suit. :

    {1=大王, 2=小王, 3=2♠, 4=2♥, 5=2♦, 6=2♣, 7=A♠, 8=A♥, 9=A♦, 10 = A♣, 11=K♠, 12=K♥, 13=K♦, 14=K♣, 15=Q♠, 16=Q♥, 17=Q♦, 18=Q♣, 19=J♠, 20 = J♥, 21=J♦, 22=J♣, 23=10♠, 24=10♥, 25=10♦, 26=10♣, 27=9♠, 28=9♥, 29=9♦, 30 = 9♣, 31=8♠, 32=8♥, 33=8♦, 34=8♣, 35=7♠, 36=7♥, 37=7♦, 38=7♣, 39=6♠, 40 = 6♥, 41=6♦, 42=6♣, 43=5♠, 44=5♥, 45=5♦, 46=5♣, 47=4♠, 48=4♥, 49=4♦, 50 = 4♣, 51=3♠, 52=3♥, 53=3♦, 54=3♣}🎜[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 , 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 , 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54]🎜🎜🎜3. Cartes de shampooing et tri🎜🎜Exemple de code🎜rrreee🎜 Remarque : Le code ici doit importer un package : 🎜🎜import java.util.Collections;🎜🎜4 Vérifiez les cartes (imprimez sur la console) 🎜🎜1. Exemple de code 🎜rrreee🎜Parmi. eux, Pour créer une méthode look : 🎜rrreee🎜2. Show 🎜🎜🎜Chow Yun-fat : 🎜A♣ K♣ Q♥ Q♣ J♠ J♦ J♣ 10♥ 10♦ 10♣ 9♠ 6♠ 6 ♦ 5♦ 4♦ 3♠ 3♦ 🎜Andy Lau : 🎜A♣ K♣ Q♥ Q♣ J♠ J♦ J♣ 10♥ 10♦ 10♣ 9♠ 6♠ 6♦ 5♦ 4♦ 3 ♠ 3♦ 🎜Stephen Chow : 🎜A♣ K♣ Q♥ Q♣ J♠ J♦ J♣ 10♥ 10♦ 10♣ 9♠ 6♠ 6♦ 5♦ 4♦ 3♠ 3♦ 🎜Carte d'hôte : 🎜2 ♥ Un ♠ 7♠🎜🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer