【Python】Numer0n(ヌメロン)を作る方法Part1

pythonでNumer0nを作成するPart1

こんにちは、にわこまです。

今回は、コマンドプロンプトで動作するNumer0n(ヌメロン)を作成します。Numer0nについては後で詳しく紹介しますが、簡単に言うと1対1で行う数字を当てるゲームです。イメージとしては任天堂から発売されている世界のアソビ大全51の「ヒット&ブロー」です。

 

誤字脱字または分からない点がございましたらご連絡ください。

 

 

スポンサードサーチ


Numer0n(ヌメロン)とは

Numer0nとは?

『Numer0n』(ヌメロン)はフジテレビ系列で深夜帯に不定期放送されていたゲームバラエティー番組

https://ja.wikipedia.org/wiki/Numer0n

 

Numer0nを一言で言うと「相手が選んだ数字を当てるというゲーム」です。

 

 

Numer0nのルール

1.0~9の数字から3つ選び、3桁の番号を作る

2.相手の番号を推理し、コールする

3.相手はコールされた番号と自分の番を比較し、桁と数字が合っている場合は「EAT(イート)」、数字は合っているが桁が合っていない場合は「BITE(バイト)」と発表する。

4.2、3を相手の番号を当てるまで繰りかえす。

 

ゲームの流れを以下の図に示す。

Numer0n(ヌメロン)のルールを示した画像

  

 

Numer0nを作成するにあたって

Numer0nを作るにあたって

今回作成するNumer0nは本家のNumer0nと異なる点が3つあります。

1つ目は、作成する番号の桁数が3桁だけでなく4桁5桁でも遊べるようにするという点です。

2つ目は、作成する番号は「重複なし」だけでなく「重複あり」でも遊べるようにするという点です。

3つ目は、対戦形式ではなくランダムに生成された番号を当てるという形式のNumer0nを作成するという点です。

 

 

Numer0nに必要なもの

・番号の生成

・番号のコール(コマンドプロンプトからの入力)

・生成された番号とコールされた番号の比較

以上の3つがNumer0nを作成するのに必要なものであると考えます。

 

 

スポンサードサーチ


番号の生成

番号を生成する関数

番号を生成する関数を作成します。番号の生成には0~9の数字と桁数、重複ありなしが必要となります。

 

以下に番号を生成する関数(createRandomNumber)のソースコードを示します。

import random

def createRnadomNumber(digits=3, dup=False):
    num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    if(dup):
        set_num_list = random.choices(num_list, k=digits)
    else:
        set_num_list = random.sample(num_list, digits)
    return set_num_list

def main():
    set_num_list = createRnadomNumber(5, False)
    print("選ばれた番号:", set_num_list);

if __name__ == '__main__':
    main()
    pass

  

上記のコードは以下からダウンロードできます。

  

 

コードの解説

1行目の「import random」は、randomライブラリをインポートしています。

 

3行目から9行目の「createRandomNumber」は、ランダムに任意の桁数の番号を生成する関数です。

第1引数の「digits」には桁数を代入します。初期値として3が代入してあります。

第2引数の「dup」には、TureまたはFalseを代入します。Trueの場合は「重複あり」、Falseの場合は「重複なし」になります。初期値としてFalse(重複なし)が代入してあります。

 

4行目の「num_list」は0~9の数字が代入してあります。

 

5行目と6行目の「if文」は重複ありの場合の処理を行います。「dup = True」の場合に6行目の処理を行います。

6行目の「random.choices(リスト, k=取り出す数)」は、リストからk個の要素をランダムに重複ありで抽出する関数です。この関数によって番号を取得しています。

 

7行目と8行目の「else文」は重複なしの場合の処理を行います。「dup = False」の場合に8行目の処理を行います。

8行目の「random.sample(リスト, 取り出す数)」は、リストから任意の数だけ要素をランダムに重複なしで抽出する関数です。この関数によって番号を取得しています。

  

9行目の「return文」は生成された番号を返却しています。

 

 

「createRandomNumber」の動作確認

動作確認

コマンドプロンプトを開き、ファイルを保存したディレクトリまで移動します。移動しましたら、以下のコマンドを入力し実行します。

python numer0n_part1.py

 

私は以下のように出力されました。番号はランダムに出力されます。桁数や重複ありなしを変えて何回か実行してみてください。

選ばれた番号: [7, 2, 4, 5]

 

以上で動作確認は完了です。

  

 

スポンサードサーチ


まとめ

まとめの画像

今回はコマンドプロンプトで動くNumer0n(ヌメロン)を作成しました。具体的には、番号をランダムに生成する関数を作成しました。

 

次回は番号のコール(コマンドプロンプトからの入力)の関数と生成された番号とコールされた番号の比較を行う関数を作成します。

 

 

最後までお読みいただきありがとうございます。


スポンサードサーチ