如何在javascript中一旦变量达到某个数字就对其进行更改
How to change a variable once it reaches a certain number in javascript
我正在尝试编写一款使用铜、银和金的货币系统的游戏。一旦其中一个变量达到100,我该如何更改它?
var copper = 0;
var silver = 0;
var gold = 0;
这应该有效,只需在玩家获得金钱(未经测试)时调用addMoney():
var copper = 0;
var silver = 0;
var gold = 0;
function addMoney(type, amount){
if(type=='copper'){
copper += amount;
while(copper >= 100){
copper -= 100;
silver++;
}
while(silver >= 100){
silver -= 100;
gold++;
}
} else if(type=='silver'){
silver += amount;
while(silver >= 100){
silver -= 100;
gold++;
}
} else if(type=='gold'){
gold += amount;
} else {
return false;
}
return true;
}
示例:
getMoney('silver', 5);
应返回true并增加白银5。
使用if语句:
if (copper == 100) {
// set copper back to 0
copper = 0;
}
我认为我们可以一次性处理所有类型的货币,并考虑到,当添加铜时,银或金可能超过100。
var Money = (function(){
var m_copper = 9;
var m_silver = 25;
var m_gold = 30; //assume get from sever, may be ajax
var targetTop = 100;
var addCopper = function(){
m_copper += amount.copper;
while (m_copper >= targetTop){
m_copper -= targetTop;
m_silver += 1;
}
};
var addSilver = function(){
m_silver += amount.silver;
while (m_silver >= targetTop){
m_silver -= targetTop;
m_gold += 1;
}
};
var addGold = function(){
m_gold += amount.gold;
};
var validate = function(){
if (isNaN(amount.copper) || isNaN(amount.silver) || isNaN(amount.gold)){
return false;
}
return true;
}
return {
money: {
copper: 0,
silver: 0,
gold: 0
}, // actually this is not required, just for reference
add: function( money ){
amount = money;
if (!(validate())){return;}
addCopper();
addSilver();
addGold();
return {copper: m_copper, silver: m_silver, gold: m_gold};
}
};
}());
var a = Money.add({copper: 103, silver: 245, gold: 10});
console.log(a);
var b = Money.add({copper: 103, silver: 245, gold: 10});
console.log(b);
相关文章:
- 使用全局变量来存储数字(JavaScript)
- 字符串到数字JavaScript
- 查找总和最大的数字(Javascript)
- 将字符串中的重复字符替换为不断增长的数字 [Javascript]
- 选择下拉选项时显示数字-javascript
- 用户在数字上输入金额,然后输出最高数字javascript
- 字母数字 JavaScript 正则表达式失败
- 仅数字 Javascript 表单验证
- 如何从一组特定的数字中找到最接近的更高数字:javascript
- 将字符串 num 转换为数字 JavaScript
- 将字符串转换为数字 Javascript
- 提取两种模式之间的数字 javascript
- 添加两个十六进制数字 javascript 与位移
- 确定是否按下了字母或数字-Javascript
- 可以't将字符串转换为数字javascript我的代码出了什么问题
- 按布尔值,然后按数字(javascript)对对象数组进行排序
- 正则表达式,用于获取方括号之间的字符串和数字-javascript
- If和Else比较数字JavaScript
- 检查变量是网页上的所有数字javascript
- 同时检查模为0的两个不同数字(Javascript)