2011-06-28 16 views
1

私が設計しているアプリケーションに関するいくつかの質問があります。私は私が望むものを得るために試すことができる多くの異なるルートを持っていますが、試行錯誤する代わりに提案を得ると思っていました。表示のための文を無作為に生成する

私は1つのゲーム画面(アクティビティ)とゲームを開始するメインメニューを持つシンプルなアプリを開発しています。ゲーム画面には、「次へ」と「繰り返し」という2つのボタンがあります。 「次へ」がヒットするたびに、別の言語の新しい文章が表示され、音声で文章が発音されます。あなたはリピートボタンが何をするかを推測することができます。

私の質問は、これらの文章をランダムに選ぶことができるように、これらの文章を保存する最良の方法だと思いますか?私は、各構造の英語の定義、音声、文章で構造やクラスの配列を作ることを考えました。次に、ランダムイテレータを使用して1つを選択します。しかし、このアプローチを行うには時間がかかり、試してみる前にいくつかのアイデアを得たいと思っていました。

また、画面上で文章や定義をどのように印刷するかわかりません。

ありがとうございます!

+0

ランダムイテレータ?ちょうどランダムな整数を選んでください。オブジェクトの配列は完璧に良い解決策のようです。 – tkerwin

答えて

0

構造体/クラスの配列を使用すると、通常の方法と同じように見えます。

ランダムな反復子が何を意味するのかは分かりませんが、文の配列からランダムな文を選ぶときは、すべての要素を終えるまで繰り返さないようにしてください。これを行うには、インデックスの2番目の配列を作成し、その中からランダムに1つを選択し、そのインデックスに対応する要素を使用して、インデックスの配列からその数値を削除します。 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); 
} 
0

のようになります。率直に言って、私はProject Gutenbergから著作権の図書のうち、ロードし、ランダムにからの文章を引くでしょう。私はその文を翻訳して発音するために、文章をGoogle APIに渡します。外部サービスに依存することは、Androidのような接続されたOSの中核である。これは、CDソリューションのような缶詰のRosetta Stoneよりもはるかに魅力的なプラットフォームの使用であり、広範な量のコンテンツに触れる能力は指数関数的に増加します。

+0

Google APIの文書はどこで発音されますか?そしてそれは中国語を発音できますか?何も私のためにそれを行うことができない場合、私は自分ですべての単一の文を記録する必要があります。 (100+) – lespommes

関連する問題