じゃんけん
じゃんけんを記述してみよう
じゃんけんは2人以上の参加者によって行う。
参加者は向き合い(あるいは円になり)片腕を体の前に出す。 参加者全員で呼吸を合わせ、「じゃん、けん、ぽん」の三拍子のかけ声を発し、「ぽん」の発声と同時に「手」を出す。 この「手」の組み合わせによって勝者と敗者を決定する。
手順
- 「じゃんけん」とコール
- 出し手を入力(選択させる)
- 相手の手を出力(ランダムで)
- 勝敗を表示
- 勝敗の合計を表示
- もう一度続けるかを選択
※ 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("複数のプレイヤーがいる場合の勝者の決定はまだ実装されていません")