多くの友人がナンバーボムゲームをプレイしたと思います。つまり、特定のナンバー範囲(通常は境界を除く整数)で、プレイヤーは爆弾としてナンバーを選択し、他のプレイヤーは毎回推測しない限り、この範囲のナンバーを推測します。爆弾番号が当たると、プレイヤーが推測した数に応じて範囲が狭まり、いずれかのプレイヤーが爆弾番号を推測してゲームが終了します。
ここでは、Pythonプログラミングのアイデアを使用してゲームプロセスを分解することを試みることができます(純粋に退屈です)、コアは主に次の2つの質問です:
(1)デジタル爆弾の製造
(2)範囲を狭める方法
最初の質問は非常に単純です。ランダムモジュールを使用してランダムに生成できます。デジタル爆弾には境界が含まれていないことに注意してください。randint関数は指定された範囲の整数を生成できますが、境界が含まれているため、対処する必要があります。ループ方式を使用して、要件を満たさない生成されたデジタル爆弾を除外します。2番目の問題は、よりコアな問題であり、常に範囲を狭めます。whileループの使用を簡単に考えることができ、最後に、ループから飛び出すための数のブレークを推測します。終わり。
import random
def user_num():
num =int(input('番号を入力してください:\n'))return num
def max_num():
max_num =int(input('最大数を入力してください:\n'))return max_num
def min_num():
min_num =int(input('開始番号を入力してください:\n'))return min_num
min_num,max_num =min_num(),max_num()while True:
res = random.randint(min_num,max_num)#resには両端に数字が含まれている場合があり、削除する必要があります
if res!=min_num and res!=max_num:break
f =[min_num,max_num]
# コアコード
def comp(a,b):if a b:
f[1]= a
else:
f[0]= a
print('ゲームは続く、スコープ{}に{}、もう一度入力してください'.format(f[0],f[1]))
flag =0while True:
num =user_num()if num not inrange(f[0],f[1]):print('範囲外ですので、再入力してください')continue
elif num!=res:comp(num,res)
elif num==res:print("ご想像のとおり、ゲームオーバーです!")break
flag +=1print("あなたはそれを完全に推測しました%d回"%flag)
コアコードでは、範囲の両端を置き換える比較関数を定義して、推測の範囲を狭めることができるようにしました。コードはまだ改善できますが、私はまだ新人であり、この問題について長い間考えてきました。
より興味深い古典的なミニゲームの実装トピック、あなたと共有してください:
C ++クラシックゲームの概要
Pythonクラシックゲームの概要
pythontetrisゲームコレクション
JavaScriptクラシックゲームは常にプレイされています
古典的なJavaゲームの概要
JavaScriptクラシックゲームの概要
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。
Recommended Posts