V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
MarioLuisGarcia
V2EX  ›  分享创造

Python新兵写的一个竞技场小游戏,请大家赏玩

  •  
  •   MarioLuisGarcia · 2014-01-23 11:30:15 +08:00 · 4643 次点击
    这是一个创建于 3993 天前的主题,其中的信息可能已经有所发展或是发生改变。
    游戏名:Mario‘s Arena (马里奥的竞技场)
    目前放出的是2.6e和2.7e两个版本

    目前版本游戏特征:
    ·纯文本
    ·全英文
    ·支持玩家自定义角色名称
    ·玩家初始能力值随机生成(玩家可输入幸运数字加以影响,效果类似于抽奖)
    ·支持无尽战斗

    ·三种基本能力
    力量:影响生命值和基础攻击力
    敏捷:影响攻击速度和基础攻击力
    幸运:影响技能施放几率和浮动攻击力

    ·四种技能
    暴击:生命值低于敌人时有机会造成双倍伤害 影响因素:敏捷、幸运
    闪避:有机会闪避敌人的攻击 影响因素:敏捷、幸运
    重击:生命值高于敌人时有机会打晕敌人一段时间 影响因素:力量、幸运
    反弹:被攻击时有机会反弹一些伤害 影响因素:力量、幸运

    商店系统:
    每局的获胜者将获得一个荣誉点,用于在商店里购买各种属性点和技能。失败者将死亡,失去所有现有属性和荣誉点。以随机数值重生。

    2.6e和2.7e的区别:
    2.6e所有技能为天生拥有,2.7e里初始没有任何技能,需在商店购买,并加入胜利场次显示系统
    2.7e相对于2.6e精简了代码结构,加入了大量防止错误退出的机制,游戏体验性更好。

    作者建议下载2.7e Python版(公司有流量监控呢!),对于那些上来就想拥有全技能的,可以试试2.6e。

    下载地址:
    python版本
    2.7e ( http://zengjuchen.info/dnd2.7e(python).zip )
    2.6e ( http://zengjuchen.info/dnd2.6e(python).zip )

    windows版本(exe格式)
    2.7e ( http://zengjuchen.info/dnd2.7e.zip )
    2.6e ( http://zengjuchen.info/dnd2.6e.zip )


    创作背景(VIP选读章节):python是作者接触的第一门编程语言(大学里的vb不算吧?),作为一个玩过数万小时游戏的游戏玩家,在学习LearnPythonTheHardWay教程的时候萌发了做一个冒险格斗游戏的想法。最开始为“如何让两个人根据敏捷以不同攻击速度互相攻击”这个问题伤偷了脑筋。之后在如何创造无尽战斗系统的时候又遇到了无尽的bug,一度萌生放弃计划的念头。不过之后还是继续开发,并找出了无尽战斗的实现方法,之后又添加了商店。睡觉的时候脑子里都是各种代码,最爽的是想到解决方法时那种被启发的感觉。开发初期我使用的编辑器是windows txt(公司)notepad(公司)和gedit(家)。有一次出现了非常奇怪的bug。一段代码在家好用,在公司自己写出来也好用,在公司复制一下就执行不了,上stackoverflow都没有找出解决办法。花了我一上午的时间,最后被一个stackoverflow上的神人指点可能是tab缩进的问题。notepad可能有自动的tab缩进。我知道tab和空格之争,却没有想到这种事情竟然会发生在我的身上。自此开始跳入vim的大坑。嘿,还真TM爽。最近两个周末都用来熟悉vim的操作。下一步的游戏开发计划是加入怪物系统和物品系统,并且物品系统要创造类似暗黑那种各种后缀随机组合的物品,使物品具有unique性质。啊,怪物系统除了一些特定boss外也可以搞一些随机属性的怪。就是这样。还有另一个可能的开发计划,就是将它图形化。大家一起期待下一个版本的到来吧!~
    15 条回复    1970-01-01 08:00:00 +08:00
    cYcoco
        1
    cYcoco  
       2014-01-23 11:32:55 +08:00
    以下
    yesq
        2
    yesq  
       2014-01-23 11:36:40 +08:00 via iPhone
    正在看 LearnPythonTheHardWay。正好学习一下。谢谢楼主
    Mutoo
        3
    Mutoo  
       2014-01-23 11:46:43 +08:00   ❤️ 1
    ===
    mutoo attacks h, deals 213 damage, h has -25 hp left.

    h was killed, mutoo wins! mutoo got 1 points now
    ===

    hp 居然可以是负的。 = =
    MarioLuisGarcia
        4
    MarioLuisGarcia  
    OP
       2014-01-23 12:23:30 +08:00
    @Mutoo 可以啊,负或者0都死,可以加一行代码让负变成零。
    MarioLuisGarcia
        5
    MarioLuisGarcia  
    OP
       2014-01-23 12:24:02 +08:00
    @Mutoo 下次改进的时候把这个feature加上好了,多谢反馈
    cassyfar
        6
    cassyfar  
       2014-01-23 12:29:06 +08:00
    下载windows 2.7e下来chrome给了个warning说可能是危险文件
    MarioLuisGarcia
        7
    MarioLuisGarcia  
    OP
       2014-01-23 15:14:42 +08:00
    @cassyfar 有次我上新浪爱问的一个下载页面,也被chrome弹红色窗口了。
    MarioLuisGarcia
        8
    MarioLuisGarcia  
    OP
       2014-01-23 15:15:13 +08:00
    @cassyfar 你头像是千与千寻里那个精灵!
    guibin1989
        9
    guibin1989  
       2014-01-23 17:55:18 +08:00
    @MarioLuisGarcia 头像明明是哈尔的移动城堡里的那个火魔吧=。=
    MarioLuisGarcia
        10
    MarioLuisGarcia  
    OP
       2014-01-23 18:01:36 +08:00
    @guibin1989 对的,就是他。我记混了。。
    asdftu
        11
    asdftu  
       2014-01-24 17:58:50 +08:00
    为什么 playerB 总是输
    MarioLuisGarcia
        12
    MarioLuisGarcia  
    OP
       2014-01-24 22:16:46 +08:00
    @asdftu 你玩了多少盘?
    MarioLuisGarcia
        13
    MarioLuisGarcia  
    OP
       2014-01-26 20:39:13 +08:00
    @asdftu 今天一件事让我意识到我对global的理解有误,很可能2.7e版本里面有fatal的错误。2.6版本因此可能比2.7版本平衡性更好。待我升级到2.8版本(2.8版本增加了随机生成多种属性的物品哦)
    MarioLuisGarcia
        14
    MarioLuisGarcia  
    OP
       2014-01-26 21:14:49 +08:00
    @asdftu Hi,我刚才仔细测试了,发现2.7e还不存在重大bug,另外,在刚才的测试中,b是可以赢的。
    owei
        15
    owei  
       2014-01-27 11:35:35 +08:00
    刚刚看来楼主的代码,我也是刚学不久,提个小的意见,是不是可以封装成对象来处理问题,这样定位问题和查找都比较方便;
    ps:确实看到很多相同的代码和计算方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.