咱們再一次回到遊戲當中,此次,咱們將會加上類與函數的用法java
回顧一下之前的代碼:python
import random exitTag=0 userList={} while exitTag!=1: userName=input("請輸入你的名字:") if userName=='exit': exitTag=1 break; else: secret=random.randint(1,100)#生成隨機數 #print (secret) time=6#猜數字的次數 guess=0#輸入的數字 minNum=0#最小隨機數 maxNum=100#最大隨機數 print("---------歡迎來到猜數字的地方,請開始---------") while guess!=secret and time>=0:#條件 guess=int(input("*數字區間0-100,請輸入你猜的數字:")) print("你輸入數字是:",guess) if guess==secret: userList[userName]=7-time print("猜對了,真厲害") print("歷史記錄:") for item in userList: print(item+"只用了"+str(userList[item])+"次就猜到了") else: #當不等於的時候,還須要打印出相應的區間,讓用戶更容易使用 if guess<secret: if minNum<guess: minNum=guess print("提示:你的猜數小於正確答案") print("提示:正確的數字區間是:",minNum,"-",maxNum) else: if maxNum>guess: maxNum=guess print("提示:你的猜數大於正確答案") print("提示:正確的數字區間是:",minNum,"-",maxNum) print("太遺憾,你猜錯了,你還有",time,"次機會") time-=1 print("遊戲結束")
1.咱們把中間那一部分核心的遊戲代碼封裝成一個core的類,core類裏面有一個guessNum的方法dom
2.咱們把用戶封裝成一個類,在類裏面加入名字和成績列表,以便記錄用戶與成績函數
下面看代碼,請你們留意註釋,由於它基本表明了全部的邏輯和解釋性能
#創建遊戲的核心玩法類 class core(object): version=1.0 def guessNum(self): secret=random.randint(1,100)#生成隨機數 #print (secret) time=6#猜數字的次數 guess=0#輸入的數字 minNum=0#最小隨機數 maxNum=100#最大隨機數 print("---------歡迎來到猜數字的地方,請開始---------") print("提示:輸入-1能夠隨時退出遊戲") while guess!=secret and time>=0:#條件 guess=int(input("*數字區間0-100,請輸入你猜的數字:")) print("你輸入數字是:",guess) if guess==secret: return (7-time)#爲何是7,由於咱們上面的條件是0-6,因此是7次 print("猜對了,真厲害") elif guess==-1: print("提示:你強行退出,這一次不記錄成績") return 'exit' else: #當不等於的時候,還須要打印出相應的區間,讓用戶更容易使用 if guess<secret: if minNum<guess: minNum=guess print("提示:你的猜數小於正確答案") print("提示:正確的數字區間是:",minNum,"-",maxNum) else: if maxNum>guess: maxNum=guess print("提示:你的猜數大於正確答案") print("提示:正確的數字區間是:",minNum,"-",maxNum) print("太遺憾,你猜錯了,你還有",time,"次機會") guess=0 time-=1 class User(object): userName=""#用戶名 resultDict={}#結果列表 playTime=1#玩的次數 def setUserName(self,name='ray'): self.userName=name def setResultDict(self,guessTime): self.resultDict[self.playTime]=guessTime self.playTime+=1 #下面是運行代碼,相似於java的main函數 import random exitAllTag=0#記錄是否所有退出遊戲,1:退出 exitGameTag=0#記錄是否退出我的遊戲部分,1:退出 userDict={}#記錄用戶組數據 result=''#猜數字遊戲返回的結果 #處理邏輯: #1.先輸入名稱,若是不是退出,能夠直接進入遊戲 #2.進行遊戲的過程當中,能夠一直玩,也能夠強退,強退沒成績 #3.當用戶進行完遊戲,記錄用戶的成績 #4.噹全部的用戶都退出後,打印全部的成績 while exitAllTag!=1: userName=input("請輸入你的名字:") #設置用戶的名字 user=User() user.setUserName(userName) exitGameTag=0 if userName=='exit': exitAllTag=1 break; else: #進行遊戲 while exitGameTag!=1: result=core().guessNum()#這裏存在性能問題,最好使用單例模式 if result=='exit': exitGameTag=1 #當用戶退出時,把成績記錄下來 userDict[userName]=user.resultDict; break else: #設置用戶的結果 user.setResultDict(result) for e in user.resultDict: print(e,user.resultDict[e]) print("遊戲結束") #輸出全部人的成績 for name in userDict: print("用戶的名字:"+name) for e in userDict[name]: print(e,userDict[name][e])
就說到這裏,謝謝你們
.net
------------------------------------------------------------------code
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。遊戲