ゆうき( @BASEBALLY15 )です^^

Pythonの勉強をしていて,そろそろ簡単なゲームを作りたいのですが・・・
何かいいアイデアはないでしょうか?

そうですね・・・
それでは,『じゃんけんゲーム』を作ってみてはいかがですか?

それはいいですね^^
早速,作ってみます!
(Anaconda Spyderを使用)

Pythonで『じゃんけんゲーム』って,具体的にどんなものが作れるの?

今回ご紹介するコードを書くと,以下のような『じゃんけんゲーム』を作ることが出来ます.

まず,自分の手を決定します.

そして,相手の手は,PC側が自動で決定します.

最後に,自分の手と相手の手を比べて勝敗を決定します.

それでは,早速,コードを見ていきましょう⤵

Pythonで『じゃんけんゲーム』を作ってみた!

ライブラリを用意しよう!

まずは,ライブラリを用意します.

import random

ランダムな値を生成するために,「random」をインポートしておきます.

先に全体のコードを紹介し,その後に詳細を紹介していきます^^

全体のコード

while(True):

   print("==============================\n")
   print("<<1>>じゃんけんをします!\n")
   print("<<0>>じゃんけんを終了します!\n")
   print("==============================\n")
   
   
   num = int(input("1か0を選択してください!\n"))

   #場合分け
   if (num == 1):
       
       #自分の手

        print("0:グー\n1:チョキ\n2:パー\n")
        #標準入力
        y = int(input("あなたは何を出しますか?\n"))
        
        
        if(y == 0):
           
            print("あなたは『グー』を出しました!\n")
        if(y == 1):
         
          print("あなたは『チョキ』を出しました!\n")
        if(y == 2):
           
            print("あなたは『パー』を出しました!\n")  
            
            
        #相手の手
        #ランダムな値を決定(randintで整数値から指定)
        #1から10000の中からランダムに選ぶ
        n = random.randint(1,10000)
        
        #nを3で割った余り(0か1か2の3パターン)
        x = int(n % 3)
        
        if(x == 0):
           
            print("相手は『グー』を出しました!\n")
        if(x == 1):
         
          print("相手は『チョキ』を出しました!\n")
        if(x == 2):
           
            print("相手は『パー』を出しました!\n")  
        
        #3以上の値を入力してしまった時の処理
        if(x > 2):
            
            continue
            
            
        #勝敗
        #あいこ
        if ((y == 0 and x == 0) or (y == 1 and x == 1) or (y == 2 and x == 2)):
            
            print("【結果】あいこです!\n")
            
        #勝利
        if ((y == 0 and x == 1) or (y == 1 and x == 2) or (y == 2 and x == 0)):
            
            print("【結果】あなたの勝ちです!\n")
          
        #敗北
        if ((y == 0 and x == 2) or (y == 1 and x == 0) or (y == 2 and x == 1)):
            
            print("【結果】あなたの負けです!\n")
            
        continue
    
    
   #強制終了
   if (num == 0):
       
       break

詳細①while文とif文について

まずは,『while文』と『if文』の使い方についてご紹介します.

(PythonではC言語の様に「switch文」が無いので,「if文」で代用します.)

while(True):

   print("==============================\n")
   print("<<1>>じゃんけんをします!\n")
   print("<<0>>じゃんけんを終了します!\n")
   print("==============================\n")
   
   
   num = int(input("1か0を選択してください!\n"))

   #場合分け
   if (num == 1):
       
       最初の処理を行うためのコード(今回の場合,じゃんけんを行うためのコードをここに書いていく!)
            
        continue
    
    
   #強制終了
   if (num == 0):
       
       break

・『while文』では,引数に「True」と書くことで,処理が行われている間は無限にループします.

・『if文』を使うことで,条件ごとに処理を分けることが出来ます.

今回の場合だと,「if(num == 1)」の時にじゃんけんゲームを行い,「if(num == 0)」の時にじゃんけんゲームを終了することが出来ます.

ちなみに「if(num == 0)」内に「break」と書くことで,強制的に作業を終了することが出来ます.

詳細②randomについて

次に,相手の手を決定する際に使う『random』についてご紹介します.

n = random.randint(1,10000)

と書くことで,1から10000までの整数からランダムな値を1つ出力してくれます.

ここで1から10000にしたのは,値が少なすぎると最終的に余りを出力する際に,結果に偏りが生じてしまうのではないかと考えたからです.

ちなみに,「random.randint(開始数, 終了数)」と書くことで,整数の値を出力してくれます.

(※浮動小数点値で出力したい場合は,「random.uniform(開始数, 終了数)」と書きます)

そして,以下のコードで,ランダムな値を3で割った時の余りを出力しています.

x = int(n % 3)

数字を3で割ると,余りは0か1か2の3つしかないですよね^^

それらの結果に手の出し方を当てはめていくことで,じゃんけんゲームを作ることが出来ます.

詳細⓷勝敗について

最後に,勝敗の決め方についてご紹介します.

上の図の様に,あいこ・勝利・敗北の3つのパターンに分けて,処理を行います.

コードに表すと以下の様になります.

#勝敗
        #あいこ
        if ((y == 0 and x == 0) or (y == 1 and x == 1) or (y == 2 and x == 2)):
            
            print("【結果】あいこです!\n")
            
        #勝利
        if ((y == 0 and x == 1) or (y == 1 and x == 2) or (y == 2 and x == 0)):
            
            print("【結果】あなたの勝ちです!\n")
          
        #敗北
        if ((y == 0 and x == 2) or (y == 1 and x == 0) or (y == 2 and x == 1)):
            
            print("【結果】あなたの負けです!\n")

以上でじゃんけんゲームの作り方の説明を終わります^^

終わりに

今回は,じゃんけんゲームの作り方についてご紹介しました.

Pythonの勉強をしていて,そろそろゲームを作ってみたいと考えていた方にとって,少しでも参考になれば嬉しいです!

今後は,さらに高度なゲームや技術を紹介していこうと考えています^^

それでは・・・

Q &A

参考記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA