python_习题练习_5_小游戏《唐僧大战白骨精》
生活随笔
收集整理的這篇文章主要介紹了
python_习题练习_5_小游戏《唐僧大战白骨精》
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 游戲說明
- 代碼演示
- 代碼優(yōu)化 2.0版本
- 打包成exe文件
游戲說明
# 小游戲唐僧大戰(zhàn)白骨精# 1. 身份選擇 # ① 顯示提示信息 # 歡迎光臨 xxx 游戲 ! # 請選擇你的身份: # 1. xxx # 2. xxx # 請選擇:x # ② 根據(jù)用戶選擇來分配身份(顯示不同的提示信息) # 1. --- # 2. --- # 3. ---# 2. 游戲進行 # ① 顯示玩家的基本信息(攻擊力 生命值) # ② 顯示玩家可以進行的操作: # 1. 練級 # - 提升玩家的攻擊力和生命值 # 2. 打BOSS # - 玩家對BOSS進行攻擊,玩家要攻擊BOSS,BOSS對玩家進行反擊 # - 計算BOSS是否被玩家消滅,玩家是否被BOSS消滅 # - 游戲結(jié)束 # 3. 逃跑 # - 退出游戲,顯示信息,游戲結(jié)束 !代碼演示
print('==========歡迎來到小游戲 < 唐僧大戰(zhàn)白骨精 > ==========')print()############################################################ # 玩家選擇角色print('請選擇你的角色:') print(' 1. 唐僧') print(' 2. 白骨精')print()role = int(input('請選擇:'))print()if role == 1 :print('你已經(jīng)選擇了角色:唐僧') elif role == 2 :print('什么?你竟然選擇了白骨精!(σ`д′)σ 選擇無效 系統(tǒng)將強制為你選擇角色:唐僧') else :print('輸入不合法,系統(tǒng)將強制為你選擇角色:唐僧')print()############################################################ #顯示角色信息player_life = 2 #初始化玩家生命值 player_attack = 2 # 初始化玩家生命力 print(f'你的角色信息:(生命值:{player_life},攻擊力:{player_attack})')boss_life = 10 # 初始化BOSS生命值 boss_attack = 10 # 初始化BOSS攻擊力 print(f'白骨精的角色信息:(生命值:{boss_life},攻擊力:{boss_attack})')print()############################################################ # 玩家選擇操作while player_life > 0 and boss_life > 0:print('請選擇你想要進行的操作:')print(' 1. 練級')print(' 2. 打BOSS')print(' 3. 逃跑')print()act = int(input('請選擇:'))print()# 操作1 玩家選擇練級if act == 1 :player_life += 2player_attack += 2print(f'恭喜你練級成功,升級后的角色信息:(生命值:{player_life},攻擊力:{player_attack})')print()# 操作2 玩家選擇打BOSSelif act == 2 :boss_life -= player_attackif boss_life <= 0 :boss_life = 0boss_attack = 0print('你對白骨精發(fā)起了攻擊')print(f'白骨精現(xiàn)在的角色信息:(生命值:{boss_life},攻擊力:{boss_attack})')print()print('白骨精被你打死了,游戲結(jié)束')else :print('你對白骨精發(fā)起了攻擊')print(f'白骨精現(xiàn)在的角色信息:(生命值:{boss_life},攻擊力:{boss_attack})')print()player_life -= boss_attackif player_life <= 0 :player_life = 0player_attack = 0print('白骨精對你發(fā)起了反擊')print(f'你現(xiàn)在的角色信息:(生命值:{player_life},攻擊力:{player_attack})')print()print('你被白骨精打死了,游戲結(jié)束')# 操作3 玩家選擇逃跑elif act == 3 :print('逃跑成功,游戲結(jié)束')player_life = 0# 出現(xiàn)不合法輸入的情況else :print('輸入不合法')print()代碼優(yōu)化 2.0版本
# 顯示歡迎信息 print('=' * 20, '歡迎來到小游戲《大戰(zhàn)白骨精》', '=' * 20) # 兩端用分割線讓文字居中對齊# 玩家選擇角色 print('請選擇你想扮演的角色:') print('\t1. 正義的普通玩家') # \t 表示 Tab print('\t2. 邪惡的boss') role = input('請輸入你的選擇(1 or 2):') # 創(chuàng)建變量保存玩家的選擇# 打印一條分割線 print('=' * 60)# 選擇1 if role == '1' :print('選擇成功,你將以<正義的普通玩家>的身繼續(xù)游戲') # 選擇2 elif role == '2' :print('哈?你竟然選擇了<邪惡的boss>!選擇無效,系統(tǒng)將自動為你選擇角色,你將以<正義的普通玩家>的身份繼續(xù)游戲') # 選擇3 錯誤輸入 else :print('你的輸入有誤,系統(tǒng)將自動為你選擇角色,你將以<正義的普通玩家>的身份繼續(xù)游戲')# 打印一條分割線 print('=' * 60) # 讓玩家選擇自定義用戶名和boss名 player_name = input('你現(xiàn)在的角色名是<唐僧>,如果你不喜歡這個名字,可以在此處自定義一個名字(按回車可跳過此操作):') boss_name = input('boss現(xiàn)在的名稱是<白骨精>,如果你不喜歡這個名字,可以在此處自定義一個名字(按回車可跳過此操作):')# 打印一條分割線 print('=' * 60)# 如果玩家沒有自定義用戶名,則系統(tǒng)自動使用<唐僧>這個角色名 if player_name == '' :player_name ='唐僧' # 如果玩家沒有自定義boss名,則系統(tǒng)自動使用<白骨精>這個角色名 if boss_name == '' :boss_name = '白骨精'# 創(chuàng)建變量保存玩家的生命值和攻擊力 player_life = 2 player_attack = 2# 創(chuàng)建變量保存玩家和boss的生命值和攻擊力 boss_life = 10 boss_attack = 10print(f'操作成功!你的角色名是<{player_name}>,你的生命值是<{player_life}>,你的攻擊力是<{player_attack}>') print(f'boss的角色名是<{boss_name}>')# 打印一條分割線 print('=' * 60)while True :# 顯示玩家可選擇的操作print('請選擇你想要進行的操作:')print('\t1. 練級') print('\t2. 打boss') print('\t3. 逃跑')act = input('請輸入你的選擇(1 or 2 or 3):')# 打印一條分割線print('=' * 60)# 玩家選擇1 練級if act == '1' :player_life += 2player_attack += 2print(f'練級成功!你現(xiàn)在的生命值是<{player_life}>,你現(xiàn)在的攻擊力是<{player_attack}>')# 打印一條分割線print('=' * 60)# 玩家選擇2 打bosselif act == '2' :boss_life -= player_attackprint(f'<{player_name}>攻擊了<{boss_name}>')# 如果boss被打死了,游戲結(jié)束if boss_life <= 0 :print(f'<{boss_name}>受到了<{player_name}>的<{player_attack}>點傷害,重傷不治,死了!')print(f'<{player_name}>,恭喜你,贏得了游戲的勝利!GAME OVER !')break# 如果boss沒死,對玩家發(fā)起反擊print(f'<{boss_name}>對<{player_name}>發(fā)起了反擊')player_life -= boss_attack# 如果玩家被boss打死了,游戲結(jié)束if player_life <= 0 :print(f'<{player_name}>受到了<{boss_name}>的<{boss_attack}>點傷害,重傷不治,死了!')print(f'<{boss_name}>贏得了游戲的勝利!GAME OVER !')break# 如果玩家沒死,顯示玩家當前信息print(f'<{player_name}> ,你現(xiàn)在的生命值是<{player_life}>,你現(xiàn)在的攻擊力是 {player_attack}')# 打印一條分割線print('=' * 60)# 玩家選擇3 逃跑elif act == '3' :print(f'看到<{player_name}>要逃跑,<{boss_name}>趁勢追上來,一掌把<{player_name}>拍死了!GAME OVER !')break# 玩家選擇4 輸入有誤else :print('你的輸入有誤')# 打印一條分割線print('=' * 60)# 打印一條分割線 print('=' * 60)input('按回車退出游戲:')打包成exe文件
- 在網(wǎng)上搜了一下怎么打包出來。
- 一開始是打算打包成apk,但是找到的教程我看不懂,出了問題。
- 于是打算打包成exe文件,參照這篇教程
- 這個小游戲2.0版本的下載鏈接
總結(jié)
以上是生活随笔為你收集整理的python_习题练习_5_小游戏《唐僧大战白骨精》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python标准库math中sin函数的
- 下一篇: 怎么快速暂停Google账户广告系列?