sergicalsix's picture
Upload folder using huggingface_hub
1839603 verified
import gradio as gr
yaku_list = [
"立直", "門前清自摸和", "一発", "ドラ",
"海底撈月", "河底撈魚", "嶺上開花", "槍槓",
"ダブル立直", "七対子", "混全帯幺九", "一気通貫",
"三色同順", "三色同刻", "三槓子", "対々和",
"三暗刻", "小三元", "混老頭", "二盃口",
"純全帯幺九", "混一色", "清一色", "国士無双",
"大三元", "四暗刻", "小四喜",
"大四喜", "字一色", "緑一色", "清老頭",
"九蓮宝燈", "四槓子", "天和",
"地和",
]
yaku_hand = {
"立直":1, "門前清自摸和":1, "一発":1, "ドラ":1,
"海底撈月":1, "河底撈魚":1, "嶺上開花":1, "槍槓":1,
"ダブル立直":2, "七対子":1.5, "混全帯幺九":2, "一気通貫":2,
"三色同順":2, "三色同刻":2, "三槓子":2, "対々和":2,
"三暗刻":2, "小三元":2, "混老頭":2, "二盃口":3,
"純全帯幺九":3, "混一色":3, "清一色":6, "国士無双":13,
"大三元":13, "四暗刻":13, "小四喜":13,
"大四喜":13, "字一色":13, "緑一色":13, "清老頭":13,
"九蓮宝燈":13, "四槓子":13, "天和":13,
"地和":13,
}
parent_ron_points = {1:2000, 1.5:2400, 2:3900, 2.5:4800,3:7700, 3.5:9600,4:12000,5:12000,6:18000,7:18000,8:24000,9:24000,10:36000,11:36000,12:36000,13:48000}
children_ron_points = {1:1000, 2:2000, 3:3900, 4:8000,5:8000,6:12000,7:12000,8:16000,9:16000,10:24000,11:24000,12:24000,13:32000}
def calculate_score(selected_yaku):
hand = 0
for yaku in selected_yaku:
# 各役の翻数を加算
hand += yaku_hand[yaku]
if hand > 13:
hand = 13
# 少数点以下切り捨て
elif hand > 4:
hand = int(hand)
return hand, parent_ron_points[hand], children_ron_points[hand]
def mahjong_score_interface(selected_yaku):
hand, parent_ron_score, children_ron_score = calculate_score(selected_yaku)
return f"""
選択された役: {selected_yaku}
翻数: {hand}
親(ロン): {parent_ron_score}
子(ロン): {children_ron_score}
(役満以上は全て13翻、七対子は1.5翻とした。)
"""
yaku_checkboxes = [gr.Checkbox(label=yaku) for yaku in yaku_list]
interface = gr.Interface(
fn=mahjong_score_interface,
inputs=[gr.components.CheckboxGroup(choices=yaku_list, label="役を選択")],
outputs="text",
title="簡易版麻雀点数計算アプリ"
)
interface.launch(share=True)