前提・実現したいこと
ここに質問の内容を詳しく書いてください。
じゃんけんゲームにあいこの回数をデポジットして次の勝負で負けた方から引くという仕様を追加したいのですが上手くいきません
発生している問題・エラーメッセージ
エラーメッセージ ``` name 'count' is parameter and global ### 該当のソースコード ```ここに言語名を入力 ソースコード ```import random hands = ['グー', 'チョキ', 'パー'] results = {'win':'【勝ち】', 'lose':'【負け】', 'draw':'【あいこ】'} lifes = {'my':5, 'you':5} count = 0 def initialize(): global lifes lifes = {'my':5, 'you':5} def start_message(): print('じゃんけんスタート') def show_life(): print(f"ライフ 自分:{lifes['my']} / 相手:{lifes['you']}") def is_hand(string): if string.isdigit(): number = int(string) if number >= 0 and number <= 2: return True else: return False else: return False def get_my_hand(): print('自分の手を入力してください') input_message = '' index = 0 for hand in hands: input_message += str(index) + ':' + hand if index < 2: input_message += ', ' index += 1 return input(input_message) def get_you_hand(): return random.randint(0, 2) def get_hand_name(hand_number): return hands[hand_number] def view_hand(my_hand, you_hand): print('自分の手は ' + get_hand_name(my_hand)) print('相手の手は ' + get_hand_name(you_hand)) def get_result(hand_diff): if hand_diff == 0: return 'draw' elif hand_diff == -1 or hand_diff == 2: return 'win' else: return 'lose' def view_result(result): print(results[result]) show_life() def deposit_draw(result): global count if result == 'draw': count += 1 print('☆あいこの回数は: ' + str(count)) def minus_draw_count(count,result): global count if not result == 'draw': if count >= 1: if result == 'win': lifes['my'] -= count elif result == 'lose': lifes['you'] -= count count = 0 def update_life(result): global lifes if result == 'win': lifes['you'] -= 1 elif result == 'lose': lifes['my'] -= 1 def get_replay(): replay_message = '再戦しますか?:(Y or N)' input_replay = input(replay_message) while not enable_replay(input_replay): input_replay = input(replay_message) if input_replay == 'Y': return True else: return False def enable_replay(string): if string == 'Y' or string == 'N': return True else: return False def play_once(): my_hand = get_my_hand() while not is_hand(my_hand): my_hand = get_my_hand() my_hand = int(my_hand) you_hand = get_you_hand() hand_diff = my_hand - you_hand view_hand(my_hand, you_hand) result = get_result(hand_diff) update_life(result) view_result(result) deposit_draw(result) minus_draw_count(count,result) if lifes['my'] > 0 and lifes['you'] > 0: play_once() else: if get_replay(): initialize() play() def play(): start_message() show_life() play_once() play() ### 試したこと あいこが連続した場合はカウントし一回でも勝ちor 負けを挟んだ場合はあいこのカウントををリセットしたいので何回か関数を書き直しました。 ### 補足情報(FW/ツールのバージョンなど) pythonを始めて二ヶ月目なので分かりやすく書いていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー