ホームページ  >  記事  >  バックエンド開発  >  Lao Qi から Python を学び、小さなゲームを作りましょう

Lao Qi から Python を学び、小さなゲームを作りましょう

WBOY
WBOYオリジナル
2016-06-16 08:41:341219ブラウズ

リストについて話しているときに、ゲームを作ることについて話しましたが、この問題は続かなかったのです。忘れていたわけではなく、どの段階でやるのが最適なのかを考えているだけです。一定期間の学習を経た後、Kanguan はもはや純粋な初心者ではなく、Python の初心者です。今こそそのゲームを作り始める時です。

ゲーム内容:数字当てゲーム

シンプルすぎます。はい、ゲームは難しくありませんが、このゲームに含まれる内容は熟考する価値があります。

ゲームプロセスの説明

プログラムが実行され、特定の範囲内の整数がランダムに選択されます。
ユーザーは数値を入力するように求められ、その数値が推測プログラムによって選択されます。
プログラムは、ユーザーが入力した数字とユーザーが選択した数字を比較し、その数字が同じであれば、ユーザーはゲームを終了します。そうでない場合は、推測が続行されます。
使用頻度が低いユーザーが勝ちます。
分析

プログラム開発の前には、規模の大小を問わず、分析する必要があります。つまり、さまざまな機能ポイントが機能要件に従って分解されます。これにより開発プロセスが決まります。私たちは今、非常に小さなプログラムを作成しており、同じ方法で実行しています。

数字をランダムに選択します

数値をランダムに選択するには、Python のランダム関数、random を使用できます。以下にこの機能を簡単に紹介します。このアプリケーション以外にも拡張して使用できるかどうかを確認します。

私たちはまだ学習方法を強化する必要があります。それは、ヘルプドキュメントを読むことを学ぶことです。

コードをコピー コードは次のとおりです:

>>> ランダムインポート #これは組み込み関数ではないため必要です
>>> ディレクトリ(ランダム)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'ランダム', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_BuiltinMethodType', '_MethodType', '__all__', ' __builtins__'、'__doc__'、'__file__'、'__name__'、'__package__'、'_acos'、'_ceil'、'_cos'、'_e'、'_exp'、'_hashlib'、'_hexlify'、'_inst' 、'_log'、'_pi'、'_random'、'_sin'、'_sqrt'、'_test'、'_test_generator'、'_urandom'、'_warn'、'betavariate'、'choice'、'division'、' expovariate'、'gammavariate'、'gauss'、'getrandbits'、'getstate'、'jumpahead'、'lognormvariate'、'normalvariate'、'paretovariate'、'randint'、'random'、'randrange'、'sample' 、'seed'、'setstate'、'shuffle'、'triangular'、'uniform'、'vonmisesvariate'、'weibullvariate']

>>> ヘルプ(random.randint)

モジュールrandomのメソッドrandintに関するヘルプ:

random.Random インスタンスの randint(self, a, b) メソッド
両方の終点を含む、範囲 [a, b] のランダムな整数を返します。

ドキュメントを辛抱強く読めば、その使用方法が理解できます。ただし、主要なものは引き続きリストされていますが、各機能の使用方法を確認する前に、対話型モードのヘルプを通じてドキュメントを参照することをお勧めします。

ランダムな整数:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> ランダム.randint(0,99)
21

0 から 100 までの偶数をランダムに選択します:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> ランダム.randrange(0, 101, 2)
42

ランダムな浮動小数点数:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> ランダム.ランダム()
0.85415370477785668
>>> ランダム.ユニフォーム(1, 10)
5.4221167969800881

ランダムな文字:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> ランダム.choice('qiwsir.github.io')
「ぐ」

複数の文字から特定の数の文字を選択します:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
ランダム.サンプル('qiwsir.github.io',3)
['w'、's'、'b']

文字列をランダムに選択します:

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> ランダム.チョイス ( ['リンゴ', '梨', '桃', 'オレンジ', 'レモン'] )
「レモン」

シャッフル: 元の順序をシャッフルし、ランダムな順序に並べます

コードをコピー コードは次のとおりです:

>>> ランダムにインポート
>>> アイテム = [1、2、3、4、5、6]
>>> ランダム.シャッフル(アイテム)
>>> アイテム
[3、2、5、6、4、1]

少し多いです。ただし、この実験では、random.randint() を値として使用できます。追加のものは、1 つ購入すると 1 つ無料になります (ああ、忘れていました、誰も購入しなかったので、このコースはすべて無料です)。

重要な技術的ポイントの 1 つが突破されました。プログラミングの準備が整いました。もう一度プロセスを整理してみましょう。見せる絵を描いてください:

(注: ここで少し怠けて、このプログラムのフローチャートを描けるかどうか見てみましょう。特に初心者の場合は、自分でフローチャートを描く必要があります。オンラインで友人がこう言っているのを見たところです。独学で学習できます プログラミングをしているのですが、論理的思考が苦手なので、うまく学習できていないのですが、実はフローチャートを描くのが論理的思考力を高めるのに良い方法なのです(絵を描いてください)。 🎜>

画像の準備ができました。直観的に理解すると、次のコードは初心者によって書かれることがよくあります (初心者を表しているため、ベテランの方は文句を言わないでください)。

コードをコピー コードは次のとおりです:
#!/usr/bin/env python
#coding:utf-8
ランダムにインポート

数値 = ランダム.randint(1,100)

print "100 以内の自然数を入力してください:"

input_number = raw_input()

ifnumber == int(input_number):

「ご想像のとおり、この番号は次のとおりです。」
を出力します。 番号を印刷
それ以外:
「間違っています」と印刷します

上記のプログラムは基本的には動作しますが、まだ多くの欠陥があります。

最も明白なことは、推測できるのは 1 回だけであり、複数回はできないということです。複数回推測できるように変更するにはどうすればよいですか?頭を使ってコードを読んだり、自分のコードに変更を加えたりして、複数の推測を行うことができますか?

また、入力した数字が大きすぎるのか小さすぎるのかがユーザーにわかるように、利便性を高めることはできますか?

上記の変更のアイデアに基づいて、新しいコードは次のようになります:

コードをコピー コードは次のとおりです:
#!/usr/bin/env python
#coding:utf-8
ランダムにインポート

数値 = ランダム.randint(1,100)

print "100 以内の自然数を入力してください:"

input_number = raw_input()

ifnumber == int(input_number):

「ご想像のとおり、この番号は次のとおりです。」
を出力します。 番号を印刷
elif 番号 > int(input_number):
「小」を印刷
input_number = raw_input()
elif 番号
「大きいです」を印刷
input_number = raw_input()
それ以外:
「間違っています」と印刷します

まあ、ユーザーが 2 回目の入力を許可されているため、元のバージョンよりも少しは改善されているようです。また、入力が大きいか小さいかをユーザーに知らせます。しかし、これもうまくいきません。正しく理解できるまで、何度も入力できるはずです。

はい。これには、ループという新しいものを使用する必要があります。せっかちな場合は、このゲームをさらに改善するために while または for ループを検索できます。急いでいない場合は、この部分については後ほど説明します。

このゲームはまだ終わっていません。ループを使用しても、後で続きます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。