<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前面我們已經學了python中的順序,選擇,迴圈語句以及break和continue的使用,下面根據這幾個語句,來講解一個程式碼案例
相信大家都玩過人生重開模擬器這樣型別的小遊戲。
在遊戲中,一般會有四個屬性
在這裡可以約定一下屬性的範圍,以及4個屬性的總和不能超過多少。
我們約定屬性的範圍為1-10,總和不得超過20.
在這裡可以先把遊戲的標題列印在開頭
print("******************************************") print(" ") print(" 人生重開模擬器 ") print(" ") print(" 花有重開日 人無在少年 ") print(" ") print("******************************************")
這四個屬性可以由玩家自己輸入,這就用到了之前講到的input
函數,通過這個函數,來完成屬性的初始化。
print("請設定初始屬性(可用屬性值:20)") face = int(input("設定顏值(1-10)")) iq = int(input("設定智力(1-10)")) strong = int(input("設定體質(1-10)")) home = int(input("設定家境(1-10)"))
這樣就完成了屬性的輸入,這樣並不完善,前面我們已經約定過了,屬性不得超過多少,總和不得超過多少,所以下面要用我們學到過的if-elif-else
語句,對這四個屬性和總和進行判斷。
if face < 1 or face > 10: print("顏值設定錯誤") continue elif iq < 1 or iq > 10: print("智力設定錯誤") continue elif strong < 1 or strong > 10: print("體質設定錯誤") continue elif home < 1 or home > 10: print("家境設定錯誤") continue elif face + iq + strong + home > 20: print("總屬性超過20") continue print("初始屬性設定完畢") print(f"顏值:{face},體質:{strong},智力:{iq},家境:{home}")
每當某一個屬性不符合的時候,就把原因列印的螢幕上並重新輸入屬性值,如果符合約定,則把四個屬性值列印在螢幕上。
當某個判斷出現錯誤的時候,程式碼會直接結束程式,而不會讓玩家迴圈輸出,這是因為缺少了一個迴圈,那麼我們就要設定一個能夠使得屬性初始化但不符合約定,就要讓玩家重新輸入屬性值的功能。這個時候就用到了while迴圈
while True: print("請設定初始屬性(可用屬性值:20)") face = int(input("設定顏值(1-10)")) iq = int(input("設定智力(1-10)")) strong = int(input("設定體質(1-10)")) home = int(input("設定家境(1-10)")) if face < 1 or face > 10: print("顏值設定錯誤") continue elif iq < 1 or iq > 10: print("智力設定錯誤") continue elif strong < 1 or strong > 10: print("體質設定錯誤") continue elif home < 1 or home > 10: print("家境設定錯誤") continue elif face + iq + strong + home > 20: print("總屬性超過20") continue print("初始屬性設定完畢") print(f"顏值:{face},體質:{strong},智力:{iq},家境:{home}")
當所有判斷都滿足約定的時候,就不能在繼續迴圈了,要結束程式,這個時候就break
就派上了用場,滿足判定,直接跳出while
迴圈。
在上面這個程式碼尾部加上break
即可注意break的位置要縮排。
設定性別是一個有意思的話題,性別一定要做到隨機,設定亂數就用到了一個函數random.randint
,這個函數是python中自帶的模組,使用前要先呼叫一下這個模組import random
通過 random.randint(1,6)
可以生成一個1-6的隨機整數。
男孩女孩會遇到不同的事件。
point = random.randint(1,6) # print(f'亂數為:{point}') if point % 2 == 1: gender = "boy" print("你是個男孩.") else: gender = "girl" print("你是個女孩.")
首先按照家境可以把出生點分為4部分
當然,大家在自己寫的時候,可以多寫幾個部分,讓遊戲充滿更多的可能。
然後,在生成1-3之間的亂數,每一個數位代表一種情況。
point = random.randint(1,3) if home == 10: #第一部分 print("你出生在帝都,父母是世界首富.") home += 1 face += 1 iq += 1 elif home >= 7 and home <=9: #第二部分 if point == 1: print("你出生在一線城市,父母是醫生.") face += 2 elif point == 2: print("你出生在一線城市,父母是資深程式設計師.") iq += 2 else: print("你出生在一線城市,父母是健身教練.") strong += 3 face += 1 iq -= 1 elif home >= 4 and home <= 6: #第三部分 if point == 1: print("你出生在三線城市,父母是企業管理.") iq += 1 elif point == 2: print("你出生在三線城市,父母是小學老師.") iq += 1 else: print("你出生在三線城市,父母是自己開店做生意.") home += 1 else: #第四部分 if point == 1: print("你出生在農村,父母是農民.") strong += 2 face -= 1 elif point == 2: print("你出生在山裡,父母是獵人.") strong += 2 home -= 1 face -= 1 else: print("你出生在小鎮上,父母是鎮長.") face += 1 home += 1 print(f"顏值:{face},體量:{strong},智力:{iq},家境:{home}")
按照年齡可以把人生分為四個截斷
每個截斷會有不同的事情發生,也可能會有一些機遇。
例如:幼年截斷,智力,顏值,體質等會發生變化,在這裡可以展開事件的發生。
此處只寫幼年經歷:
因為是每一年,可以用for迴圈展開,把每一年的經歷,用字串進行拼接,迴圈到最後,輸出字串即可,針對事件的發生,可以用亂數,根據數位來發生事件,也可以根據性別,顏值,體質等來觸發事件,不同的事件有不同的影響,如果得病去世,可以直接用sys.exit(0)
退出程式,使用time.sleep(1)
可以使程式暫停一秒,便於觀察。
for age in range(1,11): #把一整年的列印都整理到一個字串中,在這一年的結尾統一列印 info = f'你今年{age}歲' #生成一個一到三的隨機整數 point = random.randint(1,3) #接下來編寫各種事件的程式碼 #性別觸發的事件 if gender == 'girl' and home <= 3 and point == 1: info += '你的家裡人重男輕女思想非常嚴重,把你丟棄了.' print("遊戲結束.") sys.exit(0) #體質觸發事件 elif strong < 6 and point < 3: info += '你生了一場病.' if home >= 5: info += '在父母的照顧下,你康復了.' strong += 1 home -= 1 else: info += '父母沒時間管你,你的情況更糟糕了.' strong -= 1 # 顏值觸發事件 elif face <= 4 and age >= 7: info += '你長的太醜了,別的小朋友不和你一起玩.' if iq > 5: info += '你決定用學習填充自己.' iq += 1 else: if gender == 'boy': info += '你和別的小朋友打架.' strong += 1 iq -= 1 else: info += '你經常被別的小朋友欺負.' strong -= 1 #智商觸發的事件 elif iq < 5: info += '你看起來傻乎乎的.' if home >= 8 and age >= 6: info += '你的父母把你送到更好的學校學習.' iq += 1 elif 4 <= home <= 7: if gender == 'boy': info += '你的父母鼓勵你多運動,爭取成為運動健將.' strong += 1 else: info += '你的古父母鼓勵你多打扮自己.' face += 1 else: info += '你的父母經常為此吵架.' if point == 1: strong -= 1 elif point == 2: iq -= 1 else: pass #健康成長 else: info += '你健康成長.' if point == 1: info += '你看起來更結實了.' strong += 1 elif point == 2: info += '你看起來更好看了.' face += 1 else: pass #列印這一年發生的事情 print(info) print(f"顏值:{face},體質:{strong},智力:{iq},家境:{home}") print("---------------------------------------------------------------") time.sleep(1)
在這裡,並不把四個截斷全部寫完,只寫一個幼年階段。把這一篇文章看完,相信大家有能力自行實現後續內容,讓遊戲變得更完整。
注:在使用sys.exit和time.sleep的時候別忘了呼叫一下
import sys
import time
""" 人生重開模擬器 花有重開日,人無在少年 """ import random import sys import time print("******************************************") print(" ") print(" 人生重開模擬器 ") print(" ") print(" 花有重開日 人無在少年 ") print(" ") print("******************************************") while True: print("請設定初始屬性(可用屬性值:20)") face = int(input("設定顏值(1-10)")) iq = int(input("設定智力(1-10)")) strong = int(input("設定體質(1-10)")) home = int(input("設定家境(1-10)")) if face < 1 or face > 10: print("顏值設定錯誤") continue elif iq < 1 or iq > 10: print("智力設定錯誤") continue elif strong < 1 or strong > 10: print("體質設定錯誤") continue elif home < 1 or home > 10: print("家境設定錯誤") continue elif face + iq + strong + home > 20: print("總屬性超過20") continue print("初始屬性設定完畢") print(f"顏值:{face},體質:{strong},智力:{iq},家境:{home}") break point = random.randint(1,6) if point % 2 == 1: gender = "boy" print("你是個男孩.") else: gender = "girl" print("你是個女孩.") point = random.randint(1,3) if home == 10: print("你出生在帝都,父母是世界首富.") home += 1 face += 1 iq += 1 elif home >= 7 and home <=9: if point == 1: print("你出生在一線城市,父母是醫生.") face += 2 elif point == 2: print("你出生在一線城市,父母是資深程式設計師.") iq += 2 else: print("你出生在一線城市,父母是健身教練.") strong += 3 face += 1 iq -= 1 elif home >= 4 and home <= 6: if point == 1: print("你出生在三線城市,父母是企業管理.") iq += 1 elif point == 2: print("你出生在三線城市,父母是小學老師.") iq += 1 else: print("你出生在三線城市,父母是自己開店做生意.") home += 1 else: if point == 1: print("你出生在農村,父母是農民.") strong += 2 face -= 1 elif point == 2: print("你出生在山裡,父母是獵人.") strong += 2 home -= 1 face -= 1 else: print("你出生在小鎮上,父母是鎮長.") face += 1 home += 1 print(f"顏值:{face},體量:{strong},智力:{iq},家境:{home}") for age in range(1,11): info = f'你今年{age}歲' point = random.randint(1,3) if gender == 'girl' and home <= 3 and point == 1: info += '你的家裡人重男輕女思想非常嚴重,把你丟棄了.' print("遊戲結束.") sys.exit(0) elif strong < 6 and point < 3: info += '你生了一場病.' if home >= 5: info += '在父母的照顧下,你康復了.' strong += 1 home -= 1 else: info += '父母沒時間管你,你的情況更糟糕了.' strong -= 1 elif face <= 4 and age >= 7: info += '你長的太醜了,別的小朋友不和你一起玩.' if iq > 5: info += '你決定用學習填充自己.' iq += 1 else: if gender == 'boy': info += '你和別的小朋友打架.' strong += 1 iq -= 1 else: info += '你經常被別的小朋友欺負.' strong -= 1 elif iq < 5: info += '你看起來傻乎乎的.' if home >= 8 and age >= 6: info += '你的父母把你送到更好的學校學習.' iq += 1 elif 4 <= home <= 7: if gender == 'boy': info += '你的父母鼓勵你多運動,爭取成為運動健將.' strong += 1 else: info += '你的古父母鼓勵你多打扮自己.' face += 1 else: info += '你的父母經常為此吵架.' if point == 1: strong -= 1 elif point == 2: iq -= 1 else: pass else: info += '你健康成長.' if point == 1: info += '你看起來更結實了.' strong += 1 elif point == 2: info += '你看起來更好看了.' face += 1 else: pass print(info) print(f"顏值:{face},體質:{strong},智力:{iq},家境:{home}") print("---------------------------------------------------------------") time.sleep(1)
到此這篇關於Python實現人生重開模擬器小遊戲講解的文章就介紹到這了,更多相關Python人生重開模擬器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45