Eşleşen oyun için aynı sözcük olmayan iki dize bağlamaya çalışıyorum. Ben oluşturduğum, aynı metinle çalıştığım bir kod var. Örneğin, ilk seçim = "word1" ise, ikinci seçimin "word1" kelimesi aynı olmalıdır. İlk seçim = "word1" ve ikinci seçim = "definition1" istiyorum. Daha fazla ayrıntı için lütfen numaralı telefon yardımına aşağıdaki koddan ulaşabilirsiniz.Aynı sözcük olmayan iki dize nasıl bağlanır
protected void onCreate(Bundle savedInstanceState) {
text[0] = "word1";
text[1] = ("definition1");
twotext[0] = "word2";
twotext[1] = ("definition2");
threetext[0] = "word3";
threetext[1] = ("definition3");
foretext[0] = "word4";
foretext[1] = ("definition4");
}
public void setBoard()
{
board = new String[8];
//Assigns each image to two random positions
for(int i = 0; i < 2; i++)
{
int pic1 = (int)(Math.random()*board.length);
int pic2 = (int)(Math.random()*board.length);
int pic3 = (int)(Math.random()*board.length);
int pic4 = (int)(Math.random()*board.length);
while(board[pic1]!=null)
{
pic1 = (int)(Math.random()*board.length);
}
board[pic1] = text[i];
while(board[pic2]!=null)
{
pic2 = (int)(Math.random()*board.length);
}
board[pic2] = twotext[i];
while(board[pic3]!=null)
{
pic3 = (int)(Math.random()*board.length);
}
board[pic3] = threetext[i];
while(board[pic4]!=null)
{
pic4 = (int)(Math.random()*board.length);
}
board[pic4] = foretext[i];
}
//Sets the question mark image to each ImageView and makes each clickable
for(int i = 0; i < board.length; i++)
{
pics[i].setText(board[i]);
}
for(Button i: pics)
{
i.setClickable(true);
}
}
//If an image is clicked it will "flip" to reveal the image below
//If the first and second pick match, 100 points are awarded, otherwise 200 are deducted
public void click(View v){
switch (v.getId())
{
case R.id.i0:
pics[0].setText(board[0]);
if(firstPick) pick1 = 0;
else pick2 = 0;
break;
case R.id.i1:
pics[1].setText(board[1]);
if(firstPick) pick1 = 1;
else pick2 = 1;
break;
case R.id.i2:
pics[2].setText(board[2]);
if(firstPick) pick1 = 2;
else pick2 = 2;
break;
case R.id.i3:
pics[3].setText(board[3]);
if(firstPick) pick1 = 3;
else pick2 = 3;
break;
case R.id.i4:
pics[4].setText(board[4]);
if(firstPick) pick1 = 4;
else pick2 = 4;
break;
case R.id.i5:
pics[5].setText(board[5]);
if(firstPick) pick1 = 5;
else pick2 = 5;
break;
case R.id.i6:
pics[6].setText(board[6]);
if(firstPick) pick1 = 6;
else pick2 = 6;
break;
case R.id.i7:
pics[7].setText(board[7]);
if(firstPick) pick1 = 7;
else pick2 = 7;
break;
}
if(!firstPick)
{
pics[pick2].setClickable(false);
if(board[pick1]==board[pick2]) {
matches++;
score += 100;
layout.setBackgroundColor(Color.GREEN);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
layout.setBackgroundColor(Color.WHITE);
}
}, 500);
}
............ ayarladığınız tüm k
case R.id.ik:
pics[k].setText(board[k]);
için ............
Sözcüklerde çoğaltma yoksa, 'HashMap' kullanmanızı öneririm. - biçimindedir. Yani almak istiyorsanız, sadece girin. –
Kae10
smth to smth öğesinin eşleşmesi, eşleştirdiğiniz bir kümeye bir kümeden = çoğaltma yok. Tanım olarak 2 farklı şeyle bir şeyleri "eşleştiremezsiniz". –
iantonuk
Bu satırda gördüğüm sorun "if (board [pick1] == board [pick2])". Seçimin ilkini seçtiğimde, ikinci kelime aynı kelime olmalı. İkinci kelimeyi değiştirmeye ihtiyacım var. örneğin "cümle" == "sözler". Bu kodda aynı kelimeyi "cümle" = "cümle" gibi iki seçim olarak tutmak zorundayım. bana yardım ettiğin için teşekkürler. –