मैं एक गेम बना रहा हूं, लेकिन मैं उस अक्षर को नहीं बदल सकता जो एक से अधिक बार मेल खाता हो।

मुझे नहीं पता कि मैं क्या गलत कर रहा हूं, मुझे आशा है कि कोई मेरी मदद कर सकता है, धन्यवाद।

मैं एक प्रदर्शन वीडियो छोड़ता हूं, शब्द का परिणाम डोमिंगो है

मुझे जो समस्या आ रही है वह यह है कि जब मैं कुंजी दबाता हूं या इसे शुरुआत में ही सौंपा जाता है।

जब इसे सभी संभावित मैचों के साथ पूरा किया जाना चाहिए।

यूट्यूब वीडियो यहाँ

यह मेरा डार्ट फ़ंक्शन है।

  String word = 'domingo';
  String key = 'o'; // OnTap button "O"
  List<Word> positionsFound = List<Word>();

  _word(){
    String wordEmpty = '';
    for(int i=0; i<word.length; i++){
      if(key.isEmpty){
        wordEmpty = wordEmpty+'_';
      } else {
        wordEmpty = wordEmpty+'_';
        int position = word.toLowerCase().indexOf(key.toLowerCase());
        if(position == i){
          positionsFound.add(Word(key, position));
          print(position); // The position must be 1 and 6, it only gives me 1.

        }
      }
    }


    for(int i=0; i<positionsFound.length; i++){
      wordEmpty = wordEmpty.replaceFirst('_', positionsFound[i].key, positionsFound[i].position);
    }

    return wordEmpty;
  }


class Word {
    String key;
    int position;

    Word(this.key, this.position);
}
0
DomingoMG 9 सितंबर 2019, 18:55

1 उत्तर

सबसे बढ़िया उत्तर

थोड़ी देर बाद, मुझे एहसास हुआ कि indexof आपको आपके द्वारा की गई अंतिम खोज से शुरू करने की अनुमति देता है।

if(key.isNotEmpty){
          int position = word.toLowerCase().indexOf(key.toLowerCase());
          while(position != -1){
            if(position != -1){
              positionsFound.add(Word(key, position));
            }
            position = word.toLowerCase().indexOf(key.toLowerCase(), position+1);
          }
        }
0
DomingoMG 9 सितंबर 2019, 17:46