자바 코드 로 카드 발급 기능 구현

오늘 오후 자바 코드 로 카드 를 보 내 는 기능 을 찾 아 자신의 생각 을 기록 했다.이 문 제 는 두 가지 방법 으로 실현 할 수 있다. 첫 번 째 방법 은 Map 과 List 라 는 두 가지 집합 으로 이 루어 진다. 사고방식 은 다음 과 같다. 한 쌍 의 지주 의 패 는 보통 54 장의 패 중 4 개의 화색 이 있다.1 - 54 의 번호;2 - 10 의 디지털 카드, A, J, Q, K 네 개의 알파벳 왕, 왕 군 ①. 맵 집합 으로 꽃 색 과 A 에서 K (2 - 10 포함) 를 저장 하 는 조합 을 만 듭 니 다.예:♠1。 ②. list 집합 저장 1 - 54 번 호 를 만 듭 니 다.③. 두 개의 배열 을 만들어 4 가지 색상, A 에서 K 의 값 을 저장 합 니 다.④. 대응 하 는 집합 에 값 을 넣 고 ⑤. 위 에서 실 행 된 후에 도 대왕 과 왕 군 이라는 두 장의 카드 가 부족 하 다. 그들 을 map 배열 에 단독으로 추가 하 는 ⑥. 현재 맵 집합 과 완전한 카드 이다.⑦. 이 카드 를 어 지 럽 히 고 사용 Collections.shuffle(); ⑨. 빈 List 집합 3 개 를 만 드 는 것 은 세 인물 에 해당 합 니 다.⑨. 그 다음 에 통과 해서 1 부터 10 까지 남 은 것 을 발견 하면 모두 0, 1, 2 를 얻 을 수 있 습 니 다. 1 부터 54 까지 3 명 에 게 나 누 어 주면 남 은 것 은 모두 0, 1, 2 라 는 세 개의 수 이기 때문에 순환 하기 전에 세 개의 수 를 베이스 로 합 니 다.3 에서 53 까지 각각 나머지 와 3 이 0 인 상자 중의 이것 을 한 사람 에 게 나 누 어 준다.1 과 같은 것 을 한 사람 에 게 나 누 어 주다.2 와 같은 것 은 한 사람 에 게 나 누 어 주 고 여기 서 카드 를 보 내 는 것 이 끝 납 니 다.참고 할 수 있 도록 코드 를 첨부 합 니 다.
import java.util.*;

public class Demo {
     
    /**
     * 1.          
     *        : 54  4    J,Q,K,A 2....8;
     *       1. map      A...K
     *
     *         2.    list   1 54   
     *
     *         3.  2      4    A K
     *
     *         4.         map list
     *
     * @param args
     */
    public static void main(String[] args) {
     
        Map<Integer,String> map=new HashMap<>();

        List<Integer> list=new ArrayList<>();

        String [] color={
     "♠","♥","♦","♣"};
        String[] Num={
     "A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        int index=0;
        for (String num:Num) {
     
            for (String colors:color) {
     
                map.put(index,colors+num);
                list.add(index);
                index++;
            }
        }
        //       
        list.add(52);
        list.add(53);
        map.put(52,"  ");
        map.put(53,"  ");
        //    
        Collections.shuffle(list);

        List<Integer> p1=new ArrayList<>();
        List<Integer> p2=new ArrayList<>();
        List<Integer> p3=new ArrayList<>();
        List<Integer> p4=new ArrayList<>();


        //  
        for (int i = 0; i <list.size() ; i++) {
     
            if(i<3){
     
                p4.add(i);
            }else if (i%3==0){
     //0
                p1.add(i);
            }else if (i%3==1){
     
                p2.add(i);
            }else {
     
                p3.add(i);
            }

        }

        Collections.sort(p1);
        Collections.sort(p2);
        Collections.sort(p3);
        Collections.sort(p4);

        //     
        show("  ",p1,map);
        show("  ",p2,map);
        show("   ",p3,map);
        show("  ",p4,map);

    }

    private static void show(String name, List<Integer> arrayList, Map<Integer, String> map) {
     
        System.out.print(name+": ");

        for (int i = 0; i <arrayList.size() ; i++) {
     
            System.out.print(map.get(arrayList.get(i))+"");
        }
        System.out.println();
    }
}

두 번 째 방법: List 집합 으로 아 이 디 어 를 다음 과 같이 실현 합 니 다. ①. list 류 를 만들어 꽃 색 을 저장 합 니 다 ②. list 류 를 만들어 K 에 저장 합 니 다 (2 - 10)③. 그리고 상자 하 나 를 만들어 A 부터 K 까지 모두 ④ 를 조합 합 니 다. 그리고 list 상자 의 순 서 를 흐 트 러 뜨 려 앞의 세 자리 의 밑 판 ⑤ 를 꺼 냅 니 다. 그리고 1 부터 10 까지 나머지 를 찾 은 결과 모두 0, 1, 2, 1 부터 54 까지 세 사람 에 게 나 누 어 주면 나머지 는 0, 1, 2 이 세 개 이기 때문에 3 에서 53 까지 각각 나머지 와 3 이 0 인 상자 중 하 나 를 나 누 어 줍 니 다.1 과 같은 것 을 한 사람 에 게 나 누 어 주다.2 와 같은 것 은 한 사람 에 게 나 누 어 주 고 여기 서 카드 를 보 내 는 것 이 끝 납 니 다.참고 할 수 있 도록 코드 를 첨부 합 니 다.
package cn.cx.arry;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ListDemo {
     
    /*
        1.          
     *        : 54  4    J,Q,K,A 2....8;
     *       1. map      A...K
     *
     *         2.    list   1 54   
     *
     *         3.  2      4    A K
     *
     *         4.         map list

            color     
            Number   2-10
            AJQK     
            Num   1-54   

                list     
                list   A K   (2-10)
                        A K    
                list              
               1 10        0,1,2
             1 54  3          0,1,2    
                   3 53     3   0           ;  1     ;  2     

     */

    public static void main(String[] args) {
     
        List<String> zong=new ArrayList<>();
        List<String> color=new ArrayList<>();
        List<Integer> pid=new ArrayList<>();
        List<String> arrayList=new ArrayList<>();

        color.add("♠");
        color.add("♦");
        color.add("♣");
        color.add("♥");

        List<String> Number=new ArrayList<>();
        for (int i = 2; i <11 ; i++) {
     
            Number.add(i+"");
        }
        Number.add("J");
        Number.add("Q");
        Number.add("K");
        Number.add("A");
        int count=0;

        for (String in:color) {
     
            for (String str:Number) {
     
                zong.add(in+str);
            }
        }

        //     
        zong.add("  ");
        zong.add("  ");
        Collections.shuffle(zong);
        List<String> p1=new ArrayList<>();
        List<String> p2=new ArrayList<>();
        List<String> p3=new ArrayList<>();
        List<String> p4=new ArrayList<>();

        //  
        for (int i = 0; i <zong.size() ; i++) {
     
            String card=zong.get(i);
            if(i<3){
     
                p4.add(card);
            }else if (i%3==0){
     //0
                p1.add(card);
            }else if (i%3==1){
     
                p2.add(card);
            }else {
     
                p3.add(card);
            }

        }
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
        System.out.println(p4);
         }

   ``

#     
##     
###     

좋은 웹페이지 즐겨찾기