🕌

Pythonで負の数のモジュラス演算を用いてジャンケンを作る

2023/04/03に公開

モジュラス演算を学習したので、負の数のモジュラス演算を使ってじゃんけんのプログラムを作成しました。
https://zenn.dev/yutabeee/articles/7c69c655166532

コード全体

以下に、負の数のモジュラス演算を用いたPythonでのジャンケンプログラムのサンプルコードを示します。

import random

def main():
    hands = {0: 'グー', 1: 'チョキ', 2: 'パー'}
    print('ジャンケンを開始します。手を選んでください。')
    print('0: グー, 1: チョキ, 2: パー')

    while True:
        try:
            user_input = int(input('手を入力してください(0, 1, 2): '))
            if user_input in [0, 1, 2]:
                break
            else:
                print('無効な入力です。0, 1, 2 のいずれかを入力してください。')
        except ValueError:
            print('無効な入力です。0, 1, 2 のいずれかを入力してください。')

    computer_hand = random.randint(0, 2)
    print(f'あなたの手: {hands[user_input]}, コンピュータの手: {hands[computer_hand]}')

    result = (user_input - computer_hand) % 3
    if result == 0:
        print('引き分けです。')
    elif result == 1:
        print('あなたの負けです。')
    else:
        print('あなたの勝ちです。')

if __name__ == '__main__':
    main()

解説:

  1. このプログラムでは、randomモジュールをインポートしています。これは後でコンピュータの手をランダムに選ぶために使用されます。

  2. main関数を定義しています。この関数は、プレイヤーが手を選ぶように促し、コンピュータの手を選び、勝敗を判定するために使用されます。

  3. handsという辞書を定義し、数値(0, 1, 2)とジャンケンの手(グー、チョキ、パー)を関連付けています。

  4. ユーザーにジャンケンの手を入力してもらうためのループを作成しています。無効な入力がある場合、エラーメッセージが表示され、再度入力を求められます。

  5. ユーザーが有効な手を選んだ後、コンピュータの手をランダムに選択します。

  6. 勝敗を判定するために、負の数のモジュラス演算を使用しています。(user_input - computer_hand) % 3という式によって、結果が0の場合は引き分け、結果が1の場合はプレイヤーの負け、結果が2の場合はプレイヤーの勝ちとなります。

  7. 勝敗結果に応じて、適切なメッセージを表示します。

  8. 最後に、if __name__ == '__main__':という条件文を使用して、このスクリプトが直接実行された場合にmain関数が呼び出されるようにしています。

プログラムの実行方法:

  1. 上記のコードをjanken.pyという名前のファイルに保存します。
  2. コマンドプロンプトまたはターミナルで、python janken.pyと入力してスクリプトを実行します。
  3. プログラムが実行されると、手を選んで入力するように指示されます。0, 1, 2のいずれかを入力して、結果を確認します。

このプログラムは、負の数のモジュラス演算を用いたジャンケンプログラムの一例です。ユーザーが手を入力し、コンピュータがランダムに手を選んで勝敗を判定するプロセスを繰り返します。負の数のモジュラス演算を使用することで、勝敗判定のロジックがシンプルでわかりやすくなっています。

Discussion