Случайно генерируемые предложения для отображения - PullRequest
1 голос
/ 28 июня 2011

У меня есть несколько вопросов, касающихся приложения, которое я разрабатываю.У меня есть много разных маршрутов, которые я мог бы попробовать, чтобы получить то, что хотел, но я думал, что получу предложения вместо проб и ошибок.

Я занимаюсь разработкой простого приложения с одним игровым экраном (действие) и главное меню для запуска игры.На игровом экране появятся две кнопки «Далее» и «Повторить».Каждый раз, когда нажимается «Далее», появляется новое предложение на другом языке (с переводом на английский под ним), аудио произносит предложение, и, надеюсь, я смогу выделить текст, чтобы выделить часть произносимого предложения.Вы можете догадаться, что делает кнопка «Повторить».

Мой вопрос: как вы, ребята, думаете, что это лучший способ сохранить эти предложения, чтобы их можно было выбрать случайным образом?Я думал о создании массива структур или классов с английским определением, аудио и предложением в каждой структуре.Затем с помощью случайного итератора, чтобы выбрать один.Однако этот подход занял бы много времени, и я хотел бы получить некоторые идеи, прежде чем я попробую его.

Кроме того, я не уверен, как вывести предложение и определение на экран.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 июня 2011

Честно говоря, я бы загружал книги по авторскому праву из Project Gutenberg и произвольно извлекал из них предложения.Затем я передавал предложения в API Google, чтобы переводить и произносить предложения.Опора на внешние сервисы лежит в основе того, для чего создана подключенная ОС, такая как Android.Это было бы гораздо более привлекательным вариантом использования платформы, чем стандартное решение для компакт-дисков типа Rosetta Stone, и ваша способность использовать более широкий объем контента была бы увеличена экспоненциально.

0 голосов
/ 28 июня 2011

Использование массива структур / классов кажется нормальным способом.

Не совсем уверен, что вы подразумеваете под случайным итератором, но, выбирая случайные предложения из массива предложений, вы можете избежать повторений, пока не пройдете все элементы.Для этого вы можете создать второй массив индексов, выбрать один из них случайным образом, использовать элемент, соответствующий этому индексу, и удалить это число из массива индексов.

В 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);
}
...