기금넷 공식사이트 - 복권 조회 - 파이썬을 사용하여 포커와 주사위 프로그램을 작성하는 방법, 5 개의 주사위 스크롤을 시뮬레이션하는 방법, 최대 3 회, 구체적인 요구 사항은 다음과 같습니다.
파이썬을 사용하여 포커와 주사위 프로그램을 작성하는 방법, 5 개의 주사위 스크롤을 시뮬레이션하는 방법, 최대 3 회, 구체적인 요구 사항은 다음과 같습니다.
게임 플레이에 문제가 있을 수 있습니다. 주로 카드를 예약할 때 Ace 를 입력하는 것과 "Ace" 를 입력하는 것의 차이점을 알 수 없습니다. Ace 를 한 번에 입력해서 모든 Ace 를 보존할지 아니면 ACE 를 하나만 보존할지 여부입니다. 이것은 분명하지 않다. 예를 들어, 두 가지 용법이 모두 있는데, 나는 입력에 따라 몇 개를 보류했다.
시뮬레이션은 문제없습니다. 그림의 결과와 똑같습니다.
파이썬 3 을 사용해야 합니다.
수입? 마음대로
수입? 수집
_dice_type? =? "'에이스',? 왕',? 여왕? 잭? 10',? 9']
_ 손 그리기? =? 소장하다. Ordered direct([
('‘5 kind',' 5? 의? 대답? 착함'),
('‘4 kind',' 4? 의? 대답? 착함'),
('전체',? 꽉 찼어? 집'),
('직선',? 직남),
('‘3 kind',' 3? 의? 대답? 착함'),
('‘2 pair',' 2? 네'),
('1pair',' 1? 네'),
('흉상',? 흉상'),
]) 을 참조하십시오
Def? _check_hand (주사위):
카운터? =? 소장하다. 카운터 (주사위)
만약? Len (카운터)? = =? 1:
반환? 5 분
Sorted5? =? Counter.most_common(5)
만약? Sorted5[0][ 1]? = =? 4:
반환? 4kind
만약? Sorted5[0][ 1]? = =? 3:
만약? Sorted5[ 1][ 1]? = =? 2:
반환? 꽉 차있다'
그렇지 않은 경우:
반환? 3kind
만약? Sorted5[0][ 1]? = =? 2:
만약? Sorted5[ 1][ 1]? = =? 2:
반환? 2 쌍
그렇지 않은 경우:
반환? 1 쌍'
만약? Len (카운터)? = =? 5:
Dtype? =? 정렬됨 5[0][0]
뭐 때문에? X? 네? 정렬 5:
만약? Dtype? ! =? X[0]:
파열
Dtype? +=? 1
그렇지 않은 경우:
반환? 곧다
반환? 흉상
Def? 재생 ():
주사위? =? []
다시 시도하시겠습니까? =? 0
언제? 진실:
유지? =? 5? -응? 린 (주사위)
만약? 유지? & lt=? 0:
파열
Dices.extend ([random.randint (0,5)? 뭐 때문에? X? 네? 범위 (유지)])
Print("The? 꺼져? 바로:? {} ".형식 (
"?" 。 진 ([_ dice _ type [d]? 뭐 때문에? D? 네? 정렬됨 (주사위)])
)) 을 참조하십시오
Print ("그것? 그래요? 대답? {} ".형식 (_hand_mapping[_check_hand (주사위)])
만약? 다시 시도하시겠습니까? & gt? 1:
파열
힌트? =? \ "어느? 주사위? 뭐해? 당신은요? 원하시나요? 어디 가? 유지? 뭐 때문에? 저거요? {}? 꺼져? " 。 형식 (
두 번째? 만약? 다시 시도하시겠습니까? = =? 0? 그렇지 않으면요? "세 번째"
) 을 참조하십시오
언제? 진실:
대답? =? 입력 (프롬프트). 아래쪽 ()
만약? 대답? = =? 모두':
파열
대답? =? [x. capital ()? 뭐 때문에? X? 네? Answer.split()]
만약? 설정 (대답). Issubset(set(_dice_type)):
파열
인쇄 ("그거? 그래요? 그렇지 않나요? 가능할까요? 해봐? 또 왔구나! " ) 을 참조하십시오
다시 시도하시겠습니까? +=? 1
만약? 대답? = =? 모두':
인쇄 ("좋아,? 완료) 를 참조하십시오
파열
Tmp? =? 주사위
주사위? =? []
뭐 때문에? X? 네? Tmp:
만약? _dice_type[x]? 네? 대답:
주사위. 추가 (x)
Answer.remove(_dice_type[x])
Def? 시뮬레이션 (n,? Debug=False):
결과? =? Dict.fromkeys (_ hand _ mapping.keys (),? 0)
뭐 때문에? _? 네? 범위 (n):
주사위? =? [random.randint(0, 5)? 뭐 때문에? X? 네? 범위 (5)]
만약? 디버그:
Print("DEBUG: ",? "?" 。 진 ([_ dice _ type [d]? 뭐 때문에? D? 네? 정렬됨 (주사위)])
결과 [_check_hand (주사위)]? +=? 1
뭐 때문에? K,? V? 네? _hand_mapping.items ():
Cnt? =? 결과 [k]
인쇄 ("{:< 16s}:? {:.2f}% "입니다. 형식 (v,? 100 * 개수 /n))