2017-04-05 116 views
0

情景: 有两个分数。敌人得分和玩家得分。 Enemy Score变量为score0。 玩家分数变量是score1。 有一个全局变量回合,其值为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正在编辑流动性。考虑到这是我的第一篇文章,堆栈溢出,我没有意识到有一个特定的格式。但是,我会建议mod不会编辑一个段落的大块。特别是当用户说她是Java新手时。因为人们提供的答案将基于技能水平。如果读者认为我对Java有所了解,他们会回答他们假设我理解的答案。但是,如果我说“嗨,我是新手” - 这是因为我正在寻找一个用俗语来说的答案。只是为新的mods思考食物。

+4

你为什么不把列表或数组中的东西,并将数字作为索引? – jonrsharpe

+1

使用“地图”。或者一个'List'。或者一个数组。回答实际问题;是的,你可以用'String'来引用一个变量,但它很复杂,你不需要直到你更加先进。 –

回答

0

所以我只是搜索了一下Map/HashMap,我认为你是对的。对于我想要达到的目标来说,这可能太复杂了。

这个问题仍然没有答案。因此,对于任何未来阅读此内容的人来说,回答主题问题将会很好(而不是“你应该这样做”而不是“答案)。

,我决定(对于类似问题的未来用户)解决办法:是创建一个列表阵列和方法,以更新得分:

public void updateScore(int score){ 
scores.get(turn).setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName())); } 

WIP Project Screenshot