Pythonでじゃんけんとあっちむいてほいを実装してみる

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

どーも、学生エンジニアのゆうき(@engieerblog_Yu)です。

今回はPythonで、あっちむいてほいを実装してみました。

前回の記事です。

じゃんけんを行う部分

前回の記事で作成したじゃんけん関数を少し改良し、勝敗に応じて返り値を返すようにしました。

import random

//じゃんけん関数
def jyanken(a,b):
    if a == b:
        print('あいこです')
        return 0
    elif a == 1 and b == 2:
        print('相手はチョキを出しました。あなたの勝ちです')
        return 1
    elif a == 1 and b == 3:
        print('相手はパーを出しました。あなたの負けです')
        return -1
    elif a == 2 and b == 1:
        print('相手はグーを出しました。あなたの負けです。')
        return -1
    elif a == 2 and b == 3:
        print('相手はパーを出しました。あなたの勝ちです。')
        return 1
    elif a == 3 and b == 1:
        print('相手はグーを出しました。あなたの勝ちです。')
        return 1
    elif a == 3 and b == 2:
        print('相手はチョキを出しました。あなたの負けです。')
        return 1
    else:
        print('1~3の数字を入力してください。')

上記のじゃんけん関数を使用して、あっちむいてほいを行っていきます。

あっちむいてほいを行う部分

主な処理は以下になります。

じゃんけんに勝利→cpuの向きを当てる→当てたら勝ち

じゃんけんにあいこ→じゃんけんをもう一度行う

じゃんけんに負ける→cpuが指を指す→当てられたら負け

上記の処理をif文やwhile文で、実装してみたいと思います。

//あっちむいてほい関数
def attimuite():
    while 1:
        hand = int(input('(グー:1,チョキ:2,パー:3)あなたが出す手は?:'))
        cpu_hand = random.randint(1, 3)
        kekka = jyanken(hand,cpu_hand)

        # じゃんけんに勝った場合
        if kekka == 1:
            vec = int(input('指す方向を教えてください(上:0,右:1,下:2,左:3):'))
            cpu_vec = random.randint(0,3)
            if cpu_vec == 0:
                print('cpuは上を向きました')
            elif cpu_vec == 1:
                print('cpuは右を向きました')
            elif cpu_vec == 2:
                print('cpuは下を向きました')
            elif cpu_vec == 3:
                print('cpuは左を向きました')

            if vec == cpu_vec:
                print('あなたの勝ちです')
                return
            else:
                print('ハズレです')

        # じゃんけんに負けた場合
        elif kekka == -1:
            vec = int(input('向く方向を教えてください(上:0,右:1,下:2,左:3):'))
            cpu_vec = random.randint(0,3)
            if cpu_vec == 0:
                print('cpuは上を指しました')
            elif cpu_vec == 1:
                print('cpuは右を指しました')
            elif cpu_vec == 2:
                print('cpuは下を指しました')
            elif cpu_vec == 3:
                print('cpuは左を指しました')

            if vec == cpu_vec:
                print('あなたの負けです')
                return
            else:
                print('かわしました')

関数実行

最後にattimuite関数を実行する処理を付け足してあげます。

if __name__ == '__main__':
    attimuite()

コンソールで

python3 ◯◯.py

を実行してあげましょう。(◯◯.pyは実行ファイル名です。)

実行例

こんな感じで出力されると思います。

(グー:1,チョキ:2,パー:3)あなたが出す手は?:1
相手はパーを出しました。あなたの負けです
向く方向を教えてください(上:0,右:1,下:2,左:3):2
cpuは左を指しました
かわしました
(グー:1,チョキ:2,パー:3)あなたが出す手は?:2
相手はグーを出しました。あなたの負けです。
向く方向を教えてください(上:0,右:1,下:2,左:3):3
cpuは左を指しました
あなたの負けです
ゆうき
ゆうき

自分自身でカスタマイズしてみるのも面白いと思いますよ〜。

最後に、

・大学のPythonの講義が理解できないから単位取れるか不安

・プログラミングを使ったバイトやインターン、就職に興味がある

という方向けに「私はPythonを使えます!」ということができるくらいプログラミングを上達することができるおすすめ講座を紹介したいと思います。

Pythonの勉強方法【おまけ】

上記に当てはまった人はUdemyというオンラインプログラミング学習プラットフォームにあるこちらの講座がおすすめです。

上記の講座のコースを全て受ければ即Pythonエンジニアとして働くことができるくらいのスキルを身につけることができます。

上記の講座は豊富なコースがあるので単位やバイト、インターン程度であれば必要だと思った箇所だけ受けるなんてことも可能です。

私が受けたPythonの講座の中では最も良かったですし、この講座を受けるだけで本質的にプログラミングを理解することができると思います。

プログラミングについて予備知識が無いという前提の講座ですし、質問をすることもできるので自分のプログラミングスキルに自信がない方で、頑張ってみたいと思っていたらぜひ受けてみて欲しい講座となっています。

対象のUdemy講座はこちら

おわりに

今回はPythonであっちむいてほいを実装してみました。

かなり粗いプログラムですので、ぜひ自分自身でも真似して作ってみるのをおすすめします。

ゆうき
ゆうき

最後まで読んでいただきありがとうございました。

ねこすけ
ねこすけ

他にもいろんな記事があるにゃ。

コメント

タイトルとURLをコピーしました