Итак, у меня есть супер простая игра с монетами, но она многопользовательская, поэтому в ней много кода.В перевёрнутой части игры у меня возникла проблема.
Я хочу, чтобы при каждом подбрасывании монеты, если она падает на головы, число 1 сохраняется в базе данных Firebase, и если она приземляетсяна хвостах хочу номер 2 хранить.
Вот как у меня сейчас работает:
private void startGame() {
flipCoin();
games.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {
HomePage.getCurrentGameID(new HomePage.CallbackID() {
@Override
public void onSuccess(String currentGameID) {
games.child(currentGameID).child("horT").setValue(getCoinSide());
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Как только оба игрока присоединяются к игре и нажимают «готово», вызывается этот метод.Вы можете видеть, что сначала он вызывает метод flipCoin (), который выглядит просто так:
private void flipCoin() {
final Random r = new Random();
coinSide = r.nextInt(2) + 1;
}
А затем я устанавливаю головы или хвосты (1 или 2) в базе данных, используя getCoinSide()
какв этой строке видно, что я уже опубликовал
games.child(currentGameID).child("horT").setValue(getCoinSide());
И мой getCoinSide () просто так:
private int getCoinSide() {
return coinSide;
}
Так что это работает несколько.Он получает число и сохраняет его в базе данных, но проблема в том, что он постоянно сохраняет его в базе данных снова и снова.Таким образом, число, определяющее головы или хвосты, продолжает переключаться каждые полсекунды на 1 или 2. Как я могу получить статическое число, которое не может измениться?