LoginSignup
1
2

More than 3 years have passed since last update.

様々なおみくじゲーム

Posted at

はじめに

pythonを用いるとrandomやif,else,乱数など様々な方法でおみくじを作ることができる。今回は最終制作物ということでいろいろな方法でおみくじを作ることにした。

一番シンプルなおみくじ

omikuzi.py
import random

destiny = ['大吉','中吉','小吉','吉','凶','大凶']

print(random.choice(destiny))

これはランダムを用いておみくじを作った。ランダムを使うことで、リストの中からランダムに選択してくれるプログラムを組むことができる。
デメリットとしては、大吉や大凶などのレア度を再現することができない。
簡単に大吉が出てしまい、面白くない

確率を操作できるおみくじ

omikuzi.py
print("1~60までの数字を入力してね")

number = input()

if 0 <= int(number) <= 3:
    print("大吉")

elif 4 <= int(number) <= 10:
    print("中吉")

elif 11 <= int(number) <= 20:
    print("小吉")

elif 21 <= int(number) <= 40:
    print("吉")

elif 41 <= int(number) <= 55: 
    print("凶")

elif 56 <= int(number) <= 60:
    print("大凶")

else:
    print("die")

ここで使われるifはその後に続く条件式が成立するならばその後に続く処理を行うという事である。elifはelse ifの短縮である。
elseはifが存在しないときにelseの処理を行う。
これらのことより、条件分岐を行った。
この方法を使うことで、大吉や大凶の出現の確率を極端に低くできることや、小吉などの真ん中らへんのものの出現確率を高くすることができる。

tkinterのおみくじ

omikuzi.py

import tkinter.messagebox as mb
import tkinter as tk
import random


a = tk.Tk()
a.title("おみくじゲーム")
a.geometry("400x250")


b = tk.Label(text="クリックしてね")
b.pack()

kekka = [["大吉"], ["宝くじを今すぐ買うべき!!"], ["吉", "良いことあるよ!"],["小吉", "きょうの夜ご飯は大好物!"],
["凶", "今日は失敗続きの一日に"],["大凶", "今日は外に出ちゃダメ。何が起こるかわからない"]
]    
def botan():
    c = random.randrange(len(kekka))
    r = kekka
    mb.showinfo(r[0], r[1])

bota = tk.Button(text ="おみくじを引く",width =40, height = 10, command = botan)
bota.pack()

a.mainloop()

乱数を使うことでランダムなおみくじを作成した。
ボタンを押した後の結果を複数用意した。

実行結果

2020-07-08 (1).png

2020-07-08 (2).png

感想

記事を参考にしたのでスムーズにできた。個人的には確率を自分で決めることができるおみくじが1番良いと思いました。次は自分で1から作りたいと思いました。

参考にした記事

Tkinterで作るおみくじ+α
Pythontkinterの使い方入門おみくじアプリを作ってみる

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2