見出し画像

Pythonで遊ぶ

演習問題で「じゃんけんゲーム」を作った。
かなりググって何とか自力で仕上げることができた。
模範解答とは違うコードとなったが、出てくる結果は同じ、なので合格をもらってもいいだろう。

その発展系で、コンピュータを相手にじゃんけんを繰り返し、その勝率を求めてみる、というのもやった。

import random
from random import randint

pong = 100

w = 0

for i in range(pong):
    
    my_turn = "グー"
    m = randint(0, 2)
    hand = ["グー", "チョキ", "パー"]
    pc_turn = hand[m]

    if my_turn == pc_turn:
        result = "あいこ"
    elif my_turn == "グー" and pc_turn == "チョキ":
        result ="勝ち"
    elif my_turn == "チョキ" and pc_turn == "パー":
        result ="勝ち"
    elif my_turn == "パー" and pc_turn == "グー":
        result ="勝ち"

    elif my_turn == "グー" and pc_turn == "パー":
        result ="負け"
    elif my_turn == "チョキ" and pc_turn == "グー":
        result ="負け"
    elif my_turn == "グー" and pc_turn == "パー":
        result ="負け"

    if result == "勝ち":
        w  = w + 1
        
Win = round((w / pong) * 100, 2)  
print("勝率は{}%です。".format(Win))

自分でいちいち「手」を入力するのではない。出す手は一つ。ここでは「ぐー」だけを出して、あとはランダムにPCに手を出させて勝率を求める、というもの。「forループ」を使って次々と結果を出させていく。

この100回やって出た勝率は

画像通り31%。何度かやっていくと、25%から40%辺りでかなり勝率は揺れるようだ。

精度を上げるために、10万回回してみたら、33.16%だった。

10万回じゃんけんするのに、およそ1.5秒。

10万回だよ! 一瞬だよ。。すごい!


調子に乗って1000万回やらせてみたら、予測数値に限りなく近づいていく。33.35%。

さすがに時間はかかった。11.96秒。

でも1000万回を10秒って。
「コンピュータ」なのだなあ。。と改めて思ったり。

といった感じで遊んでばかりいてなかなか前に進めない。
だけど、楽しみながらやるのが一番なのよね。


この記事が気に入ったらサポートをしてみませんか?