目录
一、无界面的AliceVsMonster
有一个简单的控制台小游戏,叫做AliceVsMonster。它的需求是玩家操控Alice,Alice有攻击、回血和逃跑三个选项,怪兽随机选择,只有防御和攻击两种选择,怪兽在防御的时候,收到的伤害减半。玩家Alice先行动,怪兽再行动。Alice和Monster其中一方血量减少到0,游戏结束;Alice逃跑成功,游戏也结束。人物各项数值配置如下:
config.py文件
# 配置文件
# 爱丽丝的最大生命值
Alice_Max_health = 100
# 爱丽丝的初始血量
Alice_start_health = 100
# 爱丽丝的攻击力
Alice_power = 15
# 爱丽丝的回复药
Alice_rest = 40
# 爱丽丝的逃跑几率
Alice_run_rate = 0.3
# 怪兽的初始血量
Monster_start_health = 150
# 怪兽的攻击力
Monster_power = 20
# 怪兽是否闪避此次攻击
Monster_is_guard = False
Alice_emoji = '👸'
Monster_emoji = '👾'
Attack_emoji = '⚔'
Run_emoji = '🏃'
Rest_emoji = '💊'
Guard_emoji = '🛡'
实现也非常简单,用while循环实现游戏持续化,用if判断语句实现人物的操作。random库实现Monster的随机选择和Alice的逃跑概率。实现代码如下:
main.py
import config
import random
# 怪兽的随机选择
def Monster_action():
a = random.randint(1, 2)
# 1:怪兽攻击 2:怪兽防御
if a == 1:
return '攻击'
else:
return '防御'
# 爱丽丝是否逃跑成功
def is_Run():
b = random.randint(1, 10)
if 1 <= b <= 10 * config.Alice_run_rate:
return '成功'
else:
return '失败'
if __name__ == '__main__':
# 初始爱丽丝和怪兽血量
Alice_health = config.Alice_start_health
Monster_health = config.Monster_start_health
# 初始怪兽防御
Monster_is_guard = config.Monster_is_guard
# 初始怪兽行动
Monster_ac = ''
# 初始爱丽丝是否逃跑
is_run = ''
while Alice_health > 0 or Monster_health > 0:
print('===================== Fighting =====================')
print(config.Alice_emoji + ' ' + str(Alice_health) + ' || ' + config.Monster_emoji + ' ' + str(Monster_health))
print('====================================================')
# 输入汉字 攻击|回血|逃跑
Alice_action = input('输入爱丽丝的行动(攻击|回血|逃跑):')
if Alice_action == '攻击':
if Monster_is_guard:
Monster_health = Monster_health - config.Alice_power / 2
Monster_is_guard = False
else:
Monster_health = Monster_health - config.Alice_power
print(
config.Alice_emoji + ' ' + config.Attack_emoji + '---> 怪兽' + config.Monster_emoji + '剩余血量: ' + str(
Monster_health))
elif Alice_action == '回血':
Alice_health = Alice_health + config.Alice_rest
# 防止回血超过最大生命值
if Alice_health > config.Alice_Max_health:
Alice_health = config.Alice_Max_health
print(
config.Alice_emoji + ' ' + config.Rest_emoji + ' ---> 爱丽丝' + config.Alice_emoji + '血量回复到了' + str(
Alice_health))
else:
is_run = is_Run()
print('爱丽丝' + config.Alice_emoji + '逃跑' + is_run)
if is_run == '成功':
break
Monster_ac = Monster_action()
print('----怪兽' + config.Monster_emoji + '选择' + Monster_ac + '----')
if Monster_ac == '攻击':
# 怪兽攻击 则没有防御了
Monster_is_guard = False
Alice_health = Alice_health - config.Monster_power
print(
config.Monster_emoji + ' ' + config.Attack_emoji + ' ---> 爱丽丝' + config.Alice_emoji + '剩余血量:' + str(
Alice_health))
else:
Monster_is_guard = True
print(config.Monster_emoji + ' ' + config.Guard_emoji)
二、Gui实现
因为这个游戏很简单,没有什么动画表现,只有文字的表述,我就想到了能否界面化。python当下比较火的有pyQt、Tkinter、wxpython等,其中wxpython是最为简单的,对初学者比较友好的,它的缺点在我使用的时候也很明显,就是功能比较少。
1.下载wxPython
wxPython有18Mb,如果不用国内镜像地址会很慢,建议用镜像地址下载。(ps:软件包是wxPython,不是wx,如果pip install wx 会报错,找不到)
pip3 install -i https://pypi.doubanio.com/simple/ wxPython
2.导入包 和实现一个简单的Gui
import wx
app = wx.App()
window = wx.Frame(None, title = "wxPython", size = (400,300))
panel = wx.Panel(window)
label = wx.StaticText(panel, label = "Hello World", pos = (100,100))
window.Show(True)
app.MainLoop()
页面如下:
3.代码实现AlcieVsMonsterGui界面
全部代码已经 上传到我的gitee库 可自行下载使用(里面包括无界面的代码、gui界面代码、打包导出的exe文件)
界面实现:
都看到这里了,觉得有用就点个赞吧!!!