기금넷 공식사이트 - 복권 조회 - 파이썬을 사용하여 포커와 주사위 프로그램을 작성하는 방법, 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))