파 이 썬 을 바탕 으로 카드 를 만 드 는 과정 에 대한 상세 한 설명

정 리 를 통 해 본 고 를 통 해 여러분 에 게 공유 하 겠 습 니 다.이 사례 는 Python 류 속성 을 통 해 대왕,왕 군 을 제외 한 52 장의 카드 를 만 들 고 랜 덤 으로 카드 를 뽑 거나 정렬,카드 를 섞 는 등 기능 을 실현 하 는 것 입 니 다.
카드 클래스 만 들 기
한 벌 의 카드 는 대왕 소 왕 을 제외 하고 나머지 52 장의 카드 는 무늬 와 색깔 을 기준 으로(매화,사각형,스페이드,하트)4 조로 나 눌 수 있 고 각 조 는 13 장의 카드 로 구성 된다.따라서 두 개의 목록 을 만 들 수 있 습 니 다.하 나 는 꽃 색 을 저장 하고 하 나 는 13 개의 문 자 를 저장 할 수 있 습 니 다.두 목록 사이 의 무 작위 조합 을 통 해 52 장의 카드 를 만 들 고,
코드 는 다음 과 같 습 니 다:

코드 에 서 는 collections.namedtuple 모듈 을 통 해 하나의 종 류 를 만들어 서 카드 를 표시 합 니 다.['rank','suit']는 각각 카드 의 문자(2-10,J-A)와 무늬 를 표시 합 니 다.
FranchDeck 류 는 52 장의 카드 를 만 듭 니 다.그 중에서 두 가지 특수 한 방법 이 있 습 니 다.len()은 카드 수량 을 되 돌려 줍 니 다.getitem__() position(색인)에서 지정 한 카드 가 져 오기

무 작위 로 카드 한 장 을 뽑다
여기 서 random 모듈 을 빌려 무 작위 로 카드 를 뽑 는 기능 을 실현 합 니 다.

목록 교체,절편
왜냐하면getitem__ 방법[]조작 을 self.cards 목록 은 위 에서 언급 한 index 포 지 셔 닝 을 제외 하고 FranckDeck()류 는 절편,교체 작업 도 실현 할 수 있 습 니 다.

정렬 조작
일반적으로 포인트 에 따라 카드 의 크기 를 판단 하면 2 가 가장 작고 A 가 가장 크다.포인트 정렬 을 실현 하 는 것 은 비교적 간단 합 니 다.포인트 목록 을 만 들 때 위 에서 언급 한 순서 로 만 듭 니 다.정렬 할 때 포인트 가 있 는 index 를 기준 으로 정렬 하면 됩 니 다.
포 인 트 를 제외 하고 또 하나의 화색 도 고려 해 야 한다.화색 에 대해 서 는 맵 기준(가중치 라 고도 할 수 있다)을 구축 하고 서로 다른 화색 에 서로 다른 값 을 부여 해 야 한다.Python 의 사전 유형 은 우리 의 수 요 를 만족 시 킬 수 있 습 니 다.

코드 판독:
1.코드 에서 사전 을 이용 하여 매 핑 체 제 를 추 가 했 는데 검 은 복숭아 는 3 이 고 홍 심 은 2 이 며 사각형 은 그 다음 에 매화 이다.2,spades 생 성high 함수 로 각 카드 의 가중치 총액 을 계산 합 니 다.3,sorted()함수 key=spades 이용하 이 는 정렬 기준 으로 포커 정렬 을 실현 합 니 다.
카드 세탁 조작
카드 를 섞 는 것 은 쉽게 말 하면 카드 한 벌 에 대해 불규칙 적 으로 정렬 하 는 것 이다.정상 적 인 상황 random.shuffle 은 이 기능 을 매우 효과적으로 실현 할 수 있 지만 전 제 는 대상 이 가 변 협 의 를 만족 시 켜 야 한다.여기 서 FranchDeck()는 만족 하지 않 고 직접 사용 하면 잘못 보고 할 수 있다.

위의 문제 에 대해 서 는 변 하지 않 는 것 에서 가 변 적 인 것 으로 바 꾸 기만 하면 됩 니 다.함수 할당 을 로 만 듭 니 다.setitem__ 속성

여기 서 앞 뒤 카드 를 흐 트 러 뜨리 는 앞의 5 가지 요 소 를 추출 하여 카드 를 섞 는 기능 을 실현 하 였 습 니 다!
이상 의 코드 부분 에 따라 더욱 개발 하여 54 장의 카드 의 시각 화 된 그림 을 미리 디자인 할 수 있 습 니 다.

키:value 맵 관 계 를 만 듭 니 다.카드 문자 와 시각 화 된 그림 사이 에 맵 관 계 를 만 듭 니 다.다음 그림 과 같이 이 관계 집합 을 지정 한 데이터베이스 나 파일 에 저장 하고 나중에 사용 하면 직접 호출 할 수 있 습 니 다.

위의 진급 게임 방법 에 따라 Python 기반 카드 개발 애플 릿 을 만 들 수 있 습 니 다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기