Моя игра не остановится, чтобы показать победителя - PullRequest
0 голосов
/ 09 мая 2011

Мне нужна помощь с этим. Я пытаюсь сделать мини-игру, которая в основном использует таймер с 2 игроками. Он постоянно получает наивысший балл за каждого пользователя и сохраняет его, а затем в конце 3 раундов должен отображаться, кто имеет наивысший балл. Я попробовал это с циклом вокруг всего в else, если play == 2, и это просто не будет работать правильно. Это будет автоматически отображать победителя при первом нажатии. Вот код для этого раздела.

else if (play==2)
             {
                 round++;
                 turn = turn%2;
                 if (turn == 0 && turn<3)
                 {
                     TextView c1c = (TextView) findViewById(R.id.player);
                        c1c.setText( " CHALLENGER 1:" );


                     click=click%2;
                         if (click==0 && turn<6)
                        {

                            reset();
                            TextView challenger1 = (TextView) findViewById(R.id.display);
                            challenger1.setText("");

                            start();
                            click++;
                            startbutton.setText("Stop");
                        }
                        else if (click==1 && turn < 6)
                        {
                            stop();
                            getElapsedTimeMicro();

                           TextView time1 = (TextView) findViewById(R.id.display);
                            time1.setText( " "+ formatter.format(elapsed) );

                            if (elapsed > c1time )
                                  c1time=elapsed;

                           click++;
                            startbutton.setText("Start");


                            turn++;
                        }

                 }

                 else if (turn ==1 && turn < 3)
                 {

                     TextView c2 = (TextView) findViewById(R.id.player);
                        c2.setText( " CHALLENGER 2:" );

                     click=click%2;
                     if (click==0)
                        {

                            reset();
                            TextView challenger2 = (TextView) findViewById(R.id.display);
                            challenger2.setText("");
                            start();
                            click++;
                            startbutton.setText("Stop");
                        }
                        else if (click==1)
                        {
                            stop();
                            getElapsedTimeMicro();

                           TextView time2 = (TextView) findViewById(R.id.display);
                            time2.setText( " "+ formatter.format(elapsed) );

                            if (elapsed>c2time)
                                c2time=elapsed;

                           click++;
                            startbutton.setText("Start");

                            turn++;
                        }

                 }
                 if ( round==3) 
                 {
                    if (c1time > c2time)

                    {
                        TextView winner1 = (TextView) findViewById(R.id.display);
                        winner1.setText("Challenger 1 is the Iron Lung!\n"+formatter.format(c1time));
                    }
                    else if (c2time > c1time)
                    {
                        TextView winner2 = (TextView) findViewById(R.id.display);
                        winner2.setText("Challenger 2 is the Iron Lung!\n"+formatter.format(c2time));
                    }
                    click=0;
                    turn=0;
                    c1time=0;
                    c2time=0;
                 }
                }

Все это внутри кнопки (иначе, если play == 2, потому что у кнопки есть 2 игры, связанные в один и тот же xml / класс ... Я считаю, что шрифт вызывает проблемы, хотя другая игра работает отлично) В этой игре игроки показывают правильный ход и правильное время. Проблема возникает, когда она должна заканчиваться. Я попытался использовать if if elses, чтобы исправить все это, и он все равно не будет отображаться правильно. Могли бы использовать некоторую помощь. Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

что вы пытаетесь сделать здесь:

if (turn == 0 && turn<3)

Возможно, вы хотели "или" (||), но даже тогда было бы нецелесообразно перепроверять, поскольку если turn == 0будет по определению <3).В любом случае, то, что вы написали, будет выполнено только при повороте == 0 </p>

Позже, внутри того же блока, вы проверяете на ход <6 - что бессмысленно, так как он только зайдет так далеко, если снова повернет == 0,И даже если вы исправите && для ||, это будет по определению <6, поскольку оно должно быть <3. </p>

По сути, все ваши операторы if являются вялыми.

0 голосов
/ 09 мая 2011
if (c1time > c2time)
{
  TextView winner1 = (TextView) findViewById(R.id.display);
  winner1.setText("Challenger 1 is the Iron Lung!\n"+formatter.format(c1time));
}
else if (c2time > c1time)
{
  TextView winner2 = (TextView) findViewById(R.id.display);
  winner2.setText("Challenger 2 is the Iron Lung!\n"+formatter.format(c2time));
}
else
{
  //If we reach this, we must have c1time == c2time
  ((TextView) findViewById(R.id.display)).setText("No winner!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...