我的游戏不会停下来展示胜利者

时间:2011-05-09 18:18:58

标签: java android button

我需要一些帮助。我正在尝试制作一款基本上使用带有2个玩家的计时器的迷你游戏。它不断为每个用户获得最高分并保存,然后在3轮结束时它应该显示谁具有最高分。如果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;
                 }
                }

所有这一切都在一个按钮内(否则如果播放== 2就在那里因为按钮有2个游戏链接到相同的xml /类...我认为这会导致任何问题,但导致其他游戏工作罚款)这个游戏正在显示玩家正确转动和他们的时间。当它应该结束时,问题就出现了。我尝试使用if if elses来修复所有这些并且它仍然不会正确显示它。可以使用一些帮助。感谢。

2 个答案:

答案 0 :(得分:2)

你想在这做什么:

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

你可能想要“或”(||),但即便如此,仔细检查是没有意义的,因为如果转= = 0,它将按照定义为&lt; 3)。在任何事件中,你写的东西只会在转= = 0

时执行

稍后,在同一个区块内,你测试转弯&lt; 6 - 这是没有意义的,因为它只会再次转到= = 0。即使你修复了&amp;&amp;到||,它将按定义&lt; 6,因为它必须是<3。

基本上,你的if语句都很糟糕。

答案 1 :(得分:0)

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!");
}