wxPython 初体验之AliceVsMonster

目录

一、无界面的AliceVsMonster

   config.py文件

  main.py

二、Gui实现

1.下载wxPython

2.导入包 和实现一个简单的Gui

3.代码实现AlcieVsMonsterGui界面


一、无界面的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文件)

界面实现:

 


 

都看到这里了,觉得有用就点个赞吧!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLGululu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值