2017-02-10 2 views
0

私はコンピュータに対してゲームを作るという仕事をしています。私は「数を考える」べきであり、コンピュータはそれを推測しなければならない。それが正しく推測されている場合は、Cと言ってループから抜け出すべきです。数値が小さい場合はLと言い、コンピュータは低い数値を生成しようとします。 Hは高く、逆の状況です。これまで私は1つの例外を除いてすべてを成功裏に実装してきました。下のコードでは、たとえばコンピュータLに伝えれば、最後の数値の限界を超えませんが、次にHと言うと、数値がランダムに生成されます。 これは初心者コースのためのタスクです(機能はまだカバーされていません)。ループを使用する必要があります。関数getIntegerとgetLetterについては注意を払わないでください。これらは私たちの教授が作成した関数で、input()と似ていますが、文字や整数以外のものを入力するように制限しています。Python 3/eli5 - 乱数ゲーム対コンピュータ

from pcinput import getLetter, getInteger 
from random import random, randint, seed 


mynum = getInteger("My number is:") 


comnum = randint(0, 1000) 
print("Is your number:", comnum, "?") 

while True: 
    answer = getLetter("That is: ") 
    if answer == "C": 
     print("Congratulations!") 
     break 
    if answer == "L": 
     comnum = randint(0,comnum) 
     print("Is your number:", comnum, "?") 
     possibility = range(comnum,) 
     continue 
    elif answer == "H": 
     comnum = randint(comnum, 1000) 
     print("Is your number:", comnum, "?") 
     continue 

comnumはコンピュータが私の質問は、コンピュータが範囲のいくつかの並べ替えを作成するようにこのコードを修正する方法を基本的に

を入力しなければならない文字です*:ここでは

はコードがあります最初と最後の推測の間にあり、それを超えたり下回らないようにして、毎回の推測の間隔を短くします。 (私はあなたが私のポイントを得ることを願っています)。

ありがとうございました!

答えて

0

私の方法は、(あなたのコードから開始)のようになります。

from random import random, randint, seed 
mynum = int(input("My number is: ")) 

maximum = 1000 
minimum = 0 

while True: 
    comnum = randint(minimum, maximum) 
    print("Is your number:", comnum, "?") 
    answer = input("That is ") 
    if answer == "C": 
     print("Congratulations!") 
     break 
    if answer == "L": 
     maximum = comnum - 1 
     continue 
    elif answer == "H": 
     minimum = comnum + 1