Я пытаюсь смоделировать футбольный матч в Android Studio (язык: Java). Я генерирую 90 случайных чисел. Каждая итерация должна представлять одну минуту матча. (Но теперь это только одна секунда при тестировании). После каждой сыгранной минуты (в данном случае секунды), сыгранные минуты и, возможно, счет должны быть скорректированы в приложении. Я уже протестировал ряд решений, которые я мог найти в inte rnet, таких как решение Thread, которое появляется везде. Однако это не приводит к ожидаемому результату.
Ожидаемый результат: приложение, которое запускается с 0 минут и счетом 0-0, увеличивая количество минут воспроизведения на 1 каждую секунду, а также настраивая оценка, если забит гол.
Фактический результат: белый экран для количества миллисекунд, указанных в коде, а затем только «окончательный результат» игры. Например: 90' 2-1
.
Я уже пытался поместить код try/catch
в другом месте в l oop. Я также заменил sleep
на wait
. Это всегда дает один и тот же результат. Может кто-нибудь сказать мне, как я могу получить количество секунд до go в реальном времени на экране и счет меняется, как только цель падает?
public void playLeagueMatch(Team team1, Team team2, TextView minuteTV,
TextView homeGoalsTV, TextView awayGoalsTV){
int strength1 = team1.strength;
int strength2 = team2.strength;
int minutesPlayed = 0;
double separation = Double.valueOf(strength1) / (Double.valueOf(strength1)+Double.valueOf(strength2)) * 100;
int homeGoals = 0;
int awayGoals = 0;
for (minutesPlayed = 0; minutesPlayed < 91; minutesPlayed++) {
String minuteName = Integer.toString(minutesPlayed);
minuteTV.setText(minuteName + "'");
int random = playMinute();
if(random < 101){
if(random <= separation){
homeGoals++;
homeGoalsTV.setText(Integer.toString(homeGoals));
}
else{
awayGoals++;
awayGoalsTV.setText(Integer.toString(awayGoals));
}
try{
Thread.sleep(1000);
}
catch(InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
Функция playMinute:
public int playMinute(){
Random ran = new Random();
int random = ran.nextInt(3500) + 1;
return random;
}