背景
- こどもが毎朝楽しめる機能を実装したかった
- おみくじ機能をつけたら毎朝楽しんで貰えそう
- せっかくだからポジティブになる物にしたい
試してみた
Pythonで今日の運勢のおくみじを生成したい。
大吉、中吉、小吉、吉、凶、大凶
で吉以上が90%、凶、大凶が7%,3%で出る様にしたい。
また今日のラッキーアイテムと今日をよりよくする為の一言をいれるようにしたい。それぞれ100個用意してほしい。
またラッキーアイテムは小学校・こどもえん・家の中にあるものなどにしたい。
毎日複数人が実行するので、毎回違う結果になるようにしたい
import random
from datetime import date
FORTUNES = ["大吉", "中吉", "小吉", "吉", "凶", "大凶"]
FORTUNE_WEIGHTS = [20, 30, 20, 20, 7, 3] # 合計100
# 小学校・こども園・家の中にありそうなもの 100 個
LUCKY_ITEMS = [
"えんぴつ",
"消しゴム",
"ノート",
"クレヨン",
"ランドセル",
"なわとび",
"上ばき",
"絵本",
"おりがみ",
"つくえ",
"いす",
"まぐカップ",
"テレビのリモコン",
"スリッパ",
"ティッシュペーパー",
"ハンカチ",
"水筒",
"おちゃわん",
"スプーン",
"はぶらし",
"えほんだな",
"おどうぐばこ",
"ねんど",
"ねんどベラ",
"みずでっぽう",
"しゃぼんだま",
"おかたづけボックス",
"こどもイス",
"こどもテーブル",
"黒板",
"チョーク",
"黒板消し",
"おきにいりのコップ",
"おきにいりのタオル",
"えんそくのリュック",
"おべんとうばこ",
"はさみ",
"セロハンテープ",
"のり",
"クッション",
"ぬいぐるみ",
"ブロック",
"つみき",
"パズル",
"かるた",
"トランプ",
"おえかきちょう",
"クレパス",
"カラーペン",
"ホッチキス",
"ペンたて",
"めざましどけい",
"カーテン",
"まくら",
"ふとん",
"スリッパ",
"かみコップ",
"おきにいりのえんぴつ",
"じゆうちょう",
"おりがみケース",
"おべんとうのはし",
"コロコロクリーナー",
"せんたくばさみ",
"ハンガー",
"こどもようハンガー",
"きゅうしょくナプキン",
"マスク",
"うわばきいれ",
"さんかくぼうし",
"レインコート",
"かさ",
"ながぐつ",
"じどうしゃのおもちゃ",
"でんしゃのおもちゃ",
"ぬりえ",
"クレヨンケース",
"ひらがなひょう",
"九九ひょう",
"じかんわりひょう",
"えにっきちょう",
"おてがみセット",
"おりがみのつる",
"ペットボトル",
"おちゃのペットボトル",
"カレンダー",
"メモちょう",
"えんぴつけずり",
"じしゃく",
"まどガラス",
"カーペット",
"ティッシュケース",
"リビングのテーブル",
"そうじき",
"ほうき",
"ちりとり",
"せんたくかご",
"リモコンケース",
"かべどけい",
"こどもざぶとん",
]
# 今日をよりよくするための一言 100 個
MESSAGES = [
"あいさつをいつもより丁寧にしてみよう。",
"5分だけ早起きして、静かな時間を味わおう。",
"感謝を言葉にして伝えてみよう。",
"深呼吸を3回してから行動してみよう。",
"気になっていた場所を少しだけ片づけてみよう。",
"今日は人のいいところを3つ探してみよう。",
"やることを紙に書き出してから動いてみよう。",
"いつもよりゆっくり歩いて周りを見てみよう。",
"新しいことを一つだけ試してみよう。",
"夜寝る前に今日よかったことを1つ思い出してみよう。",
"朝一番にコップ1杯の水を飲んでみよう。",
"困っている人にそっと一言かけてみよう。",
"「ありがとう」をいつもより多く言ってみよう。",
"スマホを見る前に空を見上げてみよう。",
"ちいさな成功を声に出してほめてみよう。",
"10分だけ好きなことに集中してみよう。",
"いつもより早めに「おやすみ」を言ってみよう。",
"ごはんをゆっくり味わって食べてみよう。",
"一度立ち止まって周りをぐるっと見てみよう。",
"失敗しても一つ学べたと考えてみよう。",
"「手伝って」と素直に言ってみよう。",
"今日会った人のいいところを心の中でほめてみよう。",
"やりたくないことから先に1つだけ片づけてみよう。",
"いつもより大きな声で返事をしてみよう。",
"鏡を見て、にっこり笑ってから出かけてみよう。",
"小さなゴミをひとつ拾ってみよう。",
"いつもより背すじを伸ばして歩いてみよう。",
"「大丈夫」と自分にやさしく声をかけてみよう。",
"気になっていた人にメッセージを送ってみよう。",
"今日の目標を一つだけ決めてみよう。",
"うまくいかないときは一度席を立ってみよう。",
"いつもより相手の話をよく聞いてみよう。",
"ありがとうメモを1つ書いてみよう。",
"短いストレッチで体をほぐしてみよう。",
"窓を開けて新しい空気を吸ってみよう。",
"少しだけ早歩きして気分を変えてみよう。",
"できたことをノートに3つ書いてみよう。",
"むずかしいと感じたら「今は練習中」と考えてみよう。",
"自分のペースで進んでいいと許してあげよう。",
"前からの習慣を一つだけ手放してみよう。",
"苦手な人のいいところを一つ探してみよう。",
"いつもよりていねいに字を書いてみよう。",
"「まあいっか」と流せることを一つ増やしてみよう。",
"がんばっている自分を心の中でほめてみよう。",
"ほんの少しだけ勇気を出して一歩前に進んでみよう。",
"難しいことは小さなステップに分けてみよう。",
"疲れたら、がまんせずに5分休んでみよう。",
"人と比べるかわりに、昨日の自分と比べてみよう。",
"自分の好きなところを3つ思い出してみよう。",
"周りにいる人に「ありがとう」と伝えてみよう。",
"がんばりすぎていないか、少しだけ振り返ってみよう。",
"やさしい言葉を一つ多く選んでみよう。",
"うまくいったら「やったね!」と心の中で拍手してみよう。",
"できないことより、できていることに目を向けてみよう。",
"悩みごとは紙に書いて、あとで見直してみよう。",
"ちょっとだけ視線を上げて歩いてみよう。",
"今日だけは自分にきびしすぎないでみよう。",
"がんばる時間と休む時間のバランスを意識してみよう。",
"一人の時間を数分つくって、心を落ち着かせてみよう。",
"小さな変化を一つ楽しんでみよう。",
"誰かのいいニュースを一緒によろこんでみよう。",
"「助けて」と言える自分を大切にしてみよう。",
"わからないことはそのままにせず、聞いてみよう。",
"いつもより少しだけ丁寧に片づけをしてみよう。",
"できたことに丸をつけてあげよう。",
"新しいあいさつの言い方を一つ試してみよう。",
"子どもの話を最後までじっくり聞いてみよう。",
"相手の立場になって一度考えてみよう。",
"小さなユーモアを一つ足してみよう。",
"気になる場所を5分だけ掃除してみよう。",
"短い散歩で気分を切り替えてみよう。",
"「ありがとう」と「ごめんね」を早めに伝えてみよう。",
"1つのことに集中する時間をつくってみよう。",
"できなかったことも、チャレンジした自分をほめてみよう。",
"明日の自分が喜ぶことを一つしてみよう。",
"心配ごとを、誰かに少しだけ話してみよう。",
"深呼吸をしながら、肩の力を抜いてみよう。",
"不安になったら、「大丈夫」と心でつぶやいてみよう。",
"予定を詰め込みすぎていないか見直してみよう。",
"今日嬉しかったことを写真に撮って残してみよう。",
"笑顔で「おはよう」と言ってみよう。",
"いつもよりちょっとだけ優しい行動を選んでみよう。",
"短いメモで、今の気持ちを書き留めてみよう。",
"誰かのいいところを直接ほめてみよう。",
"新しい本や記事に少しだけふれてみよう。",
"作業の前後に深呼吸を1回ずつしてみよう。",
"「やってみようかな」と思ったことに一歩近づいてみよう。",
"ゆっくりお茶や水を飲んで、ほっとする時間をつくろう。",
"できて当たり前と思っていることにも「よくやってる」と言ってみよう。",
"いつもより少しだけ静かな時間を大切にしてみよう。",
"人のペースと自分のペースを分けて考えてみよう。",
"未来の心配より、今日できる一歩に目を向けてみよう。",
"ちょっとした失敗も、笑い話にできるところを探してみよう。",
"今日一日を「実験の日」と決めて、気楽に試してみよう。",
"がんばれない日があってもいいと、ゆるしてあげよう。",
"「ありがとう」を自分にも言ってみよう。",
]
def draw_omikuji(seed_by_today: bool = True) -> dict:
"""今日の運勢おみくじを返す。"""
if seed_by_today:
random.seed(date.today().isoformat())
fortune = random.choices(FORTUNES, weights=FORTUNE_WEIGHTS, k=1)[0]
lucky_item = random.choice(LUCKY_ITEMS)
message = random.choice(MESSAGES)
return {
"fortune": fortune,
"lucky_item": lucky_item,
"message": message,
}
if __name__ == "__main__":
result = draw_omikuji()
print(f"今日の運勢: {result['fortune']}")
print(f"ラッキーアイテム: {result['lucky_item']}")
print(f"ひと言: {result['message']}")
- 出力結果

振り返り
- すごいシンプルなおみくじになったがとりあえずはこれで楽しめそう
- 子どもも気に入って朝引いてくれるようになった
- 次はサーマルプリンタから印刷時に装飾して出す様にしたい(今はすごいシンプルなテキストのみ)