2016-10-31 8 views
1

私はPythonを学んでおり、コンピュータが生成した番号を推測しようとするこの小さなゲームを行った。初心者のPythonゲーム。レコードファイルを作成する

from random import randint 


def guess(): 
    play = 0  
    while play != 'exit':  
     numbercomp = randint(1, 9) 
     tries = 0 
     humanno = 0  
     while numbercomp != humanno: 
      humanno = int(raw_input("What is my number, from 1 to 9? ")) 

      if numbercomp == humanno: 
       tries = tries + 1 
       print('you are right, nice!') 

      elif numbercomp < humanno: 
       tries = tries + 1 
       print('my number is smaller than yours') 

      else: 
       tries = tries + 1 
       print('my number is bigger than yours') 

     print 'you got it in', tries, 'tries' 
     play = raw_input('press any key to play , type "exit" to leave') 
    print "Good bye!" 
    exit() 


while True: 
    try: 
     guess() 

    except ValueError: 
     print('that was not a number from 1 to 9!') 

私は、ファイルの中に最高スコア(以下試行)とホルダーの名前を保存し、プログラムのショーにそれが起動するたびにこの情報を持っている方法だろうのだろうか。このファイルを何らかの方法で暗号化することはそれほど重要ではありません。

さらに、よりエレガントなやり方で可能性があることがわかったら、私はフィードバックに感謝します。例えば

+0

結果を辞書のようなものに保存し、 'pickle'を使ってその辞書を保存することができます。その後、プログラムが起動するたびに、ピクルファイルが読み込まれ、辞書の内容が表示されます。 –

+0

コードは非常にうまくレイアウトされていて、読みやすくなっています。私はあなたが初心者であることを伝えることはできません:) –

+0

'try'' except'ブロックの位置付けは問題になります。ユーザが数字でないものを入力した場合、プログラムは 'guess()'を再度実行して、推測する新しい数字を選択します! –

答えて

0

trysが、それは最高のスコアを変更し、高得点を下回っている場合、あなたは可能性が何かは、この

if tries > score: 
      pickle.dump(favorite_color, open("save.p", "wb")) 

のようなものです。それはちょうど

highscore = pickle.load(open("save.p", "rb")) 

を行うと、関数が最初に実行されたときにあなただけのハイスコアを印刷することができます開くため

+0

恐ろしい!ありがとう! –

+0

私の答えを間違えないようにしてください。 – thesonyman101

+1

申し訳ありませんが、Stackoverflowの使い方をまだ学んでいます! –

関連する問題