1. 程式人生 > 程式設計 >python實現猜數遊戲(儲存遊戲記錄)

python實現猜數遊戲(儲存遊戲記錄)

本文例項為大家分享了python實現猜數遊戲的具體程式碼,供大家參考,具體內容如下

內容如下:

①遊戲可以重複進行,每當一個使用者結束後,程式會提示是否還要繼續,輸入y繼續,輸入其他的字元退出;
②增加玩家姓名,並對該玩家的成績進行記錄,並存儲在new.txt檔案中;
③增加檔案讀取功能,即每次程式啟動,都首先讀取new.txt檔案,並給出之前玩家的最高成績和姓名。(當最高成績重疊時,取最新記錄)

import random
import os
if os.path.exists("D:\\new.txt")==False:  #檢測檔案是否存在
 file = open('D:\\' + 'new' + '.txt','w') #若不存在則立即建立
 file.close()

temp=1 #控制是否繼續
while temp:
 work=random.randrange(1,101) 
 print(work)
 
 with open("D:\\new.txt") as f:    #讀出最高紀錄
  name=""
  socre=0
  i=1 #奇為成績,偶為姓名
  for line in f:
   if i%2!=0:
    if socre <= int(line): #(最高成績相同時,取最新成績)
     socre=int(line)
     flag=1
   else:
    if temp==1:
     name=line.rstrip()
     flag=0
   i+=1
 
 achievement=100 #成績初始為100
 time=0 #次數初始為0

 print("——————————猜數遊戲——————————")
 print("\t\t請輸入一個1到100的整數")
 print("\t\t遊戲最高紀錄%s"%name)
 print("\t\t分數為:%d"%socre)
 print("\n\t\t注意:")
 print("\t\t 滿分100分,每打錯一次扣2分!")
 print("\t\t 輸入的不是1到100的整數,會有嚴厲懲罰!")
 print()
 name=str(input("請輸入你的姓名:"))
 while(achievement!=0):
  try:
   num=int(input("你猜測的數是:"))
   time+=1

   if (num<1 or num>100): #整數1,100以外的情況
    print("超出範圍了,你要受到懲罰!")
    achievement-=4
  
   else:
    if num==work:
     print("\t恭喜你,答對了!")
     print("\t%s的分數是%d"%(name,achievement))
     print("\t你猜數的次數是%d"%time)
     if time==1:
      print("\t你太優秀了!")
     elif 1<time<11:
      print("\t你還算優秀了!")
     elif 10<time<21:
      print("\t你還可以吧!")
     else:
      print("\t一般水平!")
      
     string=str(achievement)+"\n"   #將成績,姓名寫入
     with open("D:\\new.txt","a") as file:
      file.write(string)
     string=name+"\n"
     with open("D:\\new.txt","a") as file:
      file.write(string)
     
     break
 
    else:
     achievement-=2
     if num<work:
      print("數的範圍是%d到100"%num)
     else:
      print("數的範圍是1到%d!"%num)

   if achievement==0:   #成績為0時
    print("\t對不起,你錯了!")
    print("\t%s的分數是%d"%(name,achievement))
    print("\t你猜數的次數是%d"%time)
    break
 
  except:   #輸入非整數時
   time+=1
   achievement-=4
   print("輸入的不是整數,你要受到懲罰!")
   if achievement==0:
    print("\t對不起,你錯了!")
    print("\t%s的分數是%d"%(name,achievement))
    print("\t你猜數的次數是%d"%time)
    break
 
 string=str(input("是否還要繼續?(y,繼續):"))   #判斷繼續時是否為y 
 if string!="y":
  temp=0

更多關於python遊戲的精彩文章請點選檢視以下專題:

python俄羅斯方塊遊戲集合

python經典小遊戲彙總

python微信跳一跳遊戲集合

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。