# -*- coding: utf-8 -*-
"""
接待ジャンケンと勝敗表示（プログラム）
"""
# これは，難易度２を達成するプログラムのソースコードです．


import random


def main():
    # ジャンケンの手を予めlistで用意するとスッキリ
    HAND_STR_JP = ["グー", "チー", "パー"]
    # ついでに勝敗の表示文字列もlistで用意
    DWL_STR_JP  = ["あいこです", "あなたの勝ちです", "あなたの負けです"]
    dwl_usr_num = [0, 0, 0]  # あいこ，勝ち，負け，の記録用
    hand_dif    = 1  # 手の差（あいこ判定にも利用）

    while True:
        # あいこの際は掛け声が変わる（Trueなら1，Falseなら0）
        print(("どの手を出しますか", "あいこで")[hand_dif == 0])
        # 入力された整数がHAND_STRのインデックスに対応するよう調整
        hand_usr = int(input("グー(1)、チー(2)、パー(3)、おわり(0)：")) - 1
        print()  # 採点の都合上の空行

        # 入力された整数が0以下なら終了，2より大きいなら再入力
        if hand_usr < 0:
            break
        elif hand_usr > 2:
            continue

        # あいこの際は掛け声が変わる（Trueなら1，Falseなら0）
        print(("ジャンケン", "しょ")[hand_dif == 0])

        # 乱数を用いて「勝ち負け＝数値化した手の差」を決定
        win_lose = random.random()
        if   win_lose < 0.5:
            hand_dif = 1
        elif win_lose < 0.75:
            hand_dif = 2
        else:
            hand_dif = 0

        # 「ＣＰＵの手」は和の剰余で算出
        hand_cpu = (hand_usr + hand_dif) % 3

        # 勝敗の記録を更新
        dwl_usr_num[hand_dif] += 1

        # 結果の表示
        print("ＣＰＵ：", HAND_STR_JP[hand_cpu])
        print("あなた：", HAND_STR_JP[hand_usr])
        print()  # 空行

        if hand_dif == 0:
            continue
        print(DWL_STR_JP[hand_dif])
        win_rate = int(dwl_usr_num[1] * 100 / (dwl_usr_num[1] + dwl_usr_num[2]))
        print(f"あなたの {dwl_usr_num[1]} 勝 {dwl_usr_num[2]} 敗 {dwl_usr_num[0]} 分で、勝率", win_rate,"％ですね")
    
    input("\nEnterを押してプログラムを完全終了")


if __name__ == "__main__":
    main()
