Ein weiteres Beispiel für die Antwort auf die Referenzfrage (http://qiita.com/items/cbc3af152ee3f50a822f) der Studiensitzung (http://atnd.org/events/30285), die am 6. Juli (Freitag) stattfinden soll. Ich habe beschlossen, in einer Sprache zu schreiben, die noch nicht herausgekommen ist, also Python.
poka.py
# -*- coding: utf-8 -*-
import re
Q=[ "DASAD10CAHA", "S10HJDJCJSJ",
"S10HAD10DAC10", "HJDJC3SJS3",
"S3S4H3D3DA", "S2HADKCKSK",
"SASJDACJS10", "S2S10H10HKD2",
"CKH10D10H3HJ", "C3D3S10SKS2",
"S3SJDAC10SQ", "C3C9SAS10D2"]
def hand_name( d ):
if d==[1,4]: return '4K'
if d==[2,3]: return 'FH'
if d==[1,1,3]: return '3K'
if d==[1,2,2]: return '2P'
if d==[1,1,1,2]: return '1P'
return '--'
def rank_dist( ranks ):
map={}
for r in ranks:
if r in map:
map[r]+=1
else:
map[r]=1
dist = map.values()
dist.sort()
return dist
p = re.compile( r"[SHDC]([JQKA\d]+)"*5)
for q in Q:
mo=p.match( q )
ranks=sorted( [ mo.group( x+1 ) for x in range(5) ] )
dist=rank_dist( ranks )
print hand_name( dist )
Ich habe fast keine Erfahrung mit Python, daher denke ich, dass ich wahrscheinlich viel besser schreiben kann. Insbesondere die Funktion rank_dist fühlt sich sehr dumm an.
Es war so frisch, dass ich eine Rückmeldung schreiben musste und ich frage mich, ob ich die Klammern weglassen könnte.
Die Notation der Listeneinbeziehung ist der beste Teil, daher muss ich sie verwenden.
Recommended Posts