2016-05-23 7 views
0

アンドロイドテニスアプリに取り組んでいますが、今ではテニスゲームでタイブレーカースコアの条件を維持する必要があります。テニスゲームアプリ用Javaのタイブレーカー条件

例えば、セット1の得点が6-6の場合、タイ・ブレーカー・ゲームは1-1,2-2,3-3などから始まります。

またはその他の方法で、どのように私は、私はそれを取得することが私のアプリに取り組んで、この状態を維持しなくする方法について考えています以下のコード

のためのテニスゲームでタイブレーカールールを実装することができます。私はJavaに慣れていないので、どんな援助も感謝します。まあ

/* * Player1ための方法が の下に始まり* */

assert countBtn1 != null; 
    countBtn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      CountA++; 

      textViewScore.setText(CountA+"--"+textViewCount1.getText()+"--"+textViewCount2.getText()); 

      if (CountA == 1) { 
       textViewCount1.setText("15"); 
      } else if (CountA == 2) { 
       textViewCount1.setText("30"); 
      } else if (CountA == 3) { 
       textViewCount1.setText("40"); 
      } 

      /* 
      * After the game is reached to the level of 40-0 for player 1, it checks all the rules of the tennis before finishing the Game 
      * */ 

      else if (CountA == 4) { 
       if (CountB == 3 && textViewCount2.getText().toString().equals("40") && textViewCount1.getText().toString().equals("40")) { 
        textViewCount1.setText("AD"); 
        CountA--; 
       } 
       if (CountB == 4 && textViewCount2.getText().toString().equals("40") && textViewCount1.getText().toString().equals("40")) { 
        textViewCount1.setText("AD"); 
        CountA--; 
       } 
       if (CountA == 4 && textViewCount1.getText().toString().equals("40") && textViewCount2.getText().toString().equals("15")) { 
        textViewCount1.setText("0"); 
        textViewCount2.setText("0"); 
        CountA--; 
        if(set1 != 7) { 
         set1 = set1 + 1; 
         textView1.setText("" + set1); 
         CountA=0; 
        } 
       } 
       if (CountA == 4 && textViewCount1.getText().toString().equals("40") && textViewCount2.getText().toString().equals("30")) { 
        textViewCount1.setText("0"); 
        textViewCount2.setText("0"); 
        CountA--; 
        if(set1 != 7) { 
         set1 = set1 + 1; 
         textView1.setText("" + set1); 
         CountA=0; 
        } 
       } 
       else if (CountA == 4 && textViewCount1.getText().toString().equals("AD") && textViewCount2.getText().toString().equals("40")) { 
        textViewCount1.setText("0"); 
        textViewCount2.setText("0"); 
        CountA--; 
        if(set1 != 7) { 
         set1 = set1 + 1; 
         textView1.setText("" + set1); 
         CountA=0; 
         CountB=0; 
        } 
       } 
       else if (CountA == 4 && textViewCount1.getText().toString().equals("40") && textViewCount2.getText().toString().equals("AD")) { 
        textViewCount1.setText("40"); 
        textViewCount2.setText("40"); 
        CountA--; 
       } 
       else if (CountA == 4 && textViewCount1.getText().toString().equals("40") && textViewCount2.getText().toString().equals("0")) { 
        textViewCount1.setText("0"); 
        textViewCount2.setText("0"); 
        CountA--; 

        /* 
        * The below functions checks the incrementation clause of the game for the sets 
        * */ 

        if((set1 <= 4 && set4 != 6 && set2 == 0 && set5 == 0) 
          || (set1 == 5 && set4 !=7 && set2 == 0 && set5 == 0) 
          || (set1 == 5 && set4 == 6 && set2 == 0 && set5 == 0) 
          // || (set1 == 6 && set4 == 6 && set2 == 0 && set5 == 0) 
          || (set1 == 6 && set4 == 5 && set2 == 0 && set5 == 0)) 

        { 
         set1 = set1 + 1; 
         // tie1++; 
         // textViewCount1.setText(""+tie1); 
         textView1.setText("" + set1); 
         CountA=0; 
         if((set1 ==6 && set4 <=4 && set2 == 0 && set5 == 0)|| (set1 ==7 && set4 <= 6 && set2 ==0 && set5 == 0)) 
         { 
          builder.setMessage("Player 1 wins the 1st set") 
            .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int id) {} 
            }); 
          AlertDialog theAlertDialog = builder.create(); 
          theAlertDialog.show(); 
         } 

        } 

        else if (set1 == 6 && set4 == 6 && set2 == 0 && set5 == 0){ 



         for (tie1=100; tie1 <= 1; tie1++){ 
          textViewCount1.setText("" + tie1); 

          CountA=0; 
         } 


        } 

        else if((set2 <= 5 && set5 != 6 && set3 == 0 && set6 == 0) 
          || (set2 == 5 && set5 != 7 && set3 == 0 && set6 == 0) 
          || (set2 == 6 && set5 == 5 && set3 == 0 && set6 == 0) 
          || (set2 == 6 && set5 == 6 && set3 == 0 && set6 == 0)) 
        { 
         set2 = set2 + 1; 
         textView2.setText("" + set2); 
         CountA=0; 
         if((set1 == 6 && set4 <=4 && set2 ==6 && set5 <=4 && set3 == 0 && set6 == 0) || (set2 ==7 && set5 <= 6 && set3 ==0 && set6 == 0)) 
         { 
          //builder.setTitle("Game Over"); 
          builder.setMessage("Player 1 won the Match by winning both the Sets") 
            .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int id) { 
              CountA = 0; 
              CountB = 0; 
              textView1.setText("0"); 
              textView2.setText("0"); 
              textView3.setText("0"); 
              textView4.setText("0"); 
              textView5.setText("0"); 
              textView6.setText("0"); 
              textViewCount1.setText("0"); 
              textViewCount2.setText("0"); 
              set1 = set2 = set3 = set4 = set5 = set6 = 0; 
             } 
            }); 
          AlertDialog theAlertDialog = builder.create(); 
          theAlertDialog.show(); 
         } 
         else if((set4 ==6 && set1 <=4 && set2 ==6 && set5 <=4 && set3 == 0 && set6 == 0)|| (set2 ==7 && set5 <= 6 && set3 ==0 && set6 == 0)) 
         { 
          builder.setMessage("Player 1 wins the 2nd Set") 
            .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int id) { 


             } 
            }); 
          AlertDialog theAlertDialog = builder.create(); 
          theAlertDialog.show(); 

         } 

        } 

        else if((set3 <= 4 && set6 != 6) 
            || (set3 == 5 && set6 !=7) 
            || (set3 == 5 && set6 == 6) 
            || (set3 == 6 && set6 == 6) 
            || (set3 == 6 && set6 == 5)) 

        { 
         set3 = set3 + 1; 
         textView3.setText("" + set3); 
         CountA=0; 
         if((set3 ==6 && set6 <=4) || (set3 ==7 && set6 <= 6)) 
         { 
          //builder.setTitle("Game Over"); 
          builder.setMessage("Player 1 won the Match by winning both the Sets") 
            .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int id) { 
              CountA = 0; 
              CountB = 0; 
              textView1.setText("0"); 
              textView2.setText("0"); 
              textView3.setText("0"); 
              textView4.setText("0"); 
              textView5.setText("0"); 
              textView6.setText("0"); 
              textViewCount1.setText("0"); 
              textViewCount2.setText("0"); 
              set1 = set2 = set3 = set4 = set5 = set6 = 0; 
             } 
            }); 
          AlertDialog theAlertDialog = builder.create(); 
          theAlertDialog.show(); 
         } 

        } 
        else{ 
         CountA = 0; 
        } 

       } 
       else if (CountA == 5 && textViewCount1.getText().toString().equals("40") && textViewCount2.getText().toString().equals("40")) { 
        textViewCount1.setText("AD"); 
        textViewCount2.setText("40"); 

       } 
      } 
     } 
    } 
    ); 
+0

私はあなたが達成しようとしていることを理解していません。より具体的で別の例を挙げることはできますか? –

+0

もう1つの例は、テニスゲームがタイブレーカー状況に達したときに、15,30,40のゲームの通常のプレイではなく、1-1,2-2からゲームのスコアが始まることです。上記のコードを使用してjavaでこのルールを実装する –

答えて

0

あなたは40-0のようなスコアの適切な実施を持っている場合は、15-15など、それは簡単でなければなりませんtiebreakを処理するヘルパーメソッドにミラーリングします。

あなたのコードは非常に冗長であるとして、私はラインでそれを行を行う方法を教えてくれますが、単に別の追加セットとしてタイブレークを考えると、それをあなたがセットを実装したいのと同じ方法を実装することはできません。

、すなわちcounterAcounterBがあり、プレーヤーAがポイントを獲得した場合はカウンターをカウントし、それ以外の場合はBをカウントし、プレイヤーのカウンターの1つがtiebreakに勝ちます。 counterA == 6counterA - counterB >= 2またはcounterA == 7(経由)テニスルールが正しく覚えている場合)

次に、設定スコアが6-6に達するとただちにtiebreakメソッドに電話してください(ただし、このチェックを行うことをお勧めします)。勝者を返しますtiebreakの設定した機能を処理するメソッドに渡します。