【问题标题】:show a list of word and definition using hashmap使用 hashmap 显示单词和定义列表
【发布时间】:2013-05-02 13:37:40
【问题描述】:

我正在尝试使用哈希图创建一个带有单词列表的简单游戏。我想做的是。我想以一种混乱的方式向用户显示列表中的一个单词。例如,像 hello 这样的词将是“loeh”。用户必须输入他的答案,如果答案正确,用户将获得一分。有人可以告诉如何将地图列表中的键打乱以显示给用户;

这是我目前的代码;

public class Game extends Applet {

/*
 * (non-Javadoc)
 * 
 * @see java.applet.Applet#init()
 */

// create a list words with answers. probbaly a map list


Map<String, String> words =  new HashMap<String, String>();     
// add words and  definition to the  list
     words.put("HI", " A form Salutation");

【问题讨论】:

  • 请删除与您的问题无关的代码部分,因为它们会使读者感到困惑并使问题变得不必要

标签: java list random hashmap


【解决方案1】:

这是我要遵循的概念。

for each letter in word
    listofletters.add(letter)

while(listofletters.notEmpty())
    scrambledword += listofletters.pop(RandomNum(0,listofletters.size))

print scambledword

pop here 既返回字母又将其从列表中删除。如果您将我的伪代码编码到 java 中并且有错误将其作为编辑发布回来,我会帮助您调试。

【讨论】:

    【解决方案2】:
    public String shuffle (String yourKey) {
        char tmp;
        char[] newStr = yourKey.toCharArray();
        Random r = new Random();
        int newPos;
        for (int i=0; i < yourKey.length(); i++) {
            newPos = r.nextInt(yourKey.length());
            tmp = newStr[i];
            newStr[i] = newStr[newPos];
            tab[newPos] = tmp;
        }
        return new String(newStr);
    }
    

    在主代码中

    String newStr = shuffle(yourKey);
    while(newStr.compareTo(yourKey)==0) {
        newStr = shuffle(yourKey);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2020-02-14
      • 2023-03-14
      相关资源
      最近更新 更多