【问题标题】:Item generator controlled by probability由概率控制的项目生成器
【发布时间】:2023-03-20 12:35:01
【问题描述】:

我对 JS 很陌生,但我想制作一个由概率控制的非常基本的 RPG 项目生成器。这就是我想出的。

我对 itemtype 部分有疑问。对itemtype进行概率掷骰后,我想在武器、配饰和盔甲下随机生成一组元素。

应该是稀有剑、稀有法杖、普通手套或普通宝箱。

我该怎么做?

var rarityNum = Math.floor( 1 + Math.random() * 100 );
var itemNum = Math.floor( 1 + Math.random() * 100 );

var rarity;
if ( rarityNum > 75 ) { rarity = "rare "; }
else if ( rarityNum > 65 ) { rarity = "uncommon "; }
else { rarity = "common "; }

var weapons =["sword","bow","staff"];
var armors =["chest","leggings","gloves"];

var itemtype;
if ( itemNum > 51 ) { itemtype = "weapons"; }
else if ( itemNum > 40 ) { itemtype = "accessories"; }
else { itemtype = "armors"; }

document.write (rarity);
document.write (itemtype);

【问题讨论】:

    标签: javascript arrays random probability


    【解决方案1】:
    var item = {
      "Weapon" : ["Sword", "Bow"],
      "Armor"  : ["Chest", "Leggings", "Gloves", "Helmet"],
      "Access" : ["Ring", "Bracelet", "Amulet"]
    };
    
    var rareness   = Math.floor( 1 + Math.random() * 100 )
      , item_type  = Math.floor( 1 + Math.random() * 100 )
    ;//randoms
    
    var rarity =
        rareness > 75? "Rare"     :
        rareness > 65? "Uncommon" :
                       "Common"   ;
    
    var type =
        item_type > 51? "Weapon" :
        item_type > 40? "Access" :
                        "Armor"  ;
    
    var item_list  = item[type]
      , item_index = Math.round( Math.random() * (item_list.length - 1) )
    ;//items
    
    document.write( rarity + " " + item_list[item_index] );
    

    【讨论】:

    • 但是如果武器的阵列长度与盔甲不同呢?
    • 我已经更新了代码,向您展示如何处理可变长度项目列表 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2011-03-14
    • 2012-01-10
    相关资源
    最近更新 更多