私は、ユーザーの選択に基づいて数字を推測するいくつかのコードを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();
}
}
}
サイド・コメントとして、アルゴリズムの再考と複製の削除(機能の使用)を行うことで、プログラムのサイズを大幅に縮小し、デバッグとメンテナンスをより理解しやすくします。 – JRL