我对我正在设计的应用程序有一些疑问。我有许多不同的路线可以尝试以获得我想要的东西,但我认为我会得到建议而不是做出反复试验。
我正在开发一个简单的应用程序,它有一个游戏屏幕(活动)和一个主菜单来启动游戏。游戏屏幕将有两个按钮,“下一步”和“重复”。每当“下一个”被击中时,将出现一个不同语言的新句子(下面有英文翻译),音频会发出句子,希望我能用荧光笔来突出显示所说句子的部分。您可以猜出重复按钮的作用。
我的问题是,你们认为存储这些句子的最佳方法是什么,以便随机挑选出来?我想到在每个结构中用英语定义,音频和句子制作一个结构或类的数组。然后使用随机迭代器选择一个。但是,这种方法需要很长时间,我想在尝试之前先得到一些想法。
另外,我不确定如何在屏幕上打印句子和定义。
谢谢!
答案 0 :(得分:0)
使用结构/类的数组似乎是正常的方法。
不确定随机迭代器是什么意思,但是当从句子数组中挑出随机句子时,你可能想要避免重复,直到你完成所有元素。为此,您可以创建第二个索引数组,从中随机选择一个索引,使用与该索引对应的元素,并从索引数组中删除该数字。
在Java中,这看起来像
ArrayList<Sentence> sentences;
ArrayList<Integer> indices;
Random rand;
private void populateIndices() {
for(int i = 0; i < sentences.size(); i++)
indices.add(i);
}
public Sentence getNextSentence() {
if(indices.isEmpty())
populateIndices();
int idx = rand.nextInt(indices.size());
int val = indices.get(idx);
indices.remove(idx);
return sentences.get(val);
}
答案 1 :(得分:0)
坦率地说,我会从Project Gutenberg中加载版权书并随机从中提取句子。然后我会将句子传递给Google API来翻译和发音句子。依赖外部服务是Android等连接操作系统的核心所在。对于平台来说,这比使用Rosetta Stone之类的CD解决方案更具吸引力,并且您获取更多内容的能力将呈指数级增长。