Сохранить результаты в массиве, общих настройках или базе данных? - PullRequest
0 голосов
/ 27 сентября 2018

В настоящее время я присваиваю номера объекту для каждого раунда игры.например a, b, c, d, e.Я сохраняю этот объект в массиве, а затем позже использую этот массив для построения представления переработчика для каждого нового раунда, чтобы вы могли прокручивать все раунды и видеть, как вы это делали.То, что у меня возникают проблемы, это две вещи.в каждом раунде вы получите либо 10 *, что в a, либо -10 *, что в a.

  1. Должен ли я выполнить математические вычисления для этого и сохранить их в объекте, или лучше тогда получить объект от объекта и выполнить математические вычисления для него?

  2. Как мне набрать очки?я должен запускать массив через цикл каждый раз, когда раунд представлен и составляет всего, или есть лучший / более простой способ обновить ваш общий счет, когда каждый раунд представлен?

Вотмой класс объектов

 class Rounds (
     var rn: Int,
     var t1score: Int,
     var t2score: Int,
 )

и моя функция

  private fun funScoreRound(rounds: ArrayList<Rounds>, rn: Int) {

    //rn = round, t1score = team one score for the round, t2score = team two score for the round
    var rn++
    var t1score = t1bid * 10
    var t2score = t2bid * 10



    rounds.add(Rounds(rn, 1score, t2score))

Я пытался использовать

 var onetotal = rounds.sumby { t1score }
 var twototal = rounds.sumby { t2score }

, но это не так, как я ожидал.Просто действительно ищите, что лучше всего делать, если это сохранить его в общем предпочтении, а затем каждый раз при отправке раунда обновлять его и обновлять текстовое поле, или ...

1 Ответ

0 голосов
/ 27 сентября 2018

Я не очень уверен в том, что вы спрашиваете, но я пытаюсь ответить на вопрос, который вы перечислили.

  1. Вы можете создать объект пользовательского класса для хранения информации всех раундови посчитай внутри, скажем MatchSummary или любое другое имя, которое тебе нравится.Делая это, вы можете легко управлять каждым вашим матчем / раундом.

     data class MatchSummary(private val rounds: ArrayList<Rounds>) {
         fun getTeamOneTotalScore(): Int = rounds.sumBy{ t1score }
         fun getTeamTwoTotalScore(): Int = rounds.sumBy{ t2score }
         fun getAllRounds(): ArrayList<Rounds> = rounds
         fun getCurrentRound(): Int = rounds.size
         fun getRoundsInfo(index: Int): Rounds = rounds.get(index)
         fun addRounds(t1bid: Int, t2bid: Int) {
             // do the math here
             let t1RoundScore = t1bid * 10
             let t2RoundScore = t2bid * 10
             rounds.add(Rounds(rounds.size+1, t1RoundScore, t2RoundScore))
         }
     }
    
  2. sumBy Функция должна быть функцией, которую вы ищете.Не могли бы вы рассказать, какие трудности возникают при его использовании?

  3. Прежде всего, три из них могут сосуществовать.У них другое назначение и использование.Хранение внутри массива (памяти) - это типичный способ для вашего приложения работать правильно.Вы не можете сохранить данные после закрытия приложения.Хранение внутри sharedPreference или базы данных - это способы сохранения данных при закрытии и запуске приложения.Разница заключается в размере данных, которые вы хотите сохранить.SharePreference сделан для разработчика, чтобы сохранить пользовательские настройки / настройки, которые крошечные.База данных сделана для разработчика, чтобы сохранить данные будут показаны пользователю, который больше по размеру.Кроме того, вы можете обмениваться данными между различными приложениями.

Надеюсь, я смогу дать некоторые идеи / подсказки о том, что вы пытаетесь сделать.Удачного кодирования!

Ссылка: SharePreferences Библиотека постоянных номеров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...