【发布时间】:2014-03-05 08:49:19
【问题描述】:
所以我有一个正在为游戏编写的代码。游戏在这里无关紧要,但这是我的代码中产生问题的部分。本质上,我希望该函数接受士兵类型的输入,然后替换为建造任何给定数量的士兵所需的每种资源的数量。我已经编写了函数的后半部分并且工作正常,但是我遇到了变量赋值问题。
cost=function(troop,from,to){
troop=c("phalanx","druidrider","pathfinder")
if(troop=="phalanx"){
w=100
cl=130
i=55
cr=30
} else if(troop=="druidrider"){
w=360
cl=330
i=280
cr=120
} else if(troop=="pathfinder"){
等等。我想知道一些事情:首先,有没有更有效的方法来做到这一点?我希望能够输入“成本(方阵,30,50)”,它会自动使用我尝试分配给方阵的值来获取资源 w、cl、i、cr,并将其替换为其余的方程。它给了我一个错误提示
Warning message:
In if (troop == "phalanx") { :
the condition has length > 1 and only the first element will be used
我做错了什么?
谢谢!
【问题讨论】:
-
这是什么编程语言? (另外,代码行开头的
+s 或 Markdown 是否出错了?) -
troop=c("phalanx","druidrider","pathfinder") 是做什么的?
-
它在 R 中。我认为 troop=c("phalanx","druidrider","pathfinder") 会摆脱错误,因为它会说“方阵未定义”当我复制和粘贴时,+ 符号就在我的代码的开头
-
将
troop作为函数的参数然后立即覆盖任何可能已传递给troop的值是没有任何意义的。
标签: r if-statement variable-assignment