情景:
有两个分数。敌人得分和球员得分。
敌人得分变量为score0
。
玩家得分变量为score1
。
有一个全局变量turn,它保存值0或1。
如果转弯是0:那是敌人的回合
如果转弯为1:则轮到玩家
分数只能在玩家或敌人转弯时更新。因此0和1与得分和转弯有关。
让我们说玩家得分是5,而在玩家回合时,他/她获得1分。 所以我需要将玩家的分数改为6分。 每个数字都是一个可绘制的资源,标题为n0,n1,n2,n3等。(n0-n9)
这项工作: 因此,如果得分= 6,然后是播放器,那么:
score1.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName()));
这项工作太:
if (turn==0) { img = score0; }
else if (turn==1) { img = score1; }
img.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName()));
但我宁愿有这样的事情:
Image img = "score"+turn
有没有办法可以创建一个变量,它是一个字符串和一个数字的串联来创建我想要访问的变量名?
编辑 / MOD推荐:我很欣赏mods正在编辑流畅性。考虑到这是我的第一篇文章堆栈溢出,我没有意识到有一个特定的格式。但是,我建议mods不要编辑段落的块。特别是当用户说她是Java新手时。因为人们提供的回复将基于技能水平。如果读者认为我对Java知识渊博,他们会回答他们认为我理解的答案。但如果我说“嘿伙计们,我是新手” - 这是因为我正在寻找外行人的答案。只是为新的mods提供思考。
答案 0 :(得分:0)
所以我只是搜索了一下Map / HashMap,我认为你是对的。对于我想要达到的目标,这可能太复杂了。
这个问题仍然没有答案。因此,对于将来阅读此内容的人来说,回答主题问题会很好(而不是让“你应该这样做”而不是答案)。
我决定使用的解决方案(针对具有类似问题的未来用户):创建一个列表数组和一个更新分数的方法:
public void updateScore(int score){
scores.get(turn).setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName())); }