4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonでサイコロ作ってみた

Posted at

サイコロ

Pythonを使ってサイコロを作りたいと思います。

サイコロって大人になると触れる機会ってないですよね。
我が家では先日サイコロを実家で発見して娘と遊んでます。

サイコロの定義

今回作るサイコロですが、1〜6までの整数の目が出るものとします。

早速コードを見てみましょう。

環境

macOS Ventura 13.0.1
Google Colaboratory

コード

import random
dice = random.randint(1,6)
print("サイコロの目は" + str(dice) +"です。")

これだけでサイコロは作れます。
まず初めに1行目ですが、

import random

ここでランダムモジュールをインポートします。
Pythonには標準ライブラリという便利な機能をまとめたものが
たくさん提供されています。
例えば数学の計算などを行う、 mathモジュールや
日付と時刻を扱う、 datetimeモジュールなどです。
詳しくはPythonの公式ドキュメントを参照して下さい。

2行目の

dice = random.randint(1,6)

diceという変数にrandint関数を使用して1〜6までの数字を入れてます。

randint関数とは、 randint(a,b) のように書き、aからbまでの間のランダムな整数を出力するという意味です。

3行目

print("サイコロの目は" + str(dice) +"です。")

print文で結果を出力しています。

サイコロは上記の通りですが、ここからはrandomモジュールでどんな動きを
しているのか見ていきたいと思います。

乱数

サイコロの動きの表現で使われるのが乱数です。
乱数とはランダムで適当な数字のことで、規則性のない数字のことです。

コードを実行して乱数を見てみましょう。

import random
for i in range(7):
    print(random.random())

上記のコードを実行すると、

0.8646879206032319
0.36377500869900947
0.1498868135903768
0.8990674760488528
0.261696093620167
0.8415821457402218
0.8444125985859737

0〜1の間の小数が不規則に出力されたのが確認できました。
これが乱数です。

ここからrandint関数を使わずにサイコロに近づけていきます。
まず乱数を6倍して、0〜6未満の小数を作ります。

import random
for i in range(7):
    print(random.random()*6)

出力結果

4.923039028651419
0.8848141251237571
2.8635824327216897
5.052957695964285
4.461501001097304
4.207258917169705
2.644129541013986

次に小数点を切り捨てるためにprint文をint型にします。

import random
for i in range(7):
    print(int(random.random()*6))

出力結果

3
4
3
1
4
3
1

これでサイコロが完成したように見えますが、このままでは6は絶対に出てきません。
このままでは0〜6未満、つまり5以下なのです。

なので、最後に1を足して6まで出るようにします。

import random
for i in range(7):
    print(int(random.random()*6)+1)

出力結果

1
6
3
1
4
5
1

これでrandint()関数を使わずにサイコロを作ることができました。

まとめ

今回は標準モジュールでサイコロを作ってみました。
今後は複数のサイコロを振ってみて、丁半を予想するものを作ってみたりもいいかなって思ってます。

4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?