首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >掌握所有字母的位置。(游戏)

掌握所有字母的位置。(游戏)
EN

Stack Overflow用户
提问于 2019-09-09 15:55:48
回答 1查看 289关注 0票数 0

我在做一个游戏,但我不能换一次以上匹配的字母。

我不知道我做错了什么,我希望有人能帮我,谢谢。

我留下了一个演示视频,结果是多明戈

我感觉到的问题是,当我按下键或它只是在开始分配。

当它必须与所有可能的匹配完成时。

YouTube视频

这是我的飞镖函数.

代码语言:javascript
运行
复制
  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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-09 17:46:04

过了一会儿,我意识到索引允许您从您执行的最后一次搜索开始。

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57857408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档