我需要一些帮助。我正在尝试制作一款基本上使用带有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来修复所有这些并且它仍然不会正确显示它。可以使用一些帮助。感谢。
答案 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!");
}