2012-02-17 9 views
0

私は、ユーザーの選択に基づいて数字を推測するいくつかのコードをjavaで書いています。それはかなり単純なコードです。私はアンドロイドアプリにこのコードを統合しようとしています。ユーザーは、その番号がセットに含まれている場合は「はい」をクリックし、そうでない場合は「いいえ」をクリックすると、別のページにリダイレクトされます。Androidがボタン選択を追跡する

問題は、元のコードに表示されている値に基づいて「If」ステートメントを実行できるように、ページ全体の選択内容を追跡する方法がわかりません。ページ全体で「はい」または「いいえ」をクリックするかどうかを確認する簡単な方法はありますか?

これは私のJavaコードである

public class BinaryGame 
{ 
    public static void main (String []args) 
    { 
     String set1, set2, set3, set4, set5, another = "y"; 
     int num, num1, num2, num3, num4, rand, number = 0, count = 0; 
     final int PER_LINE = 4; 

     Scanner scan = new Scanner (System.in); 
     Random generator = new Random(); 

     while (another.equalsIgnoreCase("y")) 
     { 
      System.out.println ("Think of a number between 0 and 31. And I will be able to figure it out."); 
      System.out.println (""); 

      rand = generator.nextInt(2); 
      if (rand == 1) 
      { 
       for (num = 16; num < 32; num++) 
       { 
        System.out.print(num + " "); 

        count++; 
        if (count % PER_LINE ==0) 
        System.out.println(); 
       } 

       System.out.print ("Is your number in this group? y/n: "); 
       set1 = scan.nextLine(); 
       if (set1.equalsIgnoreCase("y")) 
       number += 16; 
       else 
       number += 0; 
      } 
      else 
      { 
       for (num = 0; num < 16; num++) 
       { 
        System.out.print(num + " "); 

        count++; 
        if (count % PER_LINE ==0) 
        System.out.println(); 
       } 

       System.out.print ("Is your number in this group? y/n: "); 
       set1 = scan.nextLine(); 
       if (set1.equalsIgnoreCase("y")) 
        number += 0; 
       else 
        number += 16; 
      } 

      System.out.println(); 

      rand = generator.nextInt(2); 
      if (rand == 1) 
      { 
       for (num1 = 8; (num1 < 16) || (23 < num1 && num1 < 32) ; num1++) 
       { 
        System.out.print (num1 + " "); 

        count++; 
        if (count % PER_LINE ==0) 
        System.out.println(); 
        if (num1 == 15) 
        num1 = 23; 
       } 
       System.out.print ("Is your number in this group? y/n: "); 
       set2 = scan.nextLine(); 
       if (set2.equalsIgnoreCase("y")) 
       number += 8; 
       else 
       number += 0; 
      } 
      else 
      { 
       for (num1 = 0; (num1 < 8) || (15 < num1 && num1 < 24) ; num1++) 
       { 
        System.out.print (num1 + " "); 

        count++; 
        if (count % PER_LINE ==0) 
        System.out.println(); 
        if (num1 == 7) 
        num1 = 15; 
       } 
       System.out.print ("Is your number in this group? y/n: "); 
       set2 = scan.nextLine(); 
       if (set2.equalsIgnoreCase("y")) 
       number += 0; 
       else 
       number += 8; 
      } 
      System.out.println(); 
      rand = generator.nextInt(2); 
      if (rand == 1) 
      { 
       for (num2 = 4; (num2 < 8) || (11 < num2 && num2 < 16) || (19 < num2 && num2 < 24) || (27 < num2 && num2 < 32); num2++) 
       { 
        System.out.print (num2 + " "); 

        count++; 
        if (count % PER_LINE ==0) 
         System.out.println(); 
        if (num2 == 7) 
         num2 = 11; 
        if (num2 == 15) 
         num2 = 19; 
        if (num2 == 23) 
         num2 = 27; 
       } 

       System.out.print ("Is your number in this group? y/n: "); 
       set3 = scan.nextLine(); 
       if (set3.equalsIgnoreCase("y")) 
        number += 4; 
       else 
        number += 0; 
      } 
      else 
      { 
       for (num2 = 0; (num2 < 4) || (7 < num2 && num2 < 12) || (15 < num2 && num2 < 20) || (23 < num2 && num2 < 28); num2++) 
       { 
        System.out.print (num2 + " "); 

        count++; 
        if (count % PER_LINE ==0) 
         System.out.println(); 
        if (num2 == 3) 
         num2 = 7; 
        if (num2 == 11) 
         num2 = 15; 
        if (num2 == 19) 
         num2 = 23; 
       } 

       System.out.print ("Is your number in this group? y/n: "); 
       set3 = scan.nextLine(); 
       if (set3.equalsIgnoreCase("y")) 
        number += 0; 
       else 
        number += 4; 
      } 
      System.out.println(); 
      rand = generator.nextInt(2); 
      if (rand == 1) 
      { 
       for (num3 = 2; (num3 < 4) || (5 < num3 && num3 < 8) || (9 < num2 && num3 < 12) || (13 < num3 && num3 < 16) || 
        (17 < num3 && num3 < 20) || (21 < num3 && num3 < 24) || (25 < num3 && num3 < 28) || (29 < num3 && num3 < 32); num3++) 
       { 
        System.out.print (num3 + " "); 

        count++; 
        if (count % PER_LINE ==0) 
         System.out.println(); 
        if (num3 == 3) 
         num3 = 5; 
        if (num3 == 7) 
         num3 = 9; 
        if (num3 == 11) 
         num3 = 13; 
        if (num3 == 15) 
         num3 = 17; 
        if (num3 == 19) 
         num3 = 21; 
        if (num3 == 23) 
         num3 = 25; 
        if (num3 == 27) 
         num3 = 29; 
       } 
       System.out.print ("Is your number in this group? y/n: "); 
       set4 = scan.nextLine(); 
       if (set4.equalsIgnoreCase("y")) 
        number += 2; 
       else 
        number += 0; 
      } 
      else 
      { 
       for (num3 = 0; (num3 < 2) || (3 < num3 && num3 < 6) || (7 < num2 && num3 < 10) || (11 < num3 && num3 < 14) || 
       (15 < num3 && num3 < 18) || (19 < num3 && num3 < 22) || (23 < num3 && num3 < 26) || (27 < num3 && num3 < 30); num3++) 
      { 
       System.out.print (num3 + " "); 

       count++; 
       if (count % PER_LINE ==0) 
        System.out.println(); 
       if (num3 == 1) 
        num3 = 3; 
       if (num3 == 5) 
        num3 = 7; 
       if (num3 == 9) 
        num3 = 11; 
       if (num3 == 13) 
        num3 = 15; 
       if (num3 == 17) 
        num3 = 19; 
       if (num3 == 21) 
        num3 = 23; 
       if (num3 == 25) 
        num3 = 27; 
      } 
      System.out.print ("Is your number in this group? y/n: "); 
      set4 = scan.nextLine(); 
      if (set4.equalsIgnoreCase("y")) 
       number += 0; 
      else 
       number += 2; 
      } 
      System.out.println(); 
      rand = generator.nextInt(2); 
      if (rand == 1) 
      { 
       for (num4 = 1; num4 < 32; num4 += 2) 
       { 
        System.out.print (num4 + " "); 
        count++; 
        if (count % PER_LINE ==0) 
         System.out.println(); 
       } 
       System.out.print ("Is your number in this group? y/n: "); 
       set5 = scan.nextLine(); 
       if (set5.equalsIgnoreCase("y")) 
        number += 1; 
       else 
        number += 0; 
      } 
      else 
      { 
       for (num4 = 0; num4 < 32; num4 += 2) 
       { 
        System.out.print (num4 + " "); 
        count++; 
        if (count % PER_LINE ==0) 
         System.out.println(); 
       } 
       System.out.print ("Is your number in this group? y/n: "); 
       set5 = scan.nextLine(); 
       if (set5.equalsIgnoreCase("y")) 
        number += 0; 
       else 
        number += 1; 
      } 
      System.out.println(); 
      System.out.println ("You chose: " + number); 
      number = 0; 
      System.out.print ("Would you like to play again? y/n: "); 
      another = scan.nextLine(); 
     } 

    } 

} 
+0

サイド・コメントとして、アルゴリズムの再考と複製の削除(機能の使用)を行うことで、プログラムのサイズを大幅に縮小し、デバッグとメンテナンスをより理解しやすくします。 – JRL

答えて

1

ページでは、同じアプリケーション内でAcvitiesを意味するならば、あなたはSharedPreferencesclass referencedev guide)を見てみたいと思うだろう。その後

SharedPreferences prefs = getSHaredPreferecne("buttonPrefs"); 
SharedPreferences.Editor editor = prefs.editor(); 

editor.PutBoolean("btnYes", true); 
editor.commit(); 

、あなたは(同じアプリケーション内で再び)このアクセス必要があります:ボタンを押すと、あなたはsomethingeのような操作が必要になります活動に

SharedPreferecnes myPrefs = getShharedPreferences("buttonPrefs") 
boolean yesIsPressed = myPrefs.getBoolean("btnYes", false) // the second param is a default return value if preference is not found 

SharedPreferencesは、あなたが正しい名前を持っている限り、同じアプリケーションのどこでも使用できます。

関連する問題