2017-04-05 22 views
0

シナリオ: 2つのスコアがあります。敵の得点とプレイヤーの得点。 敵のスコア変数はscore0です。 Playerスコア変数はscore1です。 値0または1を保持するグローバル変数ターンがあります。 ターンが0の場合:敵のターン ターンが1の場合:それはプレイヤーのターン プレイヤーまたは敵のターンでのみスコアを更新できます。したがって、0と1は得点とターンに関係します。変数名を連結しますか?

プレイヤースコアが5で、プレイヤーのターンで1点獲得したとします。 だから私は、その後、それぞれの数は、この作品N0、N1、N2、N3、など(N0-N9)

というタイトルの描画可能な資源である6 にプレイヤーのスコアを変更する必要があります。だから、 スコア= 6の場合、およびそれは、その後、プレイヤーの番です:

score1.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName())); 

これもWORKS:

if (turn==0) { img = score0; } 
else if (turn==1) { img = score1; } 
img.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName())); 

をしかし、私はむしろ、このような何かを持っていると思います:

Image img = "score"+turn 

私はアクセスしようとしている変数名を作成するために文字列と数値を連結した変数を作成する方法はありますか?

EDIT/MOD推薦:私は改造が流動性のために編集していることを感謝しています。これが私の最初のポストオーバーフローを考えると、特定のフォーマットがあることに気づいていませんでした。しかし、私は改造者は段落の塊を編集しないことを提案します。特にユーザーが彼女がJavaの初心者だと言ったとき。人々の反応はスキルレベルに基づいているためです。読者が私がJavaに精通していると仮定すれば、彼らは私が理解していると答えた回答に答えます。しかし、もし私が "ねえみんな、私はこれに新しいんだ"と言うなら、私はレイマンの言葉で答えを探しているからです。新しい改造者のための思考のためのちょうど食糧。

+4

リストや配列内のものを検索し、その番号をインデックスにしますか? – jonrsharpe

+1

'Map'を使用してください。または 'List'。または配列。実際の質問に答えるにははい、 'String'を使って変数を参照することはできますが、複雑であるため、はるかに高度化するまでは必要ありません。 –

答えて

0

Map/HashMapについてもう少し詳しく調べました。あなたが正しいと思います。私が達成しようとしていることはあまりにも複雑かもしれません。

まだ質問は未解決のままです。ですから、将来これを読んでいる人のためにトピックの質問に答えてみるといいでしょう。

(同様の問題と将来のユーザーのために)私は上で決めたソリューションに:リストアレイとスコアを更新するためのメソッドを作成することでした:あなたは入れていないのはなぜ

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

WIP Project Screenshot

関連する問題