0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python演習問題_0【じゃんけん①】

Last updated at Posted at 2023-06-30

じゃんけん

じゃんけんを記述してみよう

じゃんけんは2人以上の参加者によって行う。
参加者は向き合い(あるいは円になり)片腕を体の前に出す。 参加者全員で呼吸を合わせ、「じゃん、けん、ぽん」の三拍子のかけ声を発し、「ぽん」の発声と同時に「手」を出す。 この「手」の組み合わせによって勝者と敗者を決定する。

手順

  1. 「じゃんけん」とコール
  2. 出し手を入力(選択させる)
  3. 相手の手を出力(ランダムで)
  4. 勝敗を表示
  5. 勝敗の合計を表示
  6. もう一度続けるかを選択

※ 5. 以降は、場合によって変更可能

【 回答例:ChatGPT活用 】

import random
hands = ["グー", "チョキ", "パー"]

def decide_winner(player1, player2):
    if player1 == player2:
        return "引き分け"
    elif (player1 == "グー" and player2 == "チョキ") or \
         (player1 == "チョキ" and player2 == "パー") or \
         (player1 == "パー" and player2 == "グー"):
        return "プレイヤー1の勝ち"
    else:
        return "プレイヤー2の勝ち"

def play_janken(players):
    print("じゃん、けん、ぽん!")
    results = [random.choice(hands) for _ in players]
    for i, result in enumerate(results):
        print(f"プレイヤー{i+1}は{result}を出しました")
    return results

# メインの関数
def main():
    num_players = int(input("参加者の人数を入力してください: "))
    players = list(range(num_players))
    
    # じゃんけんをプレイ
    results = play_janken(players)
    
    # 勝者の決定 (2人プレイヤーのケース)
    if num_players == 2:
        winner = decide_winner(results[0], results[1])
        print(winner)
    else:
        # 複数プレイヤーのケースでは勝者の決定が複雑になるため、ここでは引き分けとします
        print("複数のプレイヤーがいる場合の勝者の決定はまだ実装されていません")

if __name__ == "__main__":
    main()

関数を使わない場合

import random

# じゃんけんの手
hands = ["グー", "チョキ", "パー"]

# 参加者の人数を取得
num_players = int(input("参加者の人数を入力してください: "))

print("じゃん、けん、ぽん!")

# 各プレイヤーの手をランダムに決定
results = []
for i in range(num_players):
    hand = random.choice(hands)
    results.append(hand)
    print(f"プレイヤー{i+1}は{hand}を出しました")

# 勝者の決定 (2人プレイヤーのケース)
if num_players == 2:
    player1 = results[0]
    player2 = results[1]

    if player1 == player2:
        print("引き分け")
    elif (player1 == "グー" and player2 == "チョキ") or \
         (player1 == "チョキ" and player2 == "パー") or \
         (player1 == "パー" and player2 == "グー"):
        print("プレイヤー1の勝ち")
    else:
        print("プレイヤー2の勝ち")
else:
    # 複数プレイヤーのケースでは勝者の決定が複雑になるため、ここでは引き分けとします
    print("複数のプレイヤーがいる場合の勝者の決定はまだ実装されていません")

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?