問題
コンピュータに0~99までの乱数(正解値)を発生させて、プレイヤーは値をコンソールに入力して
正解値と一致したら、その値と何回で正解したかをコンソールに表示する。
一致しなければ、正解値が入力値よりも大きいか小さいかを表示する数字当てゲームを作成しなさい。
ヒント
ヒント1:乱数の発生させ方
下記のように記述すれば0~99の範囲で乱数を発生させられます。
1 2 3 4 |
import random random_num = randrange(99) # 0~99の範囲の整数値をランダムに取得 print(random_num) # 7など |
ヒント2:ロジックの考え方
数値を入力して、正解値と一致しない間処理を繰り返すwhile文を使います。
while文の中では一致したらwhileをbreakする。小さい場合、大きい場合にそのようにコンソールに表示するというif分岐を3つ作ります。
答え
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import random com = random.randrange(0, 100) # 数字を無作為で一つ選ぶ count = 0 # 何回目で当たるのかを数える変数 while True: user = input("数字を入力してください") # ユーザが入力する数字 if user.isalpha() or int(user) < 0 or int(user) > 100: # ユーザが入力した数字が正しいのかを検討 continue else: # 正しい数字ならこちらで count += 1 # ユーザが何回目で当たるのかを数える if com == int(user): # 数字が一致したら、下の実行門を実行して反復門を抜く print("computer: ", com) print("user: ", user) print(count, "回目で正解") break elif com > int(user): # ユーザの数字が大きいなら下の文章を出力 print("comの値がユーザの値より大きい。") else: # ユーザの数字が小さいなら下の文章を出力 print("ユーザの値がcomのより小さい。") continue # 数字が当たるまでに反復 |
コメント